10 Linux iostat 命令报告 CPU 和 IO 统计信息

Iostat 命令用于监控系统的输入/输出 (I/O) 设备负载,方法是观察设备相对于其平均传输速率的活动时间。iostat 创建可用于更改系统配置的报告,以更好地平衡物理磁盘之间的输入/输出。

Iostat 包含在sysstat包中。Iostat 默认安装在大多数 Linux 发行版中。

如果没有,则需要先安装。

在 RedHat / CentOS / Fedora 上

$ yum install sysstat

在 Debian / Ubuntu / Linux Mint 上

$ apt-get install sysstat

当该命令不带参数运行时,它会生成一份详细报告,其中包含自系统启动以来的信息。您可以提供两个可选参数来更改此设置:

iostat [选项] [间隔] [计数]
  • interval参数指定每个报告之间的持续时间(以秒为单位)
  • Count参数允许您指定在 iostat 退出之前生成的报告数。

当使用这些参数首次运行命令时,第一个报告包含自系统启动以来的信息,而每个后续报告都涵盖自上次报告生成以来的时间段。

$ iostat 2 3
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01)       05/23/2017             _x86_64_  (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.65    0.00    0.18    0.02    0.00   99.15
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.88         4.29         7.07     217829     358600
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.01    0.00    0.50    0.00    0.00   98.49
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.50         0.00         2.01          0          4
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.00    0.00    0.50    0.00    0.00   96.50
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.00         0.00        30.00          0         60

1.获取报告和统计

iostat 默认不带任何选项显示由CPU 和设备组成的统计报告。

$ iostat

输出:

Linux 3.10.0-514.16.1.el7.x86_64 (centos-01)       05/22/2017             _x86_64   (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.69    0.00    0.19    0.02    0.04   99.08
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.00         3.40        14.08    1552428    6423128

第一部分包含 CPU 报告

  • %user 在用户(应用程序)级别执行时发生的CPU 利用率 百分比
  • %nice : 在用户级别以 nice 优先级执行时发生的 CPU 利用率百分比
  • %system  在系统(内核)级别执行时发生的 CPU 利用率百分比
  • %iowait   CPU 或 CPU 空闲的时间百分比,在此期间系统有未完成的磁盘 I/O 请求
  • %steal  当虚拟机管理程序为另一个虚拟处理器提供服务时,虚拟 CPU 或多个 CPU 非自愿等待所花费的时间百分比
  • %idle   CPU 或 CPU 空闲且系统没有未完成的磁盘 I/O 请求的时间百分比

第二部分包含设备利用率报告

  • device/dev目录中列出的设备/分区名称
  • tps  每秒向设备发出的传输次数。更高的 tps 意味着处理器更忙
  • blk_read/s 显示从设备读取的数据量,以每秒块数(千字节、兆字节)表示
  • Blk_wrtn/s  写入设备的数据量,以每秒块数(千字节、兆字节)表示
  • blk_read 显示读取的块总数
  • blk_wrtn :显示写入的总块数

iostat 使用以下文件创建报告:

  • /proc/stat包含系统统计信息。
  • /proc/uptime包含系统正常运行时间。
  • /proc/diskstats包含磁盘统计信息。
  • /sys包含块设备的统计信息。
  • /proc/self/mountstats包含网络文件系统的统计信息。
  • /dev/disk包含永久设备名称。

2.显示更详细的统计信息

Iostat 命令提供 I/O 设备报告利用率。可以使用选项扩展深入诊断的统计结果-x

$ iostat -x

输出:

Linux 3.10.0-514.16.1.el7.x86_64 (centos-01)       05/23/2017             _x86_64_ (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.69    0.00    0.19    0.02    0.04   99.06
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.01     1.10    0.16    0.84     3.37    14.04    34.88     0.00    2.35    1.41    2.53   0.40   0.04
  • avg-cpu: 是cpu块信息
  • devide: 是设备块信息。确保您使用的是好设备
  • %util:存储设备有多少时间有未完成的工作(很忙)。
  • svctm:指示您的 I/O 子系统在忙碌时响应请求的速度。实际上,加载系统越少,svctm 越高。
  • await:指示请求通过的速度。这只是一个平均值。
  • avgqu-sz:请求队列中有多少个请求。低 = 您的系统未加载,或者已序列化 I/O 并且无法正确利用底层存储。高 = 您的软件堆栈具有足够的可扩展性,可以正确加载底层 I/O。
  • avgrq-sz:只是平均请求大小。可以指示发生了什么样的工作量。
  • wsec/s & rsec/s:每秒读取和写入的扇区数。除以 2048,您将获得每秒兆字节数。
  • r/s & w/s:每秒读取和写入请求。这些数字是 I/O 容量数据,当然,取决于 I/O 子系统的底层压力(队列大小!),它们可能会有所不同。
  • rrqm/s & wrqm/s:块层合并了多少请求。

3. 只显示 cpu 统计信息

-c可以通过选项显示我们的 cpu 的统计信息和报告

$ iostat -c

输出:

Linux 4.4.0-78-generic (shinigami)       05/23/2017             _x86_64_ (4 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.93    0.08    2.40    3.35    0.00   81.24

4.只显示设备报告

可以通过选项仅显示设备利用率的状态-d。它将列出每个连接设备的信息。

$ iostat -d

输出:

Linux 4.4.0-78-generic (shinigami)       05/23/2017             _x86_64_ (4 CPU)
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              17.73       510.80       632.10    5127420    6345037
mmcblk0           0.03         0.63         0.00       6282          0

5. 仅显示设备的扩展 I/O 统计信息

我们可以在一侧显示扩展统计信息,从另一侧我们可以显示扩展统计信息。这意味着我们只能显示带有选项的设备的扩展统计信息-xd

$ iostat -xd

输出:

$ iostat -xd
Linux 4.4.0-78-generic (shinigami)       05/23/2017             _x86_64_ (4 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
sda               0.48    25.33    8.43    7.81   417.06   540.42   117.88     1.18   72.83   35.98  112.62   6.18  10.03
mmcblk0           0.30     0.00    0.02    0.00     0.49     0.00    49.47     0.00    3.73    3.73    4.00   2.99   0.01

6.以千字节或兆字节捕获统计信息

默认情况下,iostat 以字节为单位测量 I/O 系统。为了更容易阅读,我们可以将 iostat 转换为以千字节或兆字节为单位显示报告。

只需添加选项-k以创建以千字节为单位的报告。

$ iostat -k

输出:

Linux 4.4.0-78-generic (shinigami)       05/23/2017             _x86_64_ (4 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.54    0.08    2.37    3.41    0.00   81.61
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              16.18       345.76       504.55    5622164    8204113
mmcblk0           0.02         0.39         0.00       6282          0

-m创建以兆字节为单位的报告的选项。

$ iostat -m
Linux 4.4.0-78-generic (shinigami)       05/23/2017             _x86_64_ (4 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.54    0.08    2.37    3.41    0.00   81.61
Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda              16.18         0.34         0.49       5490       8012
mmcblk0           0.02         0.00         0.00          6          0

7.延迟显示cpu和设备统计信息

vmstat相同,作为统计工具,使用它的最佳方法是使用延迟参数。通过延迟,我们可以看到趋势是什么。以下是一些延迟运行 iostat 的示例。

以千字节为单位运行 iostat,间隔 2 秒,报告 3 次。

$ iostat -k 2 3

输出:

Linux 3.10.0-514.16.1.el7.x86_64 (centos-01)       05/23/2017             _x86_64_ (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.70    0.00    0.19    0.02    0.03   99.05
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.00         3.33        14.03    1561788    6572152
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.50    0.00    0.00    0.00    0.00   99.50
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.00         0.00         0.00          0          0
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.52    0.00    0.50    0.00    0.00   95.98
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.51         0.00        12.06          0         24

要显示间隔为 2 秒和 2 次报告的仅 CPU 报告,请键入:

$ iostat -c 2 2
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01)       05/23/2017             _x86_64_ (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.71    0.00    0.19    0.02    0.03   99.05
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.50    0.00    0.00    0.00    0.00   98.50

要显示 sda6 和 sda7 设备仅报告 2 秒间隔和 2 次报告,请运行:

$ iostat -d sda7 sda6 2 2

输出:

 
Linux 4.4.0-78-generic (shinigami)       05/23/2017             _x86_64_ (4 CPU)
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda6              3.40       108.29       130.75    1928577    2328496
sda7             12.19       211.96       305.79    3774804    5445696
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda6              0.00         0.00         0.00          0          0
sda7              1.00         0.00        24.00          0         48

8.显示持久化设备名称统计

可以按设备名称打印报告。代替标准/dev/sda名称,它将使用选项-j和添加ID关键字(指定持久名称的类型)打印持久设备名称。

$ iostat -j ID mmcbkl0 sda6 -x -m 2 2 

输出:

Linux 4.4.0-78-generic (shinigami)       05/23/2017             _x86_64_ (4 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          14.33    0.10    2.48    3.26    0.00   79.83
Device:  rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
ata-ST500LT012-1DG142_S3P4312X-part6
         0.19     0.88    2.51    0.82     0.10     0.12   138.36     0.21   61.81   57.12   76.12  10.81   3.60
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          19.40    0.00    1.25    0.63    0.00   78.72
Device:  rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
ata-ST500LT012-1DG142_S3P4312X-part6
         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

9.显示块设备的统计信息

可以直接自动显示每个块设备的信息。无需指明每个设备名称。它将显示系统使用的块设备及其所有分区的统计信息。如果在命令行中输入了设备名称,则会显示该设备及其所有分区的统计信息。只需使用-p选项

$ iostat -p

输出:

Linux 4.4.0-78-generic (shinigami)       05/23/2017             _x86_64_ (4 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          14.93    0.10    2.51    3.19    0.00   79.28
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              15.82       297.18       474.87    5928512    9473117
sda1              0.00         0.11         0.00       2108          0
sda2              0.01         0.28         0.00       5679          1
sda3              0.00         0.10         0.00       2084          0
sda4              0.00         0.10         0.00       2092          0
sda5              0.09         0.77        45.62      15428     910068
sda6              3.26       102.76       117.09    2049957    2335908
sda7             12.09       192.75       306.99    3845120    6124136
sda8              0.12         0.20         5.16       3896     103004
mmcblk0           0.01         0.31         0.00       6282          0
mmcblk0p1         0.01         0.26         0.00       5242          0
$ iostat -p sdf 1 2
Linux 3.10.0-514.16.1.el7.x86_64 (centos7-srv)    05/23/2017             _x86_64_ (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.18    0.41    3.94    4.10    0.00   84.37
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdf               0.47         3.54         0.00       4656          0
sdf1              0.09         0.70         0.00        920          0
sdf2              0.09         0.69         0.00        904          0
sdf3              0.09         0.69         0.00        904          0
sdf4              0.09         0.69         0.00        904          0
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.00    1.00    2.00    0.00    0.00   91.00
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdf               0.00         0.00         0.00          0          0
sdf1              0.00         0.00         0.00          0          0
sdf2              0.00         0.00         0.00          0          0
sdf3              0.00         0.00         0.00          0          0
sdf4              0.00         0.00         0.00          0          0

10.显示lvm2统计信息

可以使用选项查看LVM统计信息-N。该命令显示任何设备映射器设备的已注册设备映射器名称。

$ iostat -N

结论

我们可以通过选项告诉 iostat 忽略在采样期间没有活动的任何设备的输出-z

此工具的优点之一是您可以在没有 root 权限的情况下运行它们。您可以通过在控制台中键入man iostat来浏览 iostat 手册页来更深入地挖掘它以带来 iostat 手册页。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值