注意:
- load average三值大小一般不能大于系统CPU的个数 。
系统有8个CPU,如load average三值长期大于8,说明CPU很繁忙,负载很高,可能会影响系统性能 。
- 但偶尔大于8,一般不会影响系统性能 。
- 如load average输出值小于CPU个数,则表示CPU有空闲时间片,比如本例中的输出,CPU是非常空闲的
下面是vmstat命令在某个系统的输出结果:
[root@node1 ~]#vmstat 2 3procs ———–memory———- —swap– —–io—- –system– —–cpu——r b swpd freebuff cache si so bi bo incs us sy idwa st0 0 0 162240 8304 67032 0 0 13 21 1007 23 0 1 98 0 00 0 0 162240 8304 67032 0 0 1 0 1010 20 0 1 100 0 00 0 0 162240 8304 67032 0 0 1 1 1009 18 0 1 99 0 0Procsr--运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU
b--在等待资源的进程数,比如正在等待I/O、或者内存交换等 。
CPU
us
用户进程消耗的CPU 时间百分比 。
us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法 。
sy
内核进程消耗的CPU时间百分比 。Sy的值较高时,说明内核消耗的CPU资源很多 。
根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足 。
2.利用sar命令监控系统CPUsar对系统每方面进行单独统计,但会增加系统开销,不过开销可以评估,对系统的统计结果不会有很大影响 。
下面是sar命令对某个系统的CPU统计输出:
[root@webserver ~]# sar -u 3 5Linux 2.6.9-42.ELsmp (webserver) 11/28/2008_i686_ (8 CPU)11:41:24 AM CPU %user %nice%system %iowait %steal %idle11:41:27 AM all 0.88 0.00 0.29 0.00 0.00 98.8311:41:30 AM all 0.13 0.00 0.17 0.21 0.00 99.5011:41:33 AM all 0.04 0.00 0.04 0.00 0.00 99.9211:41:36 AM all 90.08 0.00 0.13 0.16 0.00 9.6311:41:39 AM all 0.38 0.00 0.17 0.04 0.00 99.41Average: all 0.34 0.00 0.16 0.05 0.00 99.45输出解释如下:
%user列显示了用户进程消耗的CPU 时间百分比 。%nice列显示了运行正常进程所消耗的CPU 时间百分比 。%system列显示了系统进程消耗的CPU时间百分比 。%iowait列显示了IO等待所占用的CPU时间百分比%steal列显示了在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作。%idle列显示了CPU处在空闲状态的时间百分比 。问题你是否遇到过系统CPU整体利用率不高,而应用缓慢的现象?
在一个多CPU的系统中,如果程序使用了单线程,会出现这么一个现象,CPU的整体使用率不高,但是系统应用却响应缓慢,这可能是由于程序使用单线程的原因,单线程只使用一个CPU,导致这个CPU占用率为100%,无法处理其它请求,而其它的CPU却闲置,这就导致了整体CPU使用率不高,而应用缓慢现象的发生 。2.3.1 内存性能评估1.利用free指令监控内存free是监控Linux内存使用状况最常用的指令,看下面的一个输出:
[root@webserver ~]# free -mtotal used freeshared buffers cachedMem: 8111 7185 926 0 243 6299 -/+ buffers/cache: 643 7468Swap: 8189 0 8189经验公式:
应用程序可用内存/系统物理内存>70%,表示系统内存资源非常充足,不影响系统性能;应用程序可用内存/系统物理内存<20%,表示系统内存资源紧缺,需要增加系统内存;20%<应用程序可用内存/系统物理内存<70%,表示系统内存资源基本能满足应用需求,暂时不影响系统性能2.利用vmstat命令监控内存[root@node1 ~]# vmstat 2 3procs ———–memory———- —swap– —–io—- –system– —–cpu——r b swpd freebuff cache si so bi bo incs us sy idwa st0 0 0 162240 8304 67032 0 0 13 21 1007 23 0 1 98 0 00 0 0 162240 8304 67032 0 0 1 0 1010 20 0 1 100 0 00 0 0 162240 8304 67032 0 0 1 1 1009 18 0 1 99 0 0memory
swpd--切换到内存交换区的内存数量(k为单位) 。如swpd值偶尔非0,不影响系统性能free--当前空闲的物理内存数量(k为单位)buff--buffers cache的内存数量,一般对块设备的读写才需要缓冲cache--page cached的内存数量
一般作为文件系统cached,频繁访问的文件都会被cached,如cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好 。swap
si--由磁盘调入内存,也就是内存进入内存交换区的数量 。so--由内存调入磁盘,也就是内存交换区进入内存的数量 。
推荐阅读
- Linux dd命令有多强大?
- Linux的/etc/init.d详解
- Linux和UNIX的到底有关系及区别?
- 服务器的1U、2U是什么意思?42U机柜可以放多少台服务器?
- Linux 提权—突破受限制的shell权限
- ssh免密登录在Linux服务器之间的设置
- Nginx服务器的六种负载均衡策略详解
- 一文教您如何实现持续集成服务器环境搭建
- Linux诊断机器故障工具—dmesg命令
- 如何提高Web服务器安全性