Linux 如何在系统中监控磁盘I/O

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。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程