日期:2014-05-16  浏览次数:20821 次

Linux服务器性能评估与优化-zt
原文地址:http://www.itlearner.com/article/4553


一、影响Linux服务器性能的因素
1. 操作系统级

?       CPU
?       内存
?       磁盘I/O带宽
?       网络I/O带宽

2.        程序应用级

二、系统性能评估标准
影响性能因素
评判标准


糟糕
CPU
user% + sys%< 70%
user% + sys%= 85%
user% + sys% >=90%
内存
Swap In(si)=0
Swap Out(so)=0
Per CPU with 10 page/s
More Swap In & Swap Out
磁盘
iowait % < 20%
iowait % =35%
iowait % >= 50%


其中:
       %user:表示CPU处在用户模式下的时间百分比。
       %sys:表示CPU处在系统模式下的时间百分比。
       %iowait:表示CPU等待输入输出完成时间的百分比。
       swap in:即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM
       swap out:即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。

三、系统性能分析工具

1.常用系统命令
Vmstat、sar、iostat、netstat、free、ps、top等

2.常用组合方式
?           用vmstat、sar、iostat检测是否是CPU瓶颈
?           用free、vmstat检测是否是内存瓶颈
?           用iostat检测是否是磁盘I/O瓶颈
?           用netstat检测是否是网络带宽瓶颈

四、Linux性能评估与优化

1. 系统整体性能评估(uptime命令)

[root@web1 ~]# uptime
16:38:00 up 118 days,  3:01,  5 users,  load average: 1.22, 1.02, 0.91
这里需要注意的是:load average这个输出值,这三个值的大小一般不能大于系统CPU的个数,例如,本输出中系统有8个CPU,如果load average的三个值长期大于8时,说明CPU很繁忙,负载很高,可能会影响系统性能,但是偶尔大于8时,倒不用担心,一般不会影响系统性能。相反,如果load average的输出值小于CPU的个数,则表示CPU还有空闲的时间片,比如本例中的输出,CPU是非常空闲的。

2. CPU性能评估

(1)利用vmstat命令监控系统CPU
   该命令可以显示关于系统各种资源之间相关性能的简要信息,这里我们主要用它来看CPU一个负载情况。
   下面是vmstat命令在某个系统的输出结果:

[root@node1 ~]# vmstat 2 3
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    162240   8304  67032   0    0    13    21   1007   23     0  1   98   0   0
0  0    0    162240   8304  67032   0    0     1     0     1010   20     0  1   100 0   0
0  0    0    162240   8304  67032   0    0     1     1     1009   18     0  1    99  0   0
l        Procs
     r列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU。
     b列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
l        Cpu
    us列显示了用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。
     sy列显示了内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。
    根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足。

(2)利用sar命令监控系统CPU

sar功能很强大,可以对系统的每个方