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

Linux服务器维护监控相关

一. Linux服务器的性能指标

1. CPU
1.1 CPU状态
在任意时间内,CPU有7个状态:
1.idle,表示CPU闲置并等待工作分配.
2.user,表示CPU在运行用户的进程
3.system,表示CPU在执行kernel工作
4.nice,表示CPU花费在被nice改变过优先级的process上的时间(注意:被nice命令改变优先级的process仅指那些nice值为负的process.花费在被nice命令改变优先级的任务上的时间也将被计算在系统和用户时间内,因此整个时间加起来可能会超过百分之百)
5.iowait,表示CPU等待IO操作完成的时间
6.irq,表示CPU开销在响应硬中断上的时间
7.softirq,表示CPU开销在响应软中断上的时间.
我们一般用vmstat看到的都是四个状态:sy,us,id,wa,通过他和load avg结合,基本可以知道cpu的状态
大部分的性能工具用百分比表示CPU时间.当system时间占用很高的时候,你可以用oprofile工具发现时间都花费在哪里.当iowait很高的时候,你需要分析你的IO设备,比如磁盘,网卡.


1.2 Average load
Load Average表示cpu正在处理以及等待cpu处理的进程数之和的统计信息,也就是cpu使用队列长度的统计信息。
满负载:即CPU Load = CPU个数*核数。一般要保证性能良好,负载最好小于0.7*CPU个数*核数。
例如:2个4核的cpu, Load Average须
< 0.7 * 2 * 4 = 5.6

常用命令:

1. 查看cpu信息:grep ‘model name’ /proc/cpuinfo

2. top命令应该是把每个核的CPU占用率加起来,算一个和,于是多核情况下会top命令会计算出超过100%。load average显示的三个数字的时间分别为1分钟,五分钟和十五分钟。

3. vmstat也可以查看

?

[admin@v015210 ~]$ 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 155752  61976 179580 309232    0    1     2    11    0    0  1  0 99  0  0
 1  0 155752  61968 179580 309240    0    0     0     0  436 3597  0  0 100  0  0
 0  0 155752  61612 179580 309240    0    0     0     0  508 3535  1  2 97  0  0
?

其中,r,b是指处于runnable,blocked的process。所有的runnable process形成了一个Run Queue,等待Linux调度线程的调度。系统的load是指running和runnable process的总和。

?

1.3 Interrupts & Context Switches

Interrupts对应vmstat中的in,即被处理过的中断数。在系统中,中断处理器的优先级非常高,而且执行速度非常快.很多时候,有些中断处理并不需要很高的处理优先级,所以也有soft- interrupt handler.如果有很多的中断,kernel需要花费大量的时间去处理中断.可以检查/proc/interrupts能够知道中断发生在哪个CPU 上.

Context Switches对于vmstat中的cs,即系统上正在做上下文切换的数目。 linux内核不断的在不同process间切换,造成一个错觉,让人感觉一个单CPU同时处理多个任务.不同process之间的切换称作 Context Switch.当系统做Context Switch时,CPU保存所有old process的context信息并获得new process的所有context信息.Context信息包括大量的linux追踪每个process信息,尤其是一些资源:那些process正在 执行,被分配了哪些内存,它打开了那些文件,等等.切换Context会触发大量的信息移动,这是比较高的开销.如果可能的话尽量保持很小的 context switches.?

?

2. 内存

1. 1 内存基础

通常包含物理内存和虚拟内存(virtual Memory),好处是通过物理内存(RAM)和部分硬盘空间(SWAP)组合增大了总体的内存空间,坏处是由于硬盘部分的虚拟内存的性能有限,并且RAM和SWAP之间交换增加了系统的负担。

?

[phoenix.lif@aliadmin036158 ~]$ free
             total       used       free     shared    buffers     cached
Mem:       7680000    7504764     175236          0     490772    3193856
-/+ buffers/cache:    3820136    3859864
Swap:      2096472         88    2096384

其中,Mem: ?

(1) Total为总的物理内存;(2) Used表示总计分配给缓存使用的数量(即buffers和cache,但可能部分还未实际使用);(3)Free表示未被分配的内存;(4)share表示共享内存,一般不会使用;(5)buffers:表示系统分配但未被使用的b