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 队列较大。

相关推荐
未济5 天前
linux 配置环境变量
linux
傲世仙尊5 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.5 天前
进程间通信
linux
AI职业加油站5 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
Liuqy-055 天前
Linux IO编程——静态库、动态库
linux
此冬歌咏5 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
彧azz5 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅5 天前
linux(8) 软硬链接
linux·运维·服务器
AIgorithmGEEK5 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid