【iotop】在 Linux 中如何使用 iotop 和 iostat 监控磁盘 I/O 活动?

一、关于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

猜你喜欢

转载自blog.csdn.net/michaelwoshi/article/details/119687830