今天,总结一下linux操作系统调优的一点心得:
1、top
如果通过top (按P根据cpu降序排列,按M根据内存降序排列)查看平均负载很高,但cpu空闲却很高,可是系统却很慢,按数字1发现单个cpu使用非常高。然后接着看top里面的进程,状态为D的是不可中断的睡眠状态 就是处于锁状态下,状态为
z的是僵尸进程,这两种进程很有可能是导致平均负载高的罪魁祸首。
2、vmstat
[root@node1 rman_backup]# 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 1938216 55616 45668 659332 0 0 318 45 1 2 1 1 98 1 0
调优我喜欢用的命令就是vmstat,因为通过它可以看内存和cpu的使用情况。
一般关注以下两列就行:
查看swap列,如果si,so列值不为0,说明内存不够用了(有些朋友看到空闲内存(FREE)很少的或接近于0时,就认为内存不够用了,实际上不能光看这一点,还要结合si,so,如果free很少,但是si,so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的)。
在cpu列中,wa表示I/O等待消耗的CPU时间百分比。wa的值高时(超过30%),说明I/O等待比较严重,这可能由于磁盘大量做随机访问造成,也有可能磁盘出现瓶颈(块操作),即可能是sql的问题。
3、iostat
[root@node1 rman_backup]# iostat -x 2 3
Linux 2.6.18-194.el5 (node1.localdomain) 01/22/2015
avg-cpu: %user %nice %system %iowait %steal %idle
0.84 0.05 0.52 0.87 0.00 97.73
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.14 6.80 0.28 4.53 6.17 90.60 20.15 0.12 24.73 1.08 0.52
sda1 0.02 6.57 0.23 4.51 4.86 88.67 19.72 0.05 10.27 0.91 0.43
sda2 0.12 0.22 0.04 0.02 1.31 1.93 53.77 0.07 1162.37 38.64 0.23
通过iostat,关注%util和%idle的值就行。
如果看到 %util高到百分之八九十,%idle小于70%,那么说明这块磁盘很忙。然后再用top看一下,如果wait高,平均负载也高,那么很明显就是CPU等待数据处理 ,瓶颈应该是在硬盘上。
4、转一个“浅谈Linux内存管理机制”的文章:http://os.51cto.com/art/201309/411937.htm
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28916011/viewspace-1411423/
,如需转载,请注明出处,否则将追究法律责任。