iostat [ -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 ] [ interval [ count ] ]
-c | cpu利用率报告 |
-d | 设备利用率报告 |
-h | 使设备利用率报告更容易被人类解读 |
-k/m | 以每秒千字节/兆字节显示 统计信息(statistics) |
-N | 显示任何注册的设备映射器名称。用于查看LVM2统计信息。 |
-p | 选项显示系统使用的块设备和它们的所有分区的统计信息 |
-t | 刷新的每份报告打印时间戳 |
-V | 显示版本号 |
-x | 显示扩展信息 |
-y | 忽略系统启动以来第一个统计信息的报告 |
-z | 忽略在采样期间没有活动的任何设备的输出 |
%user 在用户级别运行所使用的CPU的百分比.
%nice 显示在具有良好优先级的用户级别上执行时发生的CPU利用率百分比。
%sys 在系统级别(kernel)运行所使用CPU的百分比.
%iowait CPU等待硬件I/O时,所占用CPU百分比.
%idle CPU空闲时间的百分比.
Device 设备
tps 每秒发送到设备的传输数
Blk_read/s 设备读取的块的数量,(千比特/兆字节)/秒,大小为512字节(kB_read/s, MB_read/s)
Blk_wrtn/s 设备写入的块的数量(kB_wrtn/s, MB_wrtn/s)
Blk_read 读取的块总的数量(kB_read, MB_read)
Blk_wrtn 写入的块总的数量(kB_wrtn, MB_wrtn)
rrqm/s 每秒合并排队到设备的读请求数
wrqm/s 每秒合并排队到设备的写请求数
r/s 设备每秒完成的读请求数(合并后)
w/s 设备每秒完成的写请求数(合并后)
rsec/s 每秒从设备读取的扇区数(千字节/兆字节)(rkB/s, rMB/s)
wsec/s 每秒从设备写入的扇区数(千字节/兆字节)(rkB/s, rMB/s)
avgrq-sz 发送给设备的请求平均大小(以扇区为单位)
avgqu-sz 发送给设备的请求平均队列
await 发送给设备IO请求的平均时间(以毫秒为单位)这包括队列中请求所花费的时间和服务请求所花费的时间
r_await 发送给要服务的设备的读请求的平均时间(以毫秒为单位)。这包括队列中请求所花费的时间和服务请求所花费的时间。
w_awai 发送给要服务的设备的写请求的平均时间(以毫秒为单位)。这包括队列中请求所花费的时间和服务请求所花费的时间。
svctm 向设备发出I/o请求的平均服务时间(以毫秒为单位)。警告!不要再相信这个领域了。该字段将在未来的sysstat版本中删除。
%util 向设备发出I/o请求所用的时间百分比(设备的带宽利用率)。当该值接近100%时,设备饱和发生。
果svctm比较接近await,说明I/O几乎没有等待时间;
如果await远大于svctm,说明I/O队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调 整内核elevator算法,优化应用,或者升级CPU
%util的告警在70%,如果太高,表明I/O请求太多导致满负荷,磁盘可能存在瓶颈
推荐参数:
iostat -cdmNtxyz -p 2
iostat -mNtx -p 1 2