好的,阿杰 😊
我来给你整理一份 Linux iostat
命令详解,包含作用、参数说明、常见用法和输出解释。
📌 Linux iostat
命令详解
一、命令简介
iostat
(Input/Output Statistics)是 sysstat 工具包中的一个命令,主要用于监控 CPU 使用情况 和 磁盘 I/O 使用情况。
它能够帮助我们发现 磁盘瓶颈 和 系统性能问题。
👉 所属包:sysstat
安装方式:
# Debian/Ubuntu
sudo apt install sysstat -y
# CentOS/RHEL
sudo yum install sysstat -y
二、基本语法
iostat [参数] [时间间隔] [次数]
- 时间间隔:每隔多少秒输出一次
- 次数:输出几次数据
例如:
iostat 2 5
👉 表示每 2 秒统计一次,总共统计 5 次。
三、常用参数
参数 | 说明 |
---|---|
-c | 仅显示 CPU 使用情况 |
-d | 仅显示磁盘使用情况 |
-x | 显示扩展统计信息(推荐) |
-k | 以 KB/s 显示(默认) |
-m | 以 MB/s 显示 |
-p [设备] | 显示某个设备的统计信息 |
-t | 显示时间戳 |
-N | 显示 LVM 逻辑卷统计信息 |
四、输出解释
1. CPU 部分
avg-cpu: %user %nice %system %iowait %steal %idle
- %user:用户态 CPU 使用率
- %system:内核态 CPU 使用率
- %iowait:等待 I/O 的时间百分比(高说明磁盘瓶颈)
- %idle:空闲时间
👉 iowait
长期高说明磁盘成为性能瓶颈。
2. 设备 I/O 部分(扩展模式 -x
)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
字段 | 含义 |
---|---|
r/s , w/s | 每秒读/写请求数 |
rkB/s , wkB/s | 每秒读/写 KB 数 |
avgrq-sz | 平均请求大小(扇区数) |
avgqu-sz | 平均请求队列长度 |
await | 平均每个 I/O 请求等待时间(毫秒) |
svctm | 平均服务时间(毫秒,已废弃,很多系统显示 0.00) |
%util | 设备利用率,接近 100% 表示磁盘繁忙 |
👉 常用判断标准:
await
> 20ms,磁盘可能存在性能问题%util
长期 > 80%,磁盘 I/O 过载
五、常见用法示例
- 查看 CPU 使用情况
iostat -c 2 5
- 查看磁盘 I/O 情况(扩展模式)
iostat -x 1 10
- 以 MB 显示磁盘吞吐量
iostat -xm 2
- 查看某个磁盘(如 sda)的 I/O
iostat -x -p sda 1
- 带时间戳,方便日志分析
iostat -x -t 5
六、总结
- CPU 部分主要关注
%iowait
- 磁盘部分主要关注
await
和%util
- 长期高负载时,需考虑 优化 I/O、加缓存、换 SSD 或分布式存储
好的,下面我给你整理一份 Linux iostat
命令详解,包含作用、常用选项和使用示例:
📌 Linux iostat
命令详解
1. iostat 简介
iostat
(Input/Output Statistics) 是 Linux 系统中常用的性能监控工具,主要用于 监控 CPU 使用率 和 磁盘 I/O 性能。
它通常属于 sysstat 工具包(需要先安装)。
安装方式(不同系统):
# Debian/Ubuntu
sudo apt install sysstat -y
# CentOS/RHEL
sudo yum install sysstat -y
2. iostat 输出解释
执行:
iostat
可能输出如下:
Linux 5.15.0 (hostname) 09/01/2025 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
3.45 0.00 1.23 0.10 0.00 95.22
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 5.23 120.34 230.56 1002345 2002345
CPU 部分
- %user:用户态 CPU 使用率
- %nice:低优先级进程占用 CPU 百分比
- %system:内核态 CPU 使用率
- %iowait:CPU 等待 I/O 的时间比例
- %steal:虚拟化环境中被 “偷走” 的 CPU 时间
- %idle:CPU 空闲时间比例
设备部分
- Device:设备名称(如
sda
、nvme0n1
) - tps:每秒 I/O 请求次数
- kB_read/s:每秒读取的 KB 数
- kB_wrtn/s:每秒写入的 KB 数
- kB_read:总读取 KB
- kB_wrtn:总写入 KB
3. 常用参数
参数 | 作用 |
---|---|
iostat | 显示 CPU 与磁盘 I/O 使用情况 |
iostat -x | 显示扩展统计(利用率、等待时间等) |
iostat -d | 仅显示磁盘 I/O 统计 |
iostat -c | 仅显示 CPU 统计 |
iostat -k | 以 KB 为单位显示数据(默认也是 KB) |
iostat -m | 以 MB 为单位显示数据 |
iostat -t | 显示时间戳 |
iostat -x 1 5 | 每 1 秒刷新一次,输出 5 次扩展统计 |
iostat -p sda | 显示 sda 磁盘及其分区的统计信息 |
4. 实用示例
- 每秒刷新一次磁盘 I/O,持续监控
iostat -x 1
- 查看 CPU 使用率变化(每 2 秒输出 3 次)
iostat -c 2 3
- 显示所有磁盘的读写性能(MB 单位)
iostat -d -m
- 分析某个磁盘的详细性能
iostat -p sda -x 1 5
5. 运维常用技巧
- 如果 %iowait 长时间很高(比如 >30%),说明系统磁盘性能可能成为瓶颈。
- 如果某块磁盘的 util 接近 100%,说明该磁盘 I/O 已经跑满。
- 可以结合
sar
、vmstat
、iotop
等工具综合分析系统性能。
发表回复