所以必须注意到,iotop不适用于2.6.18,因为它小于2.6.20并且需要Python 2.6+。 我已经做了一些研究,并遇到了这篇文章: http : //lserinol.blogspot.com/2009/09/io-usage-per-process-on-linux.html
据此,如果这些进程在/ proc / pid#/ io(其中pid#是进程#)中具有io统计信息,则无论内核版本如何,都是可行的。 所以,实际上,我可以将Python升级到2.6并testingiotop。 不过,我的Linux,CentOS release 5.5(Final)的味道,目前只支持Python 2.4.3-44.el5。 如果我要从百胜卸载,它看起来不那么漂亮。 它最终希望卸载235包,其中大部分是非常重要的!
我在一个地方,在线阅读(我忘记了昨天的URL),你可以安装Python 2.6+并行到这个,并有安装iotop rpm的使用。 那么,我没有select那条路线。
我想,这是什么,让我写下iotop(不复制它,但反向工程,而不真正看它的代码/它在使用中)在bash中。 我以为这只会抓住/ proc / pid#/ io文件并parsing统计信息。
所以我写了一个脚本,通过从所有/ proc / pid#/ io文件中收集所有这些统计信息,按照每个度量标准对它们进行sorting,然后获取前10个最高值,从而获得前10个rchar,wchar,read_bytes和write_bytes。
结论,数据似乎完全没用。
有谁知道高级Linux的任何资源,我可以弄清楚如何获取这些/ proc / pid#/目录,并找出他们在磁盘上使用io做什么?
我的主要目标是弄清究竟是什么导致我的磁盘上的高负载。 我只是知道它在/分区(在这种情况下的/ dev / sda2),我真的不知道如何在没有iotop的帮助下缩小它。 如果我运行iostat来抓取1分钟的指标,那么每秒钟的第一个结果就会显示出一个很高的“kB_read / s”,这让我觉得它大部分是读取的。 但是,如果我观看更新,它每秒都会给我,实际上只是显示kB_wrtn / s的值。 这让我觉得iostat给我的初始价值是误导性的。
也许blktrace包可用于CentOS 5.5? btrace命令为您提供非常详细的I / O子系统视图。