iostat命令

文章目录

iostat命令不存在

问题:

bash 复制代码
[root@jobbinqiao ~]# iostat
-bash: iostat: command not found

在 RHEL 及 CentOS 最小化安裝不會包括 iostat, 只要安裝 sysstat 套件便可以解決問題, 除了 iostat 外, sysstat 套件還包括 mpstat, sar 及 sa 等工具。

解决方案:

bash 复制代码
yum intstall -y sysstat

iostat命令详解

iostat 是用来输出cpu/磁盘的I/O情况的命令

单独执行iostat,显示的结果为从系统开机到当前执行时刻的统计信息。

bash 复制代码
[root@jobbinqiao ~]# iostat
# 当前内核版本、主机名、时间等
Linux 3.10.0-1160.11.1.el7.x86_64 (jobbinqiao)  08/21/2023      _x86_64_        (2 CPU)

#  总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
avg-cpu:  %user   %nice  %system  %iowait  %steal  %idle
           0.18    0.00    0.18    0.17    0.00    99.47

# 各磁盘的I/O使用状况
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.61         0.07        12.92     415315   77814333
scd0              0.00         0.00         0.00        888          0

cpu平均值属性含义

参数 含义
%user CPU在用户态执行进程的时间百分比
%nice CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比
%system CPU处在内核态执行进程的时间百分比
%iowait CPU用于等待I/O操作占用CPU总时间的百分比
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比
%idle CPU空闲时间百分比

tips

  1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈 ;
  2. 若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量;
  3. 若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU

avg-cpu中各列参数含义如下:

每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

参数 含义
Blk_read/s 以每秒块数表示从设备读取的数据量
Blk_wrtn/s 以每秒块数表示写入设备的数据量
Blk_read 取样时间间隔内读扇区总数量
Blk_wrtn 取样时间间隔内写扇区总数量

我们可以使用-c选项单独显示avg-cpu部分的结果,使用-d选项单独显示Device部分的信息。

bash 复制代码
iostat interval [count] 

指定iostat命令的采样间隔和采样次数

bash 复制代码
## 每一秒展示一次io信息,一共展示5次
iostat -d 1 5

[root@jobbinqiao shell]# iostat -d 1 5
Linux 3.10.0-1160.11.1.el7.x86_64 (jobbinqiao)  08/21/2023      _x86_64_        (2 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.61         0.07        12.92     415507   78045401
scd0              0.00         0.00         0.00        888          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               2.00         0.00        20.00          0         20
scd0              0.00         0.00         0.00          0          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0
## 其中可以使用ctrl + c终止

以kB为单位显示读写信息(-k选项)/以mB为单位显示读写信息(-m选项)

bash 复制代码
[root@jobbinqiao shell]# iostat -k
Linux 3.10.0-1160.11.1.el7.x86_64 (jobbinqiao)  08/21/2023      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.18    0.00    0.18    0.17    0.00   99.47

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.61         0.07        12.92     415507   78050297
scd0              0.00         0.00         0.00        888          0

为显示更详细的io设备统计信息,可以使用-x选项。

在分析io瓶颈时,一般都会开启-x选项。

bash 复制代码
[root@jobbinqiao ~]# iostat -x
Linux 3.10.0-1160.11.1.el7.x86_64 (jobbinqiao)  08/21/2023      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.18    0.00    0.18    0.17    0.00   99.47

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     1.34    0.00    1.61     0.07    12.92    16.14     0.02   12.32    7.97   12.32   2.68   0.43
scd0              0.00     0.00    0.00    0.00     0.00     0.00    16.44     0.00    0.34    0.34    0.00   0.32   0.00
相关推荐
AlfredZhao8 小时前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐1 天前
Linux内存扩容指南
linux
zylyehuo2 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者4 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10155 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao6 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3107 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql