关于磁盘io性能的命令

iostat

常用参数

-x: 显示扩展的磁盘统计信息
-k: 以KB为单位显示数据(而不是默认的块数)
-d: 只显示磁盘统计信息(不显示CPU统计)
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息

用法

# 1 10: 1表示每秒刷新一次,10表示只显示连续显示10次报告
iostat -x -k -d 1 10
Linux 3.10.0-1160.119.1.el7.x86_64 (iZuf6c6umecwk5it5hv5b9Z) 	2025年08月12日 	_x86_64_	(2 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     1.48    1.21    2.15    25.48    95.07    71.71     0.05   13.93    2.04   20.63   0.43   0.14

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    1.00    0.00     8.00     0.00    16.00     0.00    1.00    1.00    0.00   2.00   0.20

# rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
# wrqm/s: 每秒对该设备的写请求被合并次数
# r/s: 每秒完成的读次数
# w/s: 每秒完成的写次数
# rkB/s: 每秒读数据量(kB为单位)
# wkB/s: 每秒写数据量(kB为单位)
# avgrq-sz: 平均每次IO操作的数据量(扇区数为单位)
# zavgqu-sz: 平均等待处理的IO请求队列长度
# await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
# svctm: 平均每次IO请求的处理时间(毫秒为单位)
# %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

pidstat

查看进程级别io:

# 1 10: 1表示每秒刷新一次,10表示只显示连续显示10次报告
pidstat -d 1 10
Linux 3.10.0-1160.118.1.el7.x86_64 (localhost.localdomain)      2024年06月29日  _x86_64_        (1 CPU)

15时43分27秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
15时43分27秒     0         1     10.95      0.04      0.00  systemd
15时43分27秒     0       483      0.25      0.00      0.00  systemd-journal
15时43分27秒     0       508      3.44      0.00      0.00  systemd-udevd
15时43分27秒     0       509      0.02      0.00      0.00  lvmetad
15时43分27秒     0       627      0.02      3.82      0.00  auditd
15时43分27秒    81       650      0.28      0.00      0.00  dbus-daemon
15时43分27秒     0       652      0.16      0.00      0.00  systemd-logind
15时43分27秒     0       653      1.26      0.00      0.00  VGAuthService
15时43分27秒     0       654      0.83      0.00      0.00  vmtoolsd
15时43分27秒   999       655      1.51      0.00      0.00  polkitd
15时43分27秒     0       657      1.48      0.01      0.00  NetworkManager

# kB_rd/s   每秒从磁盘读取的KB
# kB_wr/s   每秒写入磁盘KB
# kB_ccwr/s 任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生
# Command   进程执行命令

iotop

常用参数

-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n: NUM:显示NUM次,主要用于非交互式模式。
-d: SEC:间隔SEC秒显示一次。
-p: PID:监控的进程pid。接进程号,监视指定进程,只会输出该进程的统计信息。
-u: USER:监控的进程用户。
-k: 使用千字节而不是人类友好单位
-P: 只显示进程信息,不显示线程信息

常用组合:

iotop -o   只显示正在产生I/O的进程
nohup iotop -b -o -n 10 -d 5 -t  > /tmp/iotop.log &   使用非交互模式将iotop命令输出信息写入日志
iotop -oP   借助iotop命令找到消耗I/O最高的进程

指标解释

20250812011827

Total DISK READ:总磁盘读     Actual DISK READ:实际磁盘读
Total DISK WRITE :总磁盘写入  Actual DISK WRITE:实际磁盘写入
   TID        PRIO      USER     DISK READ             DISK WRITE           SWAPIN                        IO>       
进程(线程)ID  进程优先级    用户  每秒从磁盘读取的数据量   每秒向磁盘写入的数据量  交换空间读取数据的时间百分比      I/O等待时间百分比。

快捷键

左右箭头:改变排序方式,默认是按IO排序。
r:改变排序顺序。反向排序
o:只显示有IO输出的进程。
p:进程/线程的显示方式的切换。
a:显示累积使用量。
q:退出。
posted @ 2025-08-12 01:23  阿峰博客站  阅读(23)  评论(0)    收藏  举报