如何在 Linux 系统中监控磁盘 I/O
摘要
磁盘监控是在维护 Linux 系统时需要执行的一项重要任务。从根本上说,从磁盘获取数据需要时间。因此,磁盘 I/O 子系统被认为是最慢的部分,并且会减慢整个系统的速度。
因此,检查磁盘性能至关重要。我们必须确定哪个进程正在等待 I/O 请求完成,并确定是否存在瓶颈以及是什么导致了瓶颈。为了检查 Linux 系统中的磁盘 I/O 性能,我们将学习如何使用 iostat、iotop 等工具。
Linux 中 iotop 的安装
由于该软件包存在于所有 Linux 发行版的存储库中,因此使用软件包管理器安装起来非常简单。
可以在 Fedora 和 RHEL/CentOS 8 系统上使用 DNF 命令安装 Iotop。
$ sudo dnf install iotop
可以使用 APT-GET 命令或 APT 命令在 Debian/Ubuntu 系统上安装 Iotop。
$ sudo apt install iotop
可以在 RHEL/CentOS 6/7 系统上使用 YUM 命令安装 Iotop
$ 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]
Linux 中 iostat 的安装
可以在 Fedora 和 RHEL/CentOS 8 系统上使用 DNF 命令安装 Iostat。
$ sudo dnf install sysstat
可以使用 APT-GET 命令或 APT 命令在 Debian/Ubuntu 系统上安装 Iostat。
$ sudo apt install sysstat
可以在 RHEL/CentOS 6/7 系统上使用 YUM 命令安装 Iostat
$ 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 很容易。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP