- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AIX下磁盘IO性能分析
AIX 下磁盘 I/O 性能分析
磁盘 I/O 的概念
I/O 的概念,从字义来理解就是输入输出。操作系统从上层到底层,各个层次之间均存在 I/O。比如,CPU 有 I/O,内存有 I/O, VMM 有 I/O, 底层磁盘上也有 I/O,这是广义上的 I/O. 通常来讲,一个上层的 I/O 可能会产生针对磁盘的多个 I/O,也就是说,上层的 I/O 是稀疏的,下层的 I/O 是密集的。
磁盘的 I/O,顾名思义就是磁盘的输入输出。输入指的是对磁盘写入数据,输出指的是从磁盘读出数据。
衡量磁盘 I/O 性能的指标
图 1. 物理磁盘的架构以及常见磁盘类型
我们常见的磁盘类型有 ATA、SATA、FC、SCSI、SAS。这几种磁盘中,服务器常用的是 SAS 和 FC 磁盘,一些高端存储也使用 SSD 盘。每一种磁盘的性能是不一样的。
我们在测试工作中,衡量磁盘 I/O 性能主要参考 IOPS 和吞吐量两个参数。下面,将介绍一下这两个参数的含义。
IOPS 与吞吐量的概念
磁盘的 IOPS,也就是在一秒内,磁盘进行多少次 I/O 读写。
磁盘的吞吐量,也就是每秒磁盘 I/O 的流量,即磁盘写入加上读出的数据的大小。
IOPS 与吞吐量的关系
每秒 I/O 吞吐量= IOPS* 平均 I/O SIZE。从公式可以看出: I/O SIZE 越大,IOPS 越高,那么每秒 I/O 的吞吐量就越高。因此,我们会认为 IOPS 和吞吐量的数值越高越好。实际上,对于一个磁盘来讲,这两个参数均有其最大值,而且这两个参数也存在着一定的关系。
下图为各种磁盘的 IOPS 极限值。
表 1. 常见磁盘类型及其 IOPS
注:上表源自维基百科 /wiki/IOPS
在 AIX 中,对于同一个磁盘(或者 LUN),随着每次 I/O 读写数据的大小不通,IOPS 的数值也不是固定不变的。例如,每次 I/O 写入或者读出的都是连续的大数据块,此时 IOPS 相对会低一些;在不频繁换道的情况下,每次写入或者读出的数据块小,相对来讲 IOPS 就会高一些。
I/O 读写的类型
大体上讲,I/O 的类型可以分为:读 / 写 I/O、大 / 小块 I/O、连续 / 随机 I/O, 顺序 / 并发 I/O。在这几种类型中,我们主要讨论一下:大 / 小块 I/O、连续 / 随机 I/O, 顺序 / 并发 I/O。
大 / 小块 I/O
这个数值指的是控制器指令中给出的连续读出扇区数目的多少。如果数目较多,如 64,128 等,我们可以认为是大块 I/O;反之,如果很小,比如 4,8,我们就会认为是小块 I/O,实际上,在大块和小块 I/O 之间,没有明确的界限。
连续 / 随机 I/O
连续 I/O 指的是本次 I/O 给出的初始扇区地址和上一次 I/O 的结束扇区地址是完全连续或者相隔不多的。反之,如果相差很大,则算作一次随机 I/O
连续 I/O 比随机 I/O 效率高的原因是:在做连续 I/O 的时候,磁头几乎不用换道,或者换道的时间很短;而对于随机 I/O,如果这个 I/O 很多的话,会导致磁头不停地换道,造成效率的极大降低。
顺序 / 并发 I/O
从概念上讲,并发 I/O 就是指向一块磁盘发出一条 I/O 指令后,不必等待它回应,接着向另外一块磁盘发 I/O 指令。对于具有条带性的 RAID(LUN),对其进行的 I/O 操作是并发的,例如:raid 0+1(1+0),raid5 等。反之则为顺序 I/O。
磁盘 I/O 性能的监控
监控磁盘的 I/O 性能,我们可以使用 AIX 的系统命令,例如:sar -d, iostat, topas, nmon 等。下面,我将以 nmon 和 topas 为例,讲述在系统中如何观察磁盘 I/O 的性能。
topas
登录 AIX 操作系统,输入 topas,然后按 D,会出现如下界面:
在上图中,TPS 即为磁盘的 IOPS,KBPS 即为磁盘每秒的吞吐量。由于服务器处于空闲的状态,我们可以看到 IOPS,KBPS 的数据都非常低。
我们使用 dd if 命令向磁盘 hdisk2 发读 I/O,block 大小为 1MB:
利用 topas 进行监控:
此时,hdisk2 的吞吐量为 163.9M,IOPS 为 655。
我们再启动一个 dd if,使 hdisk 的 busy 数值达到 100%:
从上图可以看出,在磁盘 busy 达到 100% 的时候,其吞吐量为 304.1M,IOPS 为 1200。
hdisk2 是本地集成的 SAS 盘,我们可以查出本地集成 SAS 通道的带宽为 3Gb:
对于 3Gb 的 SAS 通道,304.1M 的磁盘吞吐量已经接近其 I/O 带宽的峰
文档评论(0)