想向各位专家请教一下:
最近我们的 AIX 服务器经常会发现磁盘 I/O 高,用 topas 命令看经常持续在 90% 以上,甚至 100%,针对这种情况需要如何或者分析那些日志,来定位磁盘 I/O 高的原因?
另外,针对磁盘 I/O 高的情况,通常有哪些改善的方案?(除了换用 SSD 外)
谢谢。
busy的数值是一个主要的参考指标,但是90%,或者100%不一定就能判断I繁忙,还需要通过其他参数结合来分析,例如结合通过iostat来看磁盘的响应时间,来分析磁盘I/O是否繁忙。
闪存阵列是一种提高磁盘I/O性能的一种解决方案。
收起磁盘I/O高是一个比较典型的性能问题。可以从以下层面进行考虑。
1、先通过iostat -D hdiskX 1来看一下磁盘的响应时间,以及SQfull的数值,如果这两个数据值高,说明磁盘已经有瓶颈。但此时也应该再看一下磁盘吞吐量,如果吞吐量不高,但磁盘很忙,则有问题。
2、下一步要分析是哪个进程导致磁盘繁忙。这可以收集操作系统的trace,然后把trace转换出来,看一下jfs2文件系统write排名,看看有没有特殊之处,例如,我之前就遇到过patrol进程导致磁盘I/O很高的情况。
3、也可以收集filemon
4、如果第2、3两种场景都没有问题,则可以考虑调整磁盘的queue_depth
5、如果还不行,则考虑存储本身的问题。
首先,我认为光从IO的繁忙程度来看,不能说明问题。
第一,如果你的磁盘繁忙程度总是90%,那么看看IO队列是否有等待,平均的读写程度如何?如果IO队列没有等待,平均读写很高,那就要看看业务这几天是否有频繁的IO。
第二,如果你的磁盘IO队列也总会有等待,业务确认也没有突发的IO读写,那么下一步要看的是存储的IO队列是否也有等待,如果没有,那么问题出在操作系统层面或者是光纤交换这个层面,看看链路,端口,操作系统日志是否有异常?
第三,如果存储IO同样存在等待,那么基本可以认定存储肯定有瓶颈了。先排除硬件故障,比如缓存,存储端的链路端口状态,是否有抖动,有没有坏盘。然后再看软件层面,系统后台有没有类似migration的操作,RAID,卷的划分方式是否有问题等等。
收起