由于业务特性,需要监控机器的每个磁盘的util情况,以便排查问题。但是实际使用中发现,当通过 iostat -x
查看时 ,磁盘的util是不准确的,即便有哪个盘达到了99也监测不出来。但是 iostate -x 1
这样定时刷新,就能看到准确的值。
通过 iostat -x 1 2
,这样执行两次,然后获取第二次的结果就可以获取真实的util。
脚本代码如下:
#!/bin/bash
x=$(iostat -x 1 2 | grep sd | awk '{print $1,$NF}')
count=$(echo "$x" | wc -l)
echo "$x" | tail -n $(( $count / 2 ))
执行结果:
$ sh monitor_diskutil.sh
sda 0.10
sdn 0.00
sdc 2.00
sdf 99.60
sdl 4.90
sdm 8.30
sdd 1.20
sde 2.80
sdh 3.30
sdj 3.30
sdg 6.40
sdk 3.00
sdb 0.00
sdi 2.80