Linux iostat 命令详解
在Linux系统管理中,监控磁盘I/O性能是一项至关重要的任务。iostat
是sysstat
包中的一个实用工具,用于监控和显示系统输入输出设备和CPU的使用情况。它提供了丰富的数据,帮助系统管理员识别并解决潜在的I/O瓶颈问题。本文将详细介绍iostat
命令的使用方法和关键参数。
安装iostat
在大多数Linux发行版中,iostat
随sysstat
包一起提供。如果你发现系统中没有安装iostat,可以通过包管理器安装它。例如,在基于Debian的系统中,你可以使用以下命令安装:
sudo apt-get update
sudo apt-get install sysstat
在基于RPM的系统中(如CentOS、Fedora),可以使用:
sudo yum install sysstat
# 或者
sudo dnf install sysstat
基本用法
iostat的基本用法很简单,直接在命令行中输入iostat将显示默认的监控数据,这通常包括CPU和所有磁盘设备的统计信息。
iostat
关键参数
- -c:仅显示CPU统计信息。
- -d:仅显示磁盘统计信息。
- -x:显示扩展的磁盘统计信息,包括每个分区或磁盘的I/O性能详情。
- -k:以KB为单位显示所有值(默认以块为单位)。
- -m:以MB为单位显示所有值。
- -t:在显示磁盘统计信息时包含时间戳。
- -p [设备]:仅显示指定设备的统计信息(例如,-p sda)。
- -n:显示NFS的I/O统计信息(如果可用)。
- -z:在零I/O报告时,强制显示所有设备的统计信息。
示例
iostat -d -k -x 1
此命令的作用是每秒更新一次报告,仅显示磁盘设备的扩展统计信息,并且所有与数据传输量相关的数值均以KB为单位显示。
解读输出
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.00 | 0.00 | 2.00 | 0.00 | 17.00 | 17.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
- Device: 被分析的磁盘设备名称,如sda。
- rrqm/s: 每秒合并的读请求数。值为0可能意味着没有读请求的合并或读操作很少。
- wrqm/s: 每秒合并的写请求数。同样,值为0可能表示没有写请求的合并或写操作很少。
- r/s: 每秒完成的读操作次数。
- w/s: 每秒完成的写操作次数。
- rkB/s: 每秒从磁盘读取的数据量(KB)。
- wkB/s: 每秒写入磁盘的数据量(KB)。
- avgrq-sz: 平均每个I/O请求的大小(扇区)。
- avgqu-sz: 等待服务的请求队列的平均长度。
- await: I/O请求的平均等待时间(毫秒)。
- r_await 和 w_await: 读和写请求的平均等待时间(毫秒)。
- svctm: I/O请求的平均服务时间(毫秒)。
- %util: 磁盘的利用率,表示CPU时间中用于处理I/O请求的比例。