学而实习之 不亦乐乎

Linux 系统磁盘 IO 状态查看

2023-11-04 06:19:59

一、iostat命令查看磁盘IO情况

我们在安装sysstat包后,执行命令:

# iostat

即可查看当前系统的磁盘IO使用情况。

该命令有以下常用参数:

  • -d:仅仅显示磁盘统计信息
  • -k:以Kb为单位显示,默认情况下以块为单位
  • -p:表示指定显示IO的设备,ALL表示显示所有

因此,我们执行命令:

# iostat -d

其结果如下所示:

Linux 3.10.0-1062.9.1.el7.x86_64 (iZm5e8ip0m748y26ibnel2Z) 	09/26/2023 	_x86_64_	(1 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.86         0.64         6.17   74681429  723048152
vdb               0.04         0.05         0.40    5941853   47051280

iostat命令显示的内容含义如下:

  • Device:设备名称
  • tps:该设备的每秒传输次数(每秒的IO请求数)
  • KB_read/s:每秒从设备读取的数据量
  • KB_wrtn/s:每秒向设备写入的数据量
  • KB_read:从设备读取的数据总量
  • KB_wrtn:向设备写入的数据总量

二、iotop命令查看磁盘IO瓶颈

在Linux系统中,我们使用iotop命令可以查看当前使用磁盘IO的进程。

该命令在最小化安装时同样不存在,我们在安装时需要执行命令:

# yum install -y iotop

即可完成iotop的安装。安装后,我们执行命令:

# iotop -d 10

结果如下所示:

Total DISK READ :	0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:	0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                     
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-root --system --deserialize 21
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
    6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
    9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
   10 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [lru-add-drain]
   11 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
  524 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % rsyslogd -n [in:imjournal]
   13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kdevtmpfs]
   14 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]

... ... ...

该命令有以下常用参数:

  • -o:表示只显示正在读写磁盘的程序
  • -d:后面跟一个数值,表示iotop命令刷新的时间

执行该命令后,可以使用以下命令切换显示:

  • 左右箭头:表示切换排序方式,默认情况下是使用IO排序
  • r:表示改变排序的顺序
  • o:表示只显示有磁盘读写的进程
  • p:表示切换进程|线程的显示方式
  • a:表示显示累积量
  • q:表示退出