关于磁盘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最高的进程
指标解释
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:退出。