如何使用固态硬盘设备提高应用程序性能

使用 IBM i 轻松快速地实现 SSD 的实用指南

本文简要介绍固态硬盘(Solid State Disks,SSD),以及如何在 IBM i 上有效实现并使用它们。本文还讨论了如何通过一种简单方法确定频繁引用的潜在对象并将其移动到 SSD,以最低的成本充分利用该实现。

Gottfried Schimunek (gottfried@us.ibm.com), 高级 IT 架构师, IBM

Gottfried Schimunek 是 IBM 的一位高级 IT 架构师,25 年来一直在应用程序和产品开发项目中担任领导职务。Gottfried 经常出席世界各地的客户、用户组和技术会议并发言。



2011 年 4 月 12 日

固态硬盘驱动器技术概述

SSD 技术已经出现 20 年左右了,其表现形式有记忆棒、U 盘等。但直到最近它们才发展到企业级别,拥有 IBM i for Power Systems 上的大型现代商业应用程序所需的特征。


SSD 与常规硬盘驱动器的性能特征比较

由于 SSD 中采用了内存存储技术,SSD 的性能比常规硬盘驱动器高出了一个数量级。单个随机读取操作的速度比使用当今市场上提供的最新硬盘驱动器执行相同操作要快 100 倍左右。由于 SSD 中没有移动部件,内存中的任何部分都可以瞬时读取,SSD 上可以执行的 I/O 数量也非常高。常规硬盘驱动器每秒可以执行 120-150 个 I/O 操作,而 SSD 可以轻松实现每秒 30000 个 I/O 操作。

另外,当较大磁盘空间被遍历时,常规硬盘驱动器的速度会变慢(例如,存储的数据较少的磁盘拥有更好的响应和寻道时间)。存储的数据越多,磁盘越满,平均服务/响应时间越长。另一方面,SSD 可以一直使用到 100% 的容量,而性能一直保持相同,就好像只使用了一小部分一样。图 1 展示了常规硬盘驱动器与 SSD 之间的性能差异。

图 1. SSD 与 HDD 性能比较
SSD 与 HDD 性能比较图

哪些 I/O 操作从 SSD 获益最多

并非所有 I/O 操作都能从 SSD 获益。例如,由于 IBM i 中的 IOA 大型缓存和一种复杂的存储管理功能(双缓冲技术),如今数据库文件的顺序读写已经高度优化。由于有更大的可用缓存,且 SSD 上的写操作所用时间大约是读操作的两倍,在 SSD 上大规模执行的写操作(比如日志存储)不能以常规硬盘驱动器上的方式执行。但在执行随机 I/O 操作时,SSD 的确更胜一筹。幸运的是,大多数 I/O 操作都是随机读取/更新操作。平均有大约 70% 的 I/O 操作是随机读取/更新操作,而只有 30% 是顺序操作。

但是,某些应用程序使用的顺序操作比随机操作还多,因此不能像其他应用程序那样受益于 SSD。例如,生成需要处理所有数据的报告的批处理应用程序可能会使用顺序操作,因为数据库中的所有数据无论如何都需要被处理。只处理数据库中一个小部分数据的另一个应用程序可能通过一个键字使用随机读取/更新操作,并从 SSD 的使用中受益。


如何确定将哪些对象移动到 SSD

最简单的方法是用 SSD 替换所有常规硬盘驱动器并移动所有对象和数据。尽管这种方法有效,应用程序性能将提高,但使用 SSD 替换所有常规硬盘驱动器的成本对于大量安装而言是无法接受的,至少对于那些拥有几百 GB 以上磁盘存储空间的安装而言是如此。

由于 SSD 上每 GB 存储的成本大约是常规硬盘驱动器的 3 到 4 倍,因此我们不得不比较 SSD 的好处和相应的成本。但是,在多数情况下,在假定并非所有数据都必须移动到 SSD 上的条件下,SSD 的性能优于常规硬盘驱动器,每 GB 拥有更高的性价比。

由于某些对象是通过某些访问方法和 I/O 操作予以访问的,至少对大部分操作而言是这样 — 原来的规则是 “二八开”。如果 80% 的操作都是随机读取操作,那么这个对象就比较适合放置到 SSD 上。幸运的是,IBM i 在系统中保留关于每个单独的数据库对象的全部 I/O 操作的统计数据。您需要做的只是使用 IBM i Display File Description (DSPFD) 命令找到拥有大多数随机读操作的对象:

DSPFD QGPL/QORDDTL

输出可能如下所示:

图 2. DSPFD 输出
DSPFD 输出示例

还有两种更复杂的方法来确定这些 I/O 操作:使用性能跟踪和性能分析工具,但 DSPFD 命令基本上能够为确定 SSD 候选对象提供一个良好的基础。


如何将数据移动到 SSD

将 SSD 添加到系统时,默认情况下它们不会立即被系统使用;它们是空的。要将数据移动到 SSD 上,必须在 CRTPF 和 CRTLF 命令中指定 UNIT(*SSD) 参数。要将现有物理或逻辑数据移动到 SSD,也可以在 CHGPF 和 CHGLF 命令上使用 UNIT(*SSD) 参数。所有现有数据都在后台从常规硬盘驱动器自动移动到 SSD。

SQL 描述的表和索引也可以通过对应的 ALTER TABLE 或 ALTER INDEX 命令放置和移动。

要将数据移回常规硬盘驱动器,可以再次使用 UNIT(*ANY) 参数。


如何度量 SSD 的性能优势

SSD 的优势有多种度量方法,比如运行某批作业需要的时间、交互式应用程序的响应时间、或者某个时段内处理的事务数量。但是,它们最终都归结到 I/O 的执行速度有多快(消除 I/O 操作的等待)和某个时段内能执行多少 I/O 操作。

IBM i 中的常规性能数据收集和性能数据调查器功能可用于确定实现 SSD 前后的那些特征。图 3 是一个 Performance Investigator 示例,展示了一个给定时段的平均磁盘服务时间和平均磁盘等待时间。在应用 SSD 时,这些平均值会降低并显示性能优势。还可以选择其他曲线图来显示每秒执行的 I/O 总量,这也能体现通过 SSD 实现的改进。

图 3. Performance Investigator 屏幕截图示例
Performance Investigator 示例

结束语

固态硬盘驱动器(Solid State Drives,SSD)能极大地改进许多应用程序类型的磁盘 I/O 操作性能。尽管 SSD 通常比常规硬盘驱动器昂贵,但只将一部分对象移动到 SSD 使其成为具有较高性价比的选择,可以既保证价格竞争力,又提高磁盘 I/O 性能。

IBM i 拥有所有相关特征和信息,能够识别那些使用频率最高的对象并将其移动到 SSD。

参考资料

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=IBM i
ArticleID=753619
ArticleTitle=如何使用固态硬盘设备提高应用程序性能
publish-date=04122011