vmstat参数:

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache     si   so    bi    bo   in    cs us sy id wa
 0  1    208 1685712 213052 3883248    0    0     8     7    0     0  1  1 88 10
 0  2    208 1685808 213056 3883244    0    0     4  2288 1480   209  0  0 68 32
 0  0    208 1685808 213060 3883240    0    0     4  2984 1515   173  0  0 76 24
 0  0    208 1685888 213068 3883232    0    0     0    24 1222   138  0  0 99  0
 0  0    208 1685952 213068 3883232    0    0     0     0 1079    90  0  0 100  0
 0  0    208 1686032 213068 3883232    0    0     0     0 1078    77  0  0 100  0
 0  0    208 1686032 213068 3883232    0    0     0   896 1077    58  0  0 99  1
-r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
-us 列显示了用户方式下所花费CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
-sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
-wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
-swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
-bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
-bo 块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载         -in 每秒产生的中断次数                                                                 -cs  每秒产生的上下文切换次数这两个值越大,内核消耗cpu时间越大                         -id cpu处于空闲时间百分比
需要关注的:
-r 运行的进程比较多,系统繁忙
-bo 磁盘写的数据量大
-us 持续大于50,服务器高峰可以接受
-wa IO等待,持续大于30,说明IO等待严重
-id 持续小于50,服务器高峰可以接受
 
OK,现在来看实际的:(实际负载并不高,只是模拟一个解决问题的思路)
负载状况如下:
16:29:17 up 426 days,  2:00,  2 users,  load average: 3.91, 4.25, 3.34
一.先通过vmstat看看状态:
[root@MySQL01 ~]# vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache     si   so    bi    bo   in    cs us sy id wa
 0  0    208 1358752 209432 4158048    0    0     8    11    0     0  1  1 88 10
 0  1    208 1358432 209432 4158568    0    0    70     0 3071  1789  2  1 95  2
 0 13    208 1356256 209448 4159852    0    0   206  1326 8272  5011  6  3 74 17
 0  0    208 1352568 209504 4162136    0    0   202  2582 10151  5467  7  4 37 52
 0  0    208 1350904 209508 4163952    0    0   194     0 10420  6080  8  3 81  8
 0  2    208 1350520 209508 4163952    0    0    20  2666 3571   644  1  0 75 24
 1  0    208 1349944 209516 4164724    0    0    90  4704 4011  1008  3  2 73 23
 0  2    208 1349752 209524 4164976    0    0    84  1798 5209  2341  2  1 72 24
 0  0    208 1348920 209532 4166268    0    0    78  1148 4026  2031  2  2 75 22
 0  0    208 1348664 209532 4166528    0    0    50     0 4474  2269  2  1 95  2
从以上的解释看:
1.cpu没问题(r,us,us+sy,id)
2.内存没问题,swpd没变化,si、so的值长期为0
3.硬盘的写操作比较频繁,wa值也偏大
 
二:在通过iostat看观察磁盘状况
[root@MySQL01 ~]# iostat -x 1 5
Linux 2.6.9-55.ELsmp (MySQL01)  10/26/2010
avg-cpu:  %user   %nice    %sys %iowait   %idle
           1.34    0.00    0.82   10.03   87.82
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0   0.00 124.31  8.06 104.80   64.49   86.39    32.24    43.19     1.34     0.10    0.90   0.12   1.35
avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.00    0.00    0.00   17.29   82.71
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0   0.00 490.00  0.00 208.00    0.00 12432.00     0.00  6216.00    59.77   646.27  384.62   3.25  67.70
avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.00    0.00    0.25   48.88   50.87
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0   0.00   3.00  0.00 497.00    0.00   32.00     0.00    16.00     0.06   568.50 1112.20   2.01 100.10
avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.00    0.00    0.00   44.00   56.00
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0   0.00  35.00  0.00 351.00    0.00 1232.00     0.00   616.00     3.51   179.49 2159.48   2.84  99.70
avg-cpu:  %user   %nice    %sys %iowait   %idle
           0.25    0.00    0.50   24.63   74.63
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0   0.00 284.00  0.00 546.00    0.00 6616.00     0.00  3308.00    12.12   113.78  200.10   1.83 100.10
rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度。即delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
 
如果 %util 接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
可能存在瓶颈。
idle小于70% IO压力就较大了,一般读取速度有较多的wait.
从上面的参数解释看,
1.%util值偏大,有的还达到了100%
2.%idle值随大部分大于70%,但是也在边缘
 
 
三:用sar命令看看系统信息
[root@MySQL01 ~]# sar 1 10
Linux 2.6.9-55.ELsmp (MySQL01)  10/27/2010
 
10:38:37 AM       CPU     %user     %nice   %system   %iowait     %idle
10:38:38 AM       all      9.95      0.00      5.47     19.65     64.93
10:38:39 AM       all      0.00      0.00      0.00     75.00     25.00
10:38:40 AM       all      0.00      0.00      0.00     62.00     38.00
10:38:41 AM       all      7.27      0.00      4.01     14.54     74.19
10:38:42 AM       all      1.75      0.00      0.75      2.49     95.01
10:38:43 AM       all      1.50      0.00      1.00      2.24     95.26
10:38:44 AM       all      0.00      0.00      0.25     40.75     59.00
10:38:45 AM       all      0.00      0.00      0.25     24.75     75.00
10:38:46 AM       all      0.25      0.00      0.25     46.00     53.50
10:38:47 AM       all      0.00      0.00      0.25     24.94     74.81
明显看到还是iowait过高,导致cpu使用别偏大
四:用top命令看看谁最活跃:
[root@p_w_picpaths ~]# top -d 1
top - 16:33:36 up 426 days,  2:04,  2 users,  load average: 1.49, 2.72, 2.92
Tasks:  79 total,   1 running,  78 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.2% us,  1.8% sy,  0.0% ni, 93.0% id,  3.0% wa,  0.0% hi,  0.0% si
Mem:   8309904k total,  6387968k used,  1921936k free,   286384k buffers
Swap:  2048248k total,      208k used,  2048040k free,  3555376k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                               
25912 squid     15   0 1991m 1.9g 1584 S   16 23.8   7404:15 squid                                                                 
    1 root      16   0  2612  548  468 S    0  0.0   0:01.51 init                                                                  
    2 root      RT   0     0    0    0 S    0  0.0   0:03.06 migration/0                                                           
    3 root      34  19     0    0    0 S    0  0.0   0:11.10 ksoftirqd/0  
 
从结果看:是squid对硬盘的读写太频繁导致,确实这台机器上跑了一台squid,压力也不小
至此,一个问题的分析就结束了,大概是个思路罢了
 
 
查看CPU使用率:
[root@test187 tmp]# mpstat -P ALL
Linux 2.6.9-42.ELsmp (test187)  05/17/2011
 
03:20:01 PM  CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
03:20:01 PM  all    0.00    0.00    0.03    0.00    0.02    0.00   99.94   1021.12
03:20:01 PM    0    0.00    0.00    0.03    0.00    0.02    0.00   99.94    510.85
03:20:01 PM    1    0.00    0.00    0.03    0.00    0.01    0.00   99.98    510.27
[root@test187 tmp]# mpstat 2 5
Linux 2.6.9-42.ELsmp (test187)  05/17/2011
 
03:20:07 PM  CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
03:20:09 PM  all    0.00    0.00    0.00    0.00    0.00    0.00  100.00   1025.76
03:20:11 PM  all    0.00    0.00    0.00    0.00    0.00    0.00  100.00   1021.11
03:20:13 PM  all    0.00    0.00    0.00    0.00    0.00    0.00  100.00   1025.25
03:20:15 PM  all    0.00    0.00    0.25    0.00    0.00    0.00   99.75   1029.95
03:20:17 PM  all    0.00    0.00    0.00    0.00    0.00    0.00  100.00   1032.99
Average:     all    0.00    0.00    0.05    0.00    0.00    0.00   99.95   1027.00