由于最近一台从数据库服务器的性能非常低,写数据相当的慢,于是就用工具检测了下这台服务器的性能.我这里下载了一个检测系统性能的工具包sysstat-9.0.4.tar,里面集成了好几个检测系统的工具,相当不错的东东.
1.安装过程: #tar zxvf sysstat-9.0.4.tar #cd sysstat-9.0.4 #./configure --prefix=/usr/local/tools
#make && make install
2.检测过程:
我这里先用了系统自带的一个工具vmstat来进行服务器的检测:
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 120 249420 219056 6520512 0 0 0 1 1 1 7 0 90 3 0
从这个命令看不出来什么问题感觉都是正常的,我们继续用起来的工具来进行分析.
# iostat -cdDPx
extended device statistics cpu
device mgr/s mgw/s r/s w/s kr/s kw/s size queue wait svc_t %b us sy wt id
sda1 0 00.00.0 1.314.80.0 0.00.0 0.0 0 7 0 3 90
sda2 0 00.00.0 0.0 0.00.0 0.00.0 0.0 0
sda3 0 00.00.0 111.2 266.50.0 0.00.0 0.0 0
可以发现sda3这个分区的写数据非常的频繁,我与另外一台从数据库服务器对比发现,这个数据库服务器明显比另外一个数据库服务器的写操作要频繁的多.
# /usr/local/tools/bin/sar -u 3 5
Linux 2.6.16.60-0.21-bigsmp (linux-1kio)09/22/09_i686_ (4 CPU)
17:36:03 CPU %user %nice %system %iowait %steal %idle
17:36:06all 25.04 0.00 0.25 2.66 0.00 72.05
17:36:09all 23.25 0.00 0.17 1.75 0.00 74.83
17:36:12all 23.48 0.00 0.00 2.25 0.00 74.27
17:36:15all 23.58 0.00 0.08 1.92 0.00 74.42
17:36:18all 23.52 0.00 0.00 2.25 0.00 74.23
Average:all 23.78 0.00 0.10 2.17 0.00 73.96
从上面数据发现iowait这个数据也是有些高的,iowait是io等待所占用cpu时间的百分比.
# /usr/local/tools/bin/sar -d 3 5
DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
dev8-0 23.59 0.00 621.93 26.37 0.21 8.79 8.34 19.67
DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
dev8-0 14.000.00 197.3314.10 0.14 9.71 8.76 12.27
DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
dev8-0 21.670.00253.33 11.69 0.11 4.49 4.86 10.53
正常状态svctm应该小于await的,从上面数据可以看到有时都已经超过了,或者基本快接近了,说明磁盘的读写很频繁导致IO已经不太正常了.
以上是一部分检测磁盘IO、磁盘读写速度的一些检测手段,希望可以帮助到大家.
【编辑推荐】