Linux系统之iostat命令的基本使用详解

 更新时间:2025年12月18日 14:34:38   作者:江湖有缘  
iostat命令是Linux/Unix系统中用于监控磁盘I/O活动的工具,可以显示磁盘的读写速率、I/O等待时间、CPU使用率等信息,通过分析这些指标,可以帮助系统管理员发现性能瓶颈,并进行优化

一、iostat命令介绍

iostat命令是Linux/Unix系统中的一种工具,用于监控系统的磁盘I/O活动情况,可以展示磁盘的读写速率、I/O等待时间、CPU使用率等信息。

iostat命令可以帮助系统管理员发现系统瓶颈,并且优化系统来提高性能。

二、iostat命令帮助

1.1 iostat的帮助信息

在Linux中的 iostat帮助信息

[root@jeven ~]# iostat --help
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]
[ <device> [...] | ALL ]

1.2 iostat的选项解释

iostat的选项解释

  • -c: 仅显示CPU利用率相关信息;
  • -d: 仅显示磁盘I/O相关信息;
  • -k: 显示输出的数据单位为KB/s而不是默认的字节/s;
  • -t: 在输出中显示时间戳(时间戳格式YYYY-MM-DD HH:MM:SS)。
  • -m:显示状态以兆字节每秒为单位;
  • -p:仅显示块设备和所有被使用的其他分区的状态;
  • -V:显示版号并退出;
  • -x:显示扩展状态。

参数解释

  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数。

三、iostat命令的基本使用

3.1 查看iostat工具版本

查看iostat工具版本

[root@jeven ~]# iostat -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)

3.2 直接使用iostat命令

直接使用iostat命令,查看系统的整体情况,显示CPU的负载情况和磁盘的状态信息。

[root@jeven ~]# iostat 
Linux 3.10.0-957.el7.x86_64 (jeven) 	07/05/2023 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.91    0.01    3.43    0.04    0.00   95.62

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.22        38.47        84.87    4775774   10535362
dm-0              3.72        38.14        84.69    4735028   10512927
dm-1              0.00         0.02         0.00       2740        364
dm-2              0.00         0.05         0.05       6781       6606

3.3 间隔5秒查看3次信息

  • 每隔5秒,查看系统的状态信息,一共查看3次。
[root@jeven ~]# iostat 5 3 
Linux 3.10.0-957.el7.x86_64 (jeven) 	07/05/2023 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.91    0.01    3.45    0.04    0.00   95.59

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.23        38.34        84.81    4775782   10564971
dm-0              3.73        38.01        84.63    4735036   10542537
dm-1              0.00         0.02         0.00       2740        364
dm-2              0.00         0.05         0.05       6781       6606

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.35    0.00   10.43    0.00    0.00   87.22

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.60         0.00        38.10          0        190
dm-0              3.60         0.00        38.10          0        190
dm-1              0.00         0.00         0.00          0          0
dm-2              0.00         0.00         0.00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.26    0.00   10.48    0.00    0.00   87.26

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.60         0.00         5.30          0         26
dm-0              0.60         0.00         5.30          0         26
dm-1              0.00         0.00         0.00          0          0
dm-2              0.00         0.00         0.00          0          0

3.4 只查看磁盘状态

  • 只查看磁盘的状态信息,展示磁盘的读写速率、I/O等待时间、CPU使用率等信息。
[root@jeven ~]# iostat -d
Linux 3.10.0-957.el7.x86_64 (jeven) 	07/05/2023 	_x86_64_	(2 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.23        38.31        84.79    4775782   10570681
dm-0              3.73        37.98        84.61    4735036   10548247
dm-1              0.00         0.02         0.00       2740        364
dm-2              0.00         0.05         0.05       6781       6606


  • 实时监控,每隔5秒就显示磁盘信息。
iostat -d 5

3.5 以k或M为单位显示信息

以k或M为单位显示信息

[root@jeven ~]# iostat -k
Linux 3.10.0-957.el7.x86_64 (jeven) 	07/05/2023 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.92    0.01    3.49    0.04    0.00   95.54

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.25        38.12        84.70    4775782   10611155
dm-0              3.75        37.80        84.52    4735036   10588721
dm-1              0.00         0.02         0.00       2740        364
dm-2              0.00         0.05         0.05       6781       6606

[root@jeven ~]# iostat -m
Linux 3.10.0-957.el7.x86_64 (jeven) 	07/05/2023 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.92    0.01    3.49    0.04    0.00   95.54

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               3.25         0.04         0.08       4663      10363
dm-0              3.75         0.04         0.08       4624      10341
dm-1              0.00         0.00         0.00          2          0
dm-2              0.00         0.00         0.00          6          6

四、查看磁盘I/O的详细情况

  • 查看某块磁盘I/O的详细情况
[root@jeven ~]# iostat -x /dev/sda
Linux 3.10.0-957.el7.x86_64 (jeven) 	07/05/2023 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.91    0.01    3.47    0.04    0.00   95.57

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.00     0.51    0.74    2.50    38.26    84.77    76.04     0.03   10.45   14.10    9.37   0.84   0.27

Device 监测设备名称

  • rrqm/s 每秒需要读取需求的数量
  • wrqm/s 每秒需要写入需求的数量
  • r/s 每秒实际读取需求的数量
  • w/s 每秒实际写入需求的数量
  • rsec/s 每秒读取区段的数量
  • wsec/s 每秒写入区段的数量
  • rkB/s 每秒实际读取的大小,单位为KB
  • wkB/s 每秒实际写入的大小,单位为KB
  • avgrq-sz 需求的平均大小区段
  • avgqu-sz 需求的平均队列长度
  • await 等待I/O平均的时间(milliseconds)
  • svctm I/O需求完成的平均时间
  • %util 被I/O需求消耗的CPU百分比

五、查看cpu状态信息

查看cpu状态信息

[root@jeven ~]# iostat -c 5 2
Linux 3.10.0-957.el7.x86_64 (jeven) 	07/05/2023 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.92    0.01    3.48    0.04    0.00   95.56

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.36    0.00   10.66    0.00    0.00   86.99

  • %user:表示用户空间程序执行的CPU时间百分比。
  • %nice:表示以较高的优先级运行的用户进程的CPU时间百分比。
  • %system:表示内核空间程序执行的CPU时间百分比。
  • %iowait:表示CPU等待I/O操作完成的时间百分比。
  • %steal:表示由于运行虚拟机等原因被其他虚拟机占用的CPU时间百分比。
  • %idle:表示CPU空闲时间的百分比。

六、iostat命令的使用总结

6.1 磁盘模块分析

在使用IOStat进行系统性能监控时,需要注意综合分析磁盘和CPU等多个性能指标,以全面评估系统性能瓶颈的位置和原因。

通过监控以上指标,可以识别磁盘的瓶颈位置,例如:

  • 如果r/s和w/s较高,说明磁盘IO压力较大,需要考虑更换更高性能的硬盘;
  • 如果await和svctm较高,说明磁盘处理I/O请求的能力不足,可能需要更换磁盘控制器或升级磁盘阵列等。

6.2 CPU模块分析

通过监控以上指标,可以识别CPU的瓶颈位置,例如:

  • 如果%user和%system较高,说明CPU的负载较大,可能需要考虑升级CPU或增加CPU核心数;
  • 如果%iowait较高,说明CPU等待IO完成的时间较长,可能需要优化磁盘性能或者减少磁盘IO操作;
  • 如果%idle值高,表示CPU较空闲,系统处于空闲状态,无太多处理任务;
  • 如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。
  • 如果%idle较低,说明CPU负载较大,可能需要考虑优化应用程序或增加CPU资源等。

七、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux切换root用户的几种实现方式

    Linux切换root用户的几种实现方式

    在Linux系统中,root用户为超级用户,拥有最高权限,切换到root用户的常用方法包括使用su、sudo、sudo-i和sudosu命令,每种方法适用于不同场景,需根据实际需求选择,使用root权限需谨慎,以免对系统造成损坏
    2024-11-11
  • Linux编译优化必须掌握的几个姿势总结

    Linux编译优化必须掌握的几个姿势总结

    内核是操作系统的核心,也是操作系统最基本的部分。下面这篇文章主要给大家总结介绍了关于Linux编译优化必须掌握的几个姿势,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-09-09
  • CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)

    CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)

    CentOS 5.4下的Memcache安装步骤分享,想要配置Linux+Nginx+PHP+Memcached运行环境的朋友可以参考下
    2012-02-02
  • CentOS6.9下NFS服务安装配置教程

    CentOS6.9下NFS服务安装配置教程

    这篇文章主要为大家详细介绍了CentOS6.9下NFS服务安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Linux虚拟机无网络问题的解决方案(yum无法使用)

    Linux虚拟机无网络问题的解决方案(yum无法使用)

    在下载虚拟机后,由于网络没有配置好,会遇到没网问题,导致yum无法使用,下载不了软件,当我们安装软件时出现下面情况:could not retrieve mirrorlist,所以本文给大家介绍了Linux虚拟机无网络问题的解决方案(yum无法使用),需要的朋友可以参考下
    2024-11-11
  • xshell 远程登陆CentOS7 免密登陆的思路详解

    xshell 远程登陆CentOS7 免密登陆的思路详解

    这篇文章主要介绍了xshell 远程登陆CentOS7 免密登陆的思路,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • apache 配置成滚动日志的方法

    apache 配置成滚动日志的方法

    apache默认的日志只是1个文件,随着访问量的加大,该日志文件会越来越大,借助apache的rotatelogs.exe自动生成滚动日志。
    2010-12-12
  • Apache的fork模式和worker模式判断方法

    Apache的fork模式和worker模式判断方法

    这篇文章主要介绍了Apache的fork模式和worker模式判断方法,文中给出的方法基于http,需要的朋友可以参考下
    2015-07-07
  • 在CentOS中搭建Hadoop的详细步骤

    在CentOS中搭建Hadoop的详细步骤

    这篇文章主要介绍了在CentOS中搭建Hadoop的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Linux中的进程地址空间用法解读

    Linux中的进程地址空间用法解读

    这篇文章主要介绍了Linux中的进程地址空间用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04

最新评论