当系统变慢时候,我们首先关注的可能是 cpu 的指标,有时候发现 cpu 使用率一点都不高,但是系统还是卡,这时可能就需要关心另外一个影响性能的东西–磁盘的 IO 性能。通过 top 命令中的 %wa 可以获取系统当前的 io 状态,如果该值居高不小,那磁盘的 IO 可能就有问题了。另外可以通过 iotop 命令来详细了解什么程序在读写磁盘,速度以及命令行,pid 等信息。如果系统不存在该命令,可以
iotop 命令是一个用来监视磁盘 I/O 使用状况的 top 类工具。iotop 具有与 top 相似的 UI,其中包括 PID、用户、I/O、进程等相关信息。Linux 下的 IO 统计工具如 iostat,nmon 等大多数是只能统计到 per 设备的读写情况,如果你想知道每个进程是如何使用 IO 的就比较麻烦,使用 iotop 命令可以很方便的查看。
iotop 使用 Python 语言编写而成,要求 Python2.5(及以上版本)和 Linux kernel2.6.20(及以上版本)。iotop 提供有源代码及 rpm 包,可从其官方主页下载。
安装
Ubuntu
apt-get install iotop
CentOS
yum install iotop
编译安装
wget http://guichaz.free.fr/iotop/files/iotop-0.4.4.tar.gz tar zxf iotop-0.4.4.tar.gz python setup.py build python setup.py install
语法
iotop(选项)
选项
-o:只显示有io操作的进程 -b:批量显示,无交互,主要用作记录到文件。 -n NUM:显示NUM次,主要用于非交互式模式。 -d SEC:间隔SEC秒显示一次。 -p PID:监控的进程pid。 -u USER:监控的进程用户。
iotop 常用快捷键:
- 左右箭头:改变排序方式,默认是按 IO 排序。
- r:改变排序顺序。
- o:只显示有 IO 输出的进程。
- p:进程 / 线程的显示方式的切换。
- a:显示累积使用量。
- q:退出。
实例
直接执行 iotop 就可以看到效果了
另外可以通过 dd 命令来简单测试一下磁盘写操作的性能,例如:
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
<!--StartFragment--><!--EndFragment-->
命令执行完成后会给出磁盘写操作的平均速度。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容