原文:http://www.weiruoyu.cn/?p=507


自己平常经常接触系统维护方面的东西,一直都在用这些命令检查系统性能瓶颈,本来想再总结一下,看了下这方面文章也太多,不写了,直接mark过来。


一、影响Linux服务器性能的因素

1. 操作系统级

  • CPU

  • 内存

  • 磁盘I/O带宽

  • 网络I/O带宽

    2. 程序应用级

    二、系统性能评估标准

    影响性能因素

    影响性能因素评判标准
    糟糕
    CPUuser% + sys%< 70%user% + sys%= 85%user% + sys% >=90%
    内存Swap In(si)=0

    Swap Out(so)=0

    Per CPU with 10 page/sMore 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.常用组合方式

    o 用vmstat、sar、iostat检测是否是CPU瓶颈

    o 用free、vmstat检测是否是内存瓶颈

    o 用iostat检测是否是磁盘I/O瓶颈

    o 用netstat检测是否是网络带宽瓶颈

    四、Linux性能评估与优化

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

    [root@server ~]# 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命令在某个系统的输出结果:


  • 更详细的请参考:http://www.weiruoyu.cn/?p=507