Linux 如何在系统中监控磁盘I/O
在维护Linux系统时,磁盘监控是一项重要的任务。从磁盘获取数据需要时间。因此,磁盘I/O子系统被认为是最慢的部分,可能导致整个系统变慢。
因此,检查磁盘性能至关重要。我们必须确定哪个进程正在等待I/O请求完成,以及是否存在瓶颈以及是什么原因导致的。为了检查Linux系统中的磁盘I/O性能,我们将学习如何使用iostat、iotop等工具。
在Linux中安装iotop
在所有Linux发行版的软件仓库中都有iotop软件包,因此在包管理器的帮助下安装非常简单。
在Fedora和RHEL / CentOS 8系统上,可以使用DNF命令来安装iotop。
$ sudo dnf install iotop
Iotop可以使用APT-GET命令或APT命令在Debian/Ubuntu系统上安装。
$ sudo apt install iotop
Iotop可以使用YUM命令在RHEL/CentOS 6/7系统上安装。
$ sudo yum install iotop
使用iotop命令监控磁盘I/O
iotop命令提供了各种选项来检查各种磁盘I/O统计信息。
要查看每个进程或线程的当前I/O利用率,请运行无参数的iotop命令。
$ sudo iotop
输出
Total DISK READ : 18.27 K/s | Total DISK WRITE : 0.00 B/s
0.00 B DISK READ: 18.27 K/s | Actual DISK WRITE: 14.61 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
509 be/3 root 0.00 B/s 0.00 B/s 0.00 % 3.91 % [jbd2/dm-0-8]
247269 be/4 0.00 B/s 0.00 B/s 0.00 % 0.21 % kworker/0:2]
2507 be/4 nwd 18.2 B/s 0.00 B/s 3.57 % 0.00 % gnome-terminal
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switch
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_gp]
4 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_par_gp]
6 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0]
9 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [mm_percpu_wq]
10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_tasks_kthre]
11 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_tasks_rude_]
12 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_tasks_trace]
13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched]
iostat在Linux中的安装
Iostat可以使用DNF命令在Fedora和RHEL/CentOS 8系统中进行安装。
$ sudo dnf install sysstat
Iostat可以通过APT-GET命令或APT命令在Debian/Ubuntu系统上安装。
$ sudo apt install sysstat
Iostat可以使用YUM命令安装在RHEL/CentOS 6/7系统上。
$ sudo yum install sysstat
使用iostat命令监视磁盘I/O
iostat命令提供了许多选项来检查各种CPU和磁盘I/O统计信息。
要查看整个系统的统计信息,请运行iostat命令而不带任何参数。
$ iostat
输出
Linux 4.19.32-1-MANJARO Thursday 18 April 2022 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
29.45 0.02 16.47 0.12 0.00 53.94
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
nvme0n1 6.68 126.95 124.97 0.00 58420014 57507206 0
sda 0.18 6.77 80.24 0.00 3115036 36924764 0
loop0 0.00 0.00 0.00 0.00 2160 0 0
loop1 0.00 0.00 0.00 0.00 1093 0 0
loop2 0.00 0.00 0.00 0.00 1077 0 0
sda 3.14 63.31 38.14 0.00 19772796 11911070 0
scd0 0.00 0.00 0.00 0.00 1 0 0
zram0 7.74 9.36 21.58 0.00 2924188 6738944 0
结论
在本文中,我们学习了如何使用iostat和iotop来检查磁盘I/O性能。我们还讨论了使用iotop命令按进程查看磁盘读写活动的方法。
还有其他几个命令,例如vmstat和sar命令,可用于监控Linux系统中的磁盘I/O。我希望您能发现这些命令的示例有用,并且易于学习和使用Linux。