监控io性能的iostat
#iostat -d -k 1 20
//显示吞吐量kb_read/s,kb_write/s,tps
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 7.00 64.00 24.00 64 24 sda1 0.00 0.00 0.00 0 0 sda2 0.00 0.00 0.00 0 0 sda3 0.00 0.00 0.00 0 0 sda4 0.00 0.00 0.00 0 0 sda5 7.00 64.00 24.00 64 24
tps:设备每秒的传输次数(一次传输可能包含多次io请求);
kb_read/s:每秒读取的数据量;kb_wrtn/s:每秒写入设备的数据量;
kb_read和kb_wrtn分别是读取量和写入量,单位都是kb。
#iostat -d -k -x 1 20
//显示详细的信息,主要看设备使用率%util和响应时间await
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 0.00 0.00 4.00 0.00 64.00 0.00 32.00 0.02 6.00 6.00 2.40 sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sda5 0.00 0.00 4.00 0.00 64.00 0.00 32.00 0.02 6.00 6.00 2.40
rrqm/s:每秒设备的读取操作有多少次被merge(不同会话操作同一时间段访问设备上同一数据的时候,被合并);wrqm/s:每秒设备的写入操作有多少次被merge;
rkb/s:每秒读操作扫描的扇区块;wkb/s:每秒写操作扫描的扇区块;r/s每秒被处理的读操作次数,w/s每秒被处理的写操作次数
await:处理一个io操作所用的平均时间;
%util:设备io使用率;计算方法是:在1秒内进行io操作用了0.6秒,那么%util就是60%
#iostat -c 1 20
//查看CPU信息
avg-cpu: %user %nice %system %iowait %steal %idle 0.63 0.00 0.25 0.00 0.00 99.12