查看linux服务器硬盘IO读写负载

今天一台Centos服务器出了问题,客户端访问非常慢,电影播放间歇性卡壳,web访问也是很慢。首先看了服务器的流量,然后从网上找了一些方法查看服务器的IO读写负载,记录下来分享:

1. 用top命令查看:

top - 11:41:22 up 51 min, 2 users, load average: 0.01, 0.04, 0.01

Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.2%us, 0.1%sy, 0.0%ni, 99.2%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 4151760k total, 2284628k used, 1867132k free, 47892k buffers

Swap: 4192956k total, 0k used, 4192956k free, 2145020k cached

分析:查看0.4%wa这里,IO等待所占用的CPU时间的百分比,高过30%时IO压力高

2. 用iostat查看

用iostat -x 1 10

如果 iostat 没有,要 yum install sysstat安装这个包

iostat -x 1 10

Linux 2.6.18-92.el5PAE (CZ-Jinglingmingdu.51mox.com) 2013年09月17日


avg-cpu: %user %nice %system %iowait %steal %idle

0.18 0.00 0.19 0.36 0.00 99.27


Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util

sda 8.38 7.25 8.07 3.17 1348.21 83.34 127.47 0.04 3.98 1.27 1.42


avg-cpu: %user %nice %system %iowait %steal %idle

0.00 0.00 0.25 0.00 0.00 99.75


Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util

sda 0.00 13.00 6.00 2.00 776.00 120.00 112.00 0.02 2.12 2.12 1.70


avg-cpu: %user %nice %system %iowait %steal %idle

0.25 0.00 0.25 0.00 0.00 99.50


Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util

sda 0.00 0.00 3.96 0.00 467.33 0.00 118.00 0.01 3.00 3.00 1.19


avg-cpu: %user %nice %system %iowait %steal %idle

0.00 0.00 0.25 0.00 0.00 99.75


Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util

sda 0.00 0.00 6.00 0.00 704.00 0.00 117.33 0.02 3.00 3.00 1.80


分析:

查看%util 1.42 %idle 99.27

  如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

  idle小于70% IO压力就较大了,一般读取速度有较多的wait.

  同时可以结合vmstat 查看查看b参数(等待资源的进程数)

[root@CZ-Jinglingmingdu ~]# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 0 1785708 49772 2219820 0 0 155 10 301 134 0 0 99 0 0


如果你想对硬盘做一个IO负荷的压力测试可以用如下命令


  time dd if=/dev/zero bs=1M count=2048 of=direct_2G


  此命令为在当前目录下新建一个2G的文件


  我们在新建文件夹的同时来测试IO的负荷情况


  再通过如下脚本查看高峰的进程io情况


  monitor_io_stats.sh


  #!/bin/sh


  /etc/init.d/syslog stop


  echo 1 > /proc/sys/vm/block_dump


  sleep 60


  dmesg | awk '/(READ|WRITE|dirtied)/ {process[$1]++} END {for (x in process) \


  print process[x],x}' |sort -nr |awk '{print $2 " " $1}' | \


  head -n 10


  echo 0 > /proc/sys/vm/block_dump


  /etc/init.d/syslog start


  或者用iodump.pl脚本

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值