linux – 如何检查每个进程的磁盘I/O利用率

我遇到了拖延Linux系统的问题,我发现sysstat / sar报告了磁盘I / O利用率,平均服务时间以及系统停止时的平均等待时间的巨大高峰.

我怎么能在下次发生时确定哪个过程导致这些峰值?
是否可以使用sar(即:我可以从alreade记录的sar文件中找到此信息吗?

输出为“sar -d”,系统失速发生在12.58-13.01pm左右.

12:40:01          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:40:01       dev8-0     11.57      0.11    710.08     61.36      0.01      0.97      0.37      0.43
12:45:01       dev8-0     13.36      0.00    972.93     72.82      0.01      1.00      0.32      0.43
12:50:01       dev8-0     13.55      0.03    616.56     45.49      0.01      0.70      0.35      0.47
12:55:01       dev8-0     13.99      0.08    917.00     65.55      0.01      0.86      0.37      0.52
13:01:02       dev8-0      6.28      0.00    400.53     63.81      0.89    141.87    141.12     88.59
13:05:01       dev8-0     22.75      0.03    932.13     40.97      0.01      0.65      0.27      0.62
13:10:01       dev8-0     13.11      0.00    634.55     48.42      0.01      0.71      0.38      0.50

这是我昨天开始的一个帖子的后续问题:Sudden peaks in load and disk block wait,我希望我能就这个问题创建一个新主题/问题,因为我还没能解决问题.

最佳答案
如果您足够幸运能够捕获下一个峰值利用期,则可以使用iotop以交互方式研究每个进程的I / O统计数据.

转载注明原文:linux – 如何检查每个进程的磁盘I/O利用率 - 代码日志