top - 16:15:05 up 6 days, 6:25, 2 users, load average: 1.45, 1.77, 2.14
Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2% us, 0.2% sy, 0.0% ni, 86.9% id, 12.6% wa, 0.0% hi, 0.0% si
Mem: 4037872k total, 4003648k used,34224k free, 5512k buffers
Swap: 7164948k total, 629192k used, 6535756k free, 3511184k cached
查看12.6% wa
IO等待所占用的CPU时间的百分比,高过30%时IO压力高
其次、 用iostat -x 1 10
avg-cpu: %user %nice%sys %iowait %idle
0.00 0.00 0.2533.4666.29
Device:rrqm/s wrqm/s r/sw/s rsec/s wsec/srkB/swkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.000.00 0.00 0.000.000.00 0.00 0.00 0.00 0.000.000.00 0.00
sdb 0.00 1122 17.00 9.00 192.00 9216.0096.00 4608.00 123.79 137.23 1033.43 13.17 100.10
sdc 0.000.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.000.00 0.00 0.00
查看%util 100.10 %idle 66.29
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
idle小于70% IO压力就较大了,一般读取速度有较多的wait.
同时可以结合vmstat 查看查看b参数(等待资源的进程数)
vmstat -1
如果你想对硬盘做一个IO负荷的压力测试可以用如下命令
time dd if=/dev/zero bs=1M count=2048 of=direct_2G
此命令为在当前目录下新建一个2G的文件
我们在新建文件夹的同时来测试IO的负荷情况
使用zabbix监控磁盘IO前面的文章介绍了zabbix简单的安装,下面介绍下利用zabbix监控磁盘IO的方法
默认的 Zabbix 监控模板中,对于磁盘主要是剩余空间之类的监控,对于 IO 方面却没有,好在 Zabbix 提供了丰富的定制功能,可自行添加想要监控的任意内容。具体步骤如下:
1、 在被监控服务器的配置文件(/etc/zabbix/zabbix_agentd.conf)中添加以下内容:
###disk io
UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}'
UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'
UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'
UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'
UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}'
UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'
UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'
UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'
可以先测试看其是否生效,使用如下命令,看是否正常返回数字。注意在命令行运行时,grep 那里的 $1 需根据自己磁盘设定修改为 sda 或 sdb,awk 那里需去除一个 $ 符号。
cat /proc/diskstats | grep sda | head -1 | awk '{print $4}'
2、被监控主机重启 agent
/etc/init.d/zabbix_agentd_ctl restart
3、在 zabbix server 上测试能否接收数据,将其中的 AgentServerIP 修改为被监控服务器的IP,注意这里是在运行 zabbix 服务端的机器上执行此操作。如果返回的是一串数字则正确,如果返回ZBX_NOTSUPPORTED ,请检查确认被监控主机的 agent 是否有重启,网络端口是否开放。
zabbix_get -s AgentServerIP -p 10050 -k custom.vfs.dev.write.ops[sda]
4、在 zabbix web 配置界面的模板中,导入这里提供的模板。并将此模板关联到要监控的服务器主机上,很快就可以在 Latest data 中看到获取的数据并可画出趋势图了。
一般的磁盘检查工具就可以了,像 HD Tune 之类的,有的优化软件也集成了硬盘检测的组件,可以做读写测试的,比如“软媒魔方”集成的“磁盘大师”组件等等。如果还不清楚,就直接百度搜索“磁盘性能测试”吧,会有你想要的。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)