linux iostat命令
iostat命令 用于监控系统输入输出设备和CPU的使用情况。它是sysstat工具包的一部分,常用于性能分析和系统调优。
命令格式
常用选项
| 选项 |
说明 |
-c |
只显示CPU使用情况 |
-d |
只显示设备使用情况 |
-k |
以KB为单位显示数据 |
-m |
以MB为单位显示数据 |
-x |
显示扩展统计信息 |
-p |
显示指定设备或所有设备 |
-t |
显示时间戳 |
-h |
人性化显示(易读格式) |
输出字段说明
CPU统计信息
| 字段 |
说明 |
| %user |
用户态CPU使用率 |
| %nice |
低优先级用户态CPU使用率 |
| %system |
内核态CPU使用率 |
| %iowait |
CPU等待IO的时间百分比 |
| %steal |
虚拟CPU被hypervisor占用的时间 |
| %idle |
CPU空闲时间百分比 |
磁盘统计信息
| 字段 |
说明 |
| Device |
设备名称 |
| tps |
每秒传输次数 |
| kB_read/s |
每秒读取的数据量(KB) |
| kB_wrtn/s |
每秒写入的数据量(KB) |
| kB_read |
读取的总数据量(KB) |
| kB_wrtn |
写入的总数据量(KB) |
使用实例
1. 显示所有设备的CPU和磁盘统计信息
2. 每隔2秒显示一次,共显示3次
3. 只显示CPU使用情况
4. 只显示磁盘使用情况
5. 显示扩展统计信息(包括更多磁盘指标)
6. 以MB为单位显示数据
7. 显示指定磁盘的统计信息
8. 显示所有磁盘的扩展统计信息,每2秒刷新一次
9. 显示带时间戳的统计信息
实际输出示例
# iostat -x 1 3
Linux 5.4.0-42-generic (server) 08/15/2023 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
5.45 0.01 1.78 0.25 0.00 92.51
Device r/s w/s rkB/s wkB/s await svctm %util
sda 2.50 1.20 102.40 50.40 1.20 0.80 0.30
sdb 0.50 0.30 20.48 12.29 0.90 0.60 0.05
注意:
- iostat第一次报告显示的是系统启动以来的统计信息,后续报告显示的是上一个间隔时间内的统计信息
- %iowait过高可能表示磁盘存在瓶颈
- %util接近100%表示设备接近满负荷运行
- 使用
-x选项可以获得更详细的性能指标
安装iostat
如果系统没有安装iostat,可以使用以下命令安装:
# Ubuntu/Debian
sudo apt-get install sysstat
# CentOS/RHEL/Fedora
sudo yum install sysstat
# 启动服务
sudo systemctl start sysstat
sudo systemctl enable sysstat