设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

老牌运维教你如何快速分析Linux服务器的性能问题(2)

发布时间:2019-09-29 12:54 所属栏目:21 来源:互联网蚂蚁哥
导读:对上面每项的输出解释如下: %user列显示了用户进程消耗的CPU时间百分比。 %nice列显示了运行正常进程所消耗的CPU时间百分比。 %system列显示了系统进程消耗的CPU时间百分比。 %iowait列显示了IO等待所占用的CPU时

对上面每项的输出解释如下:

  1.  %user列显示了用户进程消耗的CPU 时间百分比。 
  2.  
  3.  %nice列显示了运行正常进程所消耗的CPU 时间百分比。 
  4.  
  5.  %system列显示了系统进程消耗的CPU时间百分比。 
  6.  
  7.  %iowait列显示了IO等待所占用的CPU时间百分比 
  8.  
  9.  %steal列显示了在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作 。 
  10.  
  11.  %idle列显示了CPU处在空闲状态的时间百分比。 

这个输出是对系统整体CPU使用状况的统计,每项的输出都非常直观,并且最后一行Average是个汇总行,是上面统计信息的一个平均值。

需要注意的一点是:第一行的统计信息中包含了sar本身的统计消耗,所以%user列的值会偏高一点,不过,这不会对统计结果产生多大影响。

在一个多CPU的系统中,如果程序使用了单线程,会出现这么一个现象,CPU的整体使用率不高,但是系统应用却响应缓慢,这可能是由于程序使用单线程的原因,单线程只使用一个CPU,导致这个CPU占用率为100%,无法处理其它请求,而其它的CPU却闲置,这就导致 了整体CPU使用率不高,而应用缓慢 现象的发生 。

针对这个问题,可以对系统的每个CPU分开查询,统计每个CPU的使用情况:

  1. [root@webserver ~]# sar -P 0 3 5 
  2. Linux 2.6.9-42.ELsmp (webserver) 11/29/2008 _i686_ (8 CPU) 
  3.     06:29:33 PM CPU %user %nice %system %iowait %steal %idle 
  4. 06:29:36 PM 0 3.00 0.00 0.33 0.00 0.00 96.67 
  5. 06:29:39 PM 0 0.67 0.00 0.33 0.00 0.00 99.00 
  6. 06:29:42 PM 0 0.00 0.00 0.33 0.00 0.00 99.67 
  7. 06:29:45 PM 0 0.67 0.00 0.33 0.00 0.00 99.00 
  8. 06:29:48 PM 0 1.00 0.00 0.33 0.33 0.00 98.34 
  9. Average: 0 1.07 0.00 0.33 0.07 0.00 98.53 

这个输出是对系统的第一颗CPU的信息统计,需要注意的是,sar中对CPU的计数是从0开始的,因此,“sar -P 0 3 5”表示对系统的第一颗CPU进行信息统计,“sar -P 4 3 5”则表示对系统的第五颗CPU进行统计。依次类推。可以看出,上面的系统有八颗CPU。

1.3 iostat命令

iostat指令主要用于统计磁盘IO状态,但是也能查看CPU的使用信息,它的局限性是只能显示系统所有CPU的平均信息,看下面的一个输出:

  1. [root@webserver ~]# iostat -c 
  2. Linux 2.6.9-42.ELsmp (webserver) 11/29/2008 _i686_ (8 CPU) 
  3.     avg-cpu: %user %nice %system %iowait %steal %idle 
  4.  2.52 0.00 0.30 0.24 0.00 96.96 

在这里,我们使用了“-c”参数,只显示系统CPU的统计信息,输出中每项代表的含义与sar命令的输出项完全相同,不再详述。

1.4 uptime命令

uptime是监控系统性能最常用的一个命令,主要用来统计系统当前的运行状况,输出的信息依次为:系统现在的时间、系统从上次开机到现在运行了多长时间、系统目前有多少登陆用户、系统在一分钟内、五分钟内、十五分钟内的平均负载。看下面的一个输出:

  1. [root@webserver ~]# uptime 
  2.  18:52:11 up 27 days, 19:44, 2 users, load average: 0.12, 0.08, 0.08 

这里需要注意的是load average这个输出值,这三个值的大小一般不能大于系统CPU的个数,例如,本输出中系统有8个CPU,如果load average的三个值长期大于8时,说明CPU很繁忙,负载很高,可能会影响系统性能,但是偶尔大于8时,倒不用担心,一般不会影响系统性能。相反,如果load average的输出值小于CPU的个数,则表示CPU还有空闲的时间片,比如本例中的输出,CPU是非常空闲的。

1.5 本节小结

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读