表 1 常见磁盘类型及其 iopsnvme转接卡
三、io 读写的类型
大体上讲,io 的类型可以分为:读写 io、大小块 io、连续随机 io, 顺序并发 io。在这几种类型中,我们主要讨论一下:大小块 io、连续随机 io, 顺序并发 io。
大小块 io
这个数值指的是控制器指令中给出的连续读出扇区数目的多少。如果数目较多,如 64,128 等,我们可以认为是大块 io;反之,如果很小,比如 4,8,我们就会认为是小块 io,实际上,在大块和小块 io 之间,没有明确的界限。
连续随机 io:
连续 io 指的是本次 io 给出的初始扇区地址和上一次 io 的结束扇区地址是完全连续或者相隔不多的。反之,如果相差很大,则算作一次随机 io
连续 io 比随机 io 效率高的原因是:在做连续 io 的时候,磁头几乎不用换道,或者换道的时间很短;而对于随机 io,如果这个 io 很多的话,会导致磁头不停地换道,造成效率的极大降低。
顺序并发 io:
从概念上讲,并发 io 就是指向一块磁盘发出一条 io 指令后,不必等待它回应,接着向另外一块磁盘发 io 指令。对于具有条带性的 raid(lun),对其进行的 io 操作是并发的,例如:raid 0+1(1+0),raid5 等。反之则为顺序 io。
四、磁盘 io 性能的监控
监控磁盘的 io 性能,我们可以使用 aix 的系统命令,例如:sar -d, iostat, topas, nmon 等。下面,我将以 nmon 和 topas 为例,讲述在系统中如何观察磁盘 io 的性能。
topas: 登录 aix 操作系统,输入 topas,然后按 d,会出现如下界面:
在上图中,tps 即为磁盘的 iops,kbps 即为磁盘每秒的吞吐量。由于服务器处于空闲的状态,我们可以看到 iops,kbps 的数据都非常低。
我们使用 dd if 命令向磁盘 hdisk2 发读 io,block 大小为 1mb:
利用 topas 进行监控:
6
此时,hdisk2 的吞吐量为 1639m,iops 为 655。我们再启动一个 dd if,使 hdisk 的 busy 数值达到 100%:
从上图可以看出,在磁盘 busy 达到 100% 的时候,其吞吐量为 3041m,iops 为 1200。
hdisk2 是本地集成的 sas 盘,我们可以查出本地集成 sas 通道的带宽为 3gb:
对于 3gb 的 sas 通道,3041m 的磁盘吞吐量已经接近其 io 带宽的峰值了。
需要指出的是,使用 dd if 测量磁盘的带宽是可行的,但是由此来确定业务 io 的 iops 和吞吐量是不科学的。因为,dd if 所发起的读写仅为顺序 io 读写,在 oltp 的业务中,这种读写是不常见的,而是随机小 io 比较多,因此,测量业务的磁盘 io 性能,需要在运行业务的时候进行监控。
nmon: 在系统中输入 nmon,按 d,可以得到如下界面
可以得到此时磁盘 hdisk2 吞吐量为 318m。
使用 nmon 收集一个时间段的数据,然后使用 nmon analyzer 进行分析,可以得出更为直接的图表:
将收集好的 nmon 文件使用 nmon analyzer 进行分析,得出如下报表:
图 2nmon 图表显示磁盘性能
五、磁盘 io 性能调优
确认磁盘 io 存在性能问题
对于随机负载,当遇到余下情况时,我们那通常认为存在 io 性能问题:
1 平均读时间大于 15ms
2在具有写 cache 的条件下,平均写时间大于 25ms
对于顺序负载,当遇到余下情况时,我们那通常认为存在 io 性能问题:
1 在一个磁盘上有两个连续的 io 流
2 吞吐量不足(即远远小于磁盘 io 带宽)
对于一块磁盘来讲,随着 iops 数量的增加,io service 也会增加,并且会有一个饱和点,即 iops 达到某个点以后,iops 再增加将会引起 io service time 的显著增加。
图 3 磁盘 iops 与 io service time 关系图
从经验上讲,我们在测试工作中,我们主要关注 iops 和吞吐量以及磁盘的 busy% 这三个数值。如果 iops 和吞吐量均很低,磁盘的 busy% 也很低,我们会认为磁盘压力过小,造成吞吐量和 iops 过低;只有在 iops 和吞吐量均很低,磁盘的 busy% 很高(接近 100%)的时候,我们才会从磁盘 io 方面分析 io 性能。
想了解更多存储产品需要合作与咨询搭建方案请联系上的在线客服嘉华众力自2000年成立以来一直在网络存储、传输这方面积累、沉淀;经过多年发展与全新的品牌定位, ( ceacent )嘉华众力品牌已成为国内外极具实力的数据通讯产品及方案提供商,请关注嘉华众力:wwwunicacacom ceacent as3008r磁盘阵列卡riad卡硬盘hba通道卡 sas3008芯片 ,拥有大部分主板都适用的pci-ex8接口,为集成raid0-1,raid10,raid1e能提供稳定,高效的带宽通道,最大传输速度达到9600ms ;,2mini sas接口 ,支持固态硬盘、硬盘驱动器和磁带驱动器。
部分资料转自csdn博主「风云龙儿」的原创文章