Linux 系统磁盘 IO 状态查看
一、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:表示退出