Beng Dou

一只站在树上的鸟儿,从来不会害怕树枝断裂,因为它相信的不是树枝,而是它自己的翅膀。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Linux性能测试分析命令_iostat

  iostat用于输出CPU和磁盘I/O相关的统计信息

iostat语法

用法:iostat [ 选项 ] [ <时间间隔> [ <次数> ]]

常用选项说明:

-c:只显示系统CPU统计信息,即单独输出avg-cpu结果,不包括device结果
-d:单独输出Device结果,不包括cpu结果
-k/-m:输出结果以kB/mB为单位,而不是以扇区数为单位
-x:输出更详细的io设备统计信息
interval/count:每次输出间隔时间,count表示输出次数,不带count表示循环输出

说明:更多选项使用使用man iostat查看

常用实例

1、iostat,结果为从系统开机到当前执行时刻的统计信息

复制代码
$ iostat
Linux 3.10.0-514.26.2.el7.x86_64 (VM_17_110_centos)     2017年10月22日  _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.49    0.00    0.65    0.29    0.00   97.58

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.27         6.38        48.27    7044109   53255704
vdb               0.00         0.00         0.00        944          0
vdc              12.22       145.74       120.85  160792201  133326268
复制代码

输出含义:

    avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值。重点关注iowait值,表示CPU用于等待io请求的完成时间。

    Device: 各磁盘设备的IO统计信息。各列含义如下:

Device: 以sdX形式显示的设备名称
tps: 每秒进程下发的IO读、写请求数量
Blk_read/s: 每秒读扇区数量(一扇区为512bytes)
Blk_wrtn/s: 每秒写扇区数量
Blk_read: 取样时间间隔内读扇区总数量
Blk_wrtn: 取样时间间隔内写扇区总数量

2、iostat -x -k -d 1 2。每隔1S输出磁盘IO的详细详细,总共采样2次。

复制代码
$ iostat -x -k  1 2
Linux 3.10.0-514.26.2.el7.x86_64 (VM_17_110_centos)     2017年10月22日  _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.49    0.00    0.65    0.29    0.00   97.58

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.85    0.67    2.60     6.38    48.27    33.39     0.02    5.72    5.46    5.78   0.27   0.09
vdb               0.00     0.00    0.00    0.00     0.00     0.00    14.75     0.00    1.55    1.55    0.00   1.55   0.00
vdc               0.06    14.87    6.91    5.31   145.72   120.84    43.62     0.11    9.04    9.92    7.89   0.89   1.09

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    0.25    0.00    0.00   99.25

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    14.00    0.00    7.00     0.00    84.00    24.00     0.03    3.57    0.00    3.57   0.71   0.50
vdb               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
vdc               0.00     2.00    0.00   27.00     0.00   124.00     9.19     0.32   11.67    0.00   11.67   0.48   1.30
复制代码

以上各列的含义如下:

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

 重点关注参数

1、iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。

2、avgqu-sz 表示磁盘IO队列长度,即IO等待个数。

3、await 表示每次IO请求等待时间,包括等待时间和处理时间

4、svctm 表示每次IO请求处理的时间

5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。

posted on   锅边糊  阅读(3997)  评论(1编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示