大 / 小块 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 带宽的峰值了 。
需要指出的是 , 使用 dd if 测量磁盘的带宽是可行的 , 但是由此来确定业务 I/O 的 IOPS 和吞吐量是不科学的 。因为 , dd if 所发起的读写仅为顺序 I/O 读写 , 在 OLTP 的业务中 , 这种读写是不常见的 , 而是随机小 I/O 比较多 , 因此 , 测量业务的磁盘 I/O 性能 , 需要在运行业务的时候进行监控 。
nmon可以得到此时磁盘 hdisk2 吞吐量为 318M 。
使用 nmon 收集一个时间段的数据 , 然后使用 nmon*** yzer 进行分析 , 可以得出更为直接的图表:
将收集好的 nmon 文件使用 nmon*** yzer 进行分析 , 得出如下报表:
图 2.nmon 图表显示磁盘性能
文章插图
五、磁盘 I/O 性能调优确认磁盘 I/O 存在性能问题对于随机负载 , 当遇到余下情况时 , 我们那通常认为存在 I/O 性能问题:
1. 平均读时间大于 15ms
2. 在具有写 cache 的条件下 , 平均写时间大于 2.5ms
对于顺序负载 , 当遇到余下情况时 , 我们那通常认为存在 I/O 性能问题:
1. 在一个磁盘上有两个连续的 I/O 流
【硬盘的性能指标有哪些硬盘的性能指标】2. 吞吐量不足(即远远小于磁盘 I/O 带宽)
对于一块磁盘来讲 , 随着 IOPS 数量的增加 , I/O service 也会增加 , 并且会有一个饱和点 , 即 IOPS 达到某个点以后 , IOPS 再增加将会引起 I/O service time 的显著增加 。
图 3. 磁盘 IOPS 与 IO service time 关系图
文章插图
推荐阅读
- 2019年出生的人属什么生肖,五行八字查询
- 2020年10月18号九月初二出生的孩子生辰八字和性格命运解析
- 属兔的一生运气和命运 有后福晚年锦衣玉食
- 一弦一柱思华年的故事 一弦一柱思华年
- 2020年11月16号十月初二出生的孩子生辰八字和性格命运解析
- 没钱最穷的生肖女 属鸡属羊属马
- 属狗的一生有几次婚姻 中年二婚遇见意中人
- 摩羯座女的魅力是什么
- 礼部侍郎几品 礼部侍郎
- 属龙的一生运势和命运不错 实现人生最高目标