Linux 磁盘 I/O 工具

iostat

iostat 为用于查看磁盘输入输出的性能监控工具

复制代码
iostat [ options ] [ <interval> [ <count> ] ]

参数说明:

复制代码
options 取值如下:

-C:显示 CPU 使用情况。
-d:显示磁盘使用情况。
-k:以 KB 为单位显示。
-m:以 M 为单位显示。
-N:显示磁盘阵列(LVM) 信息。
-n:显示 NFS 使用情况。
-p[磁盘名称]:显示磁盘和分区的情况。
-t:显示终端和 CPU 的信息。
-x:显示详细信息。

interval:输出刷新的间隔时间。
count:输出的次数。

通过 iostat -x 1 3命令查看磁盘输入输出的详细信息。示例如下:

输出3次,间隔1秒

复制代码
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.22    0.00    1.30    0.02    0.00   97.46
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.81    0.06    0.97     2.59     8.43    21.34     0.00    0.82    3.81    0.64   0.09   0.01

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.00    0.00    2.00    0.00    0.00   96.00
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     6.00    1.00    2.00     8.00    32.00    26.67     0.00    0.33    0.00    0.50   0.33   0.10

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.02    0.00    1.02    0.00    0.00   97.96
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    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

字段说明:

  • avg-cpu:

    • %user:CPU 在用户态下的时间百分比。
    • %nice:CPU 在带 Nice 值的用户态下的时间百分比。
    • %system:CPU 在内核态下的时间百分比。
    • %iowait:CPU 等待 I/O 时间的百分比。
    • %steal:管理程序维护另一个虚拟处理器时,虚拟 CPU 的无意识等待时间百分比。
    • %idle:CPU 空闲时间百分比。
  • Device:磁盘名字。

  • rrqm/s: 每秒合并的读操作数量。

  • wrqm/s: 每秒合并的写操作数量。

  • r/s: 每秒读 I/O 次数。

  • w/s: 每秒写 I/O 次数。

  • rsec/s: 每秒读扇区数。

  • wsec/s: 每秒写扇区数。

  • rkB/s: 每秒读 K 字节数。

  • wkB/s: 每秒写 K 字节数。

  • avgrq-sz: 平均每次 I/O 的数据大小。

  • avgqu-sz: 平均 I/O 队列长度。

  • await: 平均 I/O 操作的等待时间 (毫秒)。

  • svctm: 平均 I/O 操作的服务时间 (毫秒)。

  • %util: I/O 占用的 CPU 利用率。

说明:

%util 表示磁盘的 I/O 使用情况,如果很高,则通常表明 I/O 有可能成为瓶颈。

await = 平均 I/O 操作的服务时间 + I/O 等待时间,所以如果 await 远大于 svctm,则说明 I/O 等待时间较长,I/O 队列较大。

相关推荐
优化Henry4 分钟前
光路异常告警排查实战:LTE室分与5G小区两个案例解析
运维·网络·学习·5g·tdd
Apipi*14 分钟前
30天速通Linux 第九章Linux网络编程
linux·运维·网络
报错小能手26 分钟前
Channel面试题。Sync面试题
linux·服务器·windows
天远数科27 分钟前
零信任架构实战:基于天远风控经营异常预警构建自动化电子签章前置合规网关
运维·人工智能·架构·自动化
xiaoqiMikko35 分钟前
Linux 实战(五):DNS、hosts、CLOSE-WAIT、SSH 权限与改端口 —— 三台真机实测
linux·centos
Linux-lucky39 分钟前
43-Linux学习之旅之Shell 脚本(二)
linux·运维·学习·ubuntu·dash
yv798an1 小时前
从 OpenSBI 引导到 C++17 异步运行时:自制 RISC-V 嵌入式专有 NAS 踩坑全记录
linux
不悔哥1 小时前
Linux系统编程多线程程序如何安全退出
linux
Fcy6482 小时前
Linux下 数据链路层详解(从以太网到ARP协议)
linux·mac·以太网·数据链路层·arp
YH行业报告分析2 小时前
2026电缆铺设设备市场:自动化敷设与电网升级驱动增长
运维·自动化