一、关于iotop
Linux 下 IO 统计工具,比如 iostat, nmon 等只能统计到每个设备的读写情况,如果想要知道哪一个进程占用比较高的 IO 就要使用 iotop。
iotop 是一个用来监控磁盘 I/O 的类似 top 的工具,iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。
iotop 使用 Python 语言编写,要求 Python >= 2.5,Linux Kernel >= 2.6.20. (使用 python -V 和 uname -r 来查看)
使用这个命令最主要的一个原因就是快速找到 IO 占用比较高的程序,以便进行排查。
二、安装iotop
# yum -y install iotop
# yum info iotop
三、一般使用
# iotop
如果你想检查那个进程实际在做 I/O,那么运行 iotop 命令加上 -o 或者 --only 参数。
# iotop -o
# iotop --only
-o, --only - 只显示有实际读写I/O的进程或线程,而不是显示所有进程或线程,在交互的时候,可以按下o来切换显示模式。
# yum -y install sysstat
# yum info sysstat
在 iostat 命令中有很多参数来检查关于 I/O 和 CPU 的变化统计信息。
不加参数运行 iostat 命令会看到完整的系统统计。
运行 iostat 命令加上 -d 参数查看所有设备的 I/O 统计。
运行 iostat 命令加上 -p 参数查看所有的设备和分区的 I/O 统计。
运行 iostat 命令加上 -x 参数显示所有设备的详细的 I/O 统计信息。
运行 iostat 命令加上 -d [设备名] 参数查看具体设备和它的分区的 I/O 统计信息。
运行 iostat 命令加上 -m 参数以 MB 为单位而不是 KB 查看所有设备的统计,默认以 KB 显示输出。
运行 iostat 命令使用特定的间隔使用如下的格式,在这个例子中,我们打算以 2 秒捕获的间隔捕获10个报告。
运行 iostat 命令与 -N 参数来查看 LVM 磁盘 I/O 统计报告。
# iostat -d -x -p -m 2 10
# iostat -d -x -p -k -N 2 10
四、参考
在 Linux 中如何使用 iotop 和 iostat 监控磁盘 I/O 活动?
https://linux.cn/article-10815-1.html
每天学习一个命令:iotop 查看 Linux 下每个进程 IO 占用
https://einverne.github.io/post/2018/08/iotop-to-find-out-io-linux.html
检查磁盘I/O负载,用iotop监视磁盘访问
https://huataihuang.gitbooks.io/cloud-atlas/content/os/linux/storage/disk/iotop.html
Linux性能监控命令系列之 iotop
https://segmentfault.com/a/1190000037757961
iotop - 监视Linux磁盘I / O活动和使用每进程基础
https://www.howtoing.com/iotop-monitor-linux-disk-io-activity-per-process/
How to know if a disk is an SSD or an HDD
https://unix.stackexchange.com/questions/65595/how-to-know-if-a-disk-is-an-ssd-or-an-hdd