如何获得执行磁盘IO的程序列表?

我有一个服务器(运行CentOS 5),我需要弄清楚哪些程序(MySQL,Apache等)正在做最多的磁盘I / O? 有没有一个命令可以让我计算一段时间内的平均值?

像iotop的东西会有所帮助,有各种各样的版本,所以看看这一个谷歌其他人也。

您可以尝试安装sysstat软件包并使用SAR和iostat。 如果您正在寻找,他们会在一段时间内提供更好的可视性。

编辑:忘了链接… http://www.princeton.edu/~unix/Solaris/troubleshoot/diskio.html

虽然sysstat可用于CentOS,但您所需的特定软件包不会附带CentOS 5。

你需要做的是从这里的主页面下载sysstat。 configuration并编译它。 最新版本带有一个名为pidstat的程序。 这个程序会给你你想要的。 它和其他* stat工具非常像iostat,mpstat和vmstat。 请注意传递-d标志。

不应安装此版本,其二进制文件与其创build的文件不兼容。 只需复制它编译的pidstat程序,然后将其保存在/ usr / local / bin中

pidstat -d 1 3 Linux 2.6.35.11-83.fc14.x86_64 (home.localdomain) 04/09/2011 _x86_64_(2 CPU) 07:39:40 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command 07:39:41 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command 07:39:42 PM 888 0.00 4.00 0.00 jbd2/dm-2-8 07:39:42 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command Average: PID kB_rd/s kB_wr/s kB_ccwr/s Command Average: 888 0.00 1.32 0.00 jbd2/dm-2-8 

输出应该是非常自我解释的。

请注意,您需要运行一个至less带有CentOS 5.4的内核。 坦率地说,如果你还没有更新,有很多安全的原因,CentOS 5.6最近才发布。

要监视IO输出活动,您可以尝试使用iostat,例如基本用法是:

iostat -x [-d]

-x选项显示扩展的统计信息。 你绝对想要它。 -d是可选的。 它消除了CPU利用率,以避免输出混乱。

阅读手册页获取更多信息。