在Linux中显示每个文件的读写速率(CentOS)

linux中有一个命令(更具体地说是在CentOS 5上),它显示了在过去几秒钟内每个文件正在被读取多less字节/秒。 Windows 7中类似的工具是资源监视器,它可以显示每个文件的读取速度,这有助于诊断系统性能的下降。

我最喜欢的是iotop 。 它将按进程显示I / O数量。

其他有用的命令来调查I / O猪:

  • vmstat: wa列的高点是强调机器的标志
  • iostat:报告设备,分区和NFS的CPU统计信息和input/输出统计信息

从vmstat开始; 如果I / O等待(wa列)中的进程less于2个,则机器不是I / O饿死,并且性能问题很可能与I / O无关。 看看交换进/出,那里的高数字表示你的系统是内存饿死。

如果你的系统确实I / O饿死了,iostat可以给你提示设备,分区或networking文件系统的压力。 有时候这足以猜测罪魁祸首。

vmstat的输出示例:

operator@server:~$ sudo vmstat 10 5 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- rb swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 408892 294200 4310552 0 0 0 6 3 2 1 2 97 0 0 0 0 409372 294200 4310552 0 0 0 54 2192 4880 1 3 97 0 0 0 0 409124 294200 4310496 0 0 0 18 2200 4895 0 3 96 0 0 0 0 409000 294200 4310496 0 0 0 26 2182 4884 0 2 97 0 0 0 0 409620 294200 4310496 0 0 0 18 2195 5120 0 2 97 0 

iotop的示例输出:

 Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 27327 be/4 www-data 0.00 B/s 3.67 K/s 0.00 % 0.00 % apache2 -k start 29714 be/4 postgres 0.00 B/s 0.00 B/s 0.00 % 0.00 % postgres: stats collector process 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] ...