查看Linux服务器CPU使用情况

查看CPU使用率是系统管理的最常见的任务之一,Linux系统提供了多种方法来完成这个任务。


1、top命令


首先是使用top命令,直接运行:top

top显示出来的的内容分为两部分,两部分都是定时刷新的,上半部分内容如下:

top - 15:17:51 up 16:57,  2 users,  load average: 0.03, 0.01, 0.00
Tasks:  98 total,   1 running,  97 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1563088k total,   184172k used,  1378916k free,    16776k buffers
Swap:  3145720k total,        0k used,  3145720k free,   100776k cached

可以很方便的了解一些常规信息,如服务器当前时间——突然我发现系统时间不正确,于是我用date -s "2013-4-14 16:20:15" 修改正确。

top的结果里面还包括:服务器上线时间(up 16:57,接近17个小时),有两个用户登录,平均负载情况等。

其它信息大家自己领悟,我们主要是看到Cpu(s)0.2%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st 这段,us表示用户使用0.2%,sy表示系统使用,id表示空余的cpu,其它的几项相对用得比较少。

2、vmstat


直接运行vmstat

[root@localhost ~]# vmstat
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 1378428  17104 100780    0    0     1     1    4    5  0  0 100  0  0

解释一下这些参数:

r表示运行队列的大小,
b表示由于IO等待而block的线程数量,
in表示中断的数量,
cs表示上下文切换的数量,
us表示用户CPU时间,
sys表示系统CPU时间,
wa表示由于IO等待而是CPU处于idle状态的时间,
id表示CPU处于idle状态的总时间。

这样子就比较方便对号入座去分析了。


关于CPU率的分布,牛人们是这样说的:如果CPU在满负荷运行,应该符合下列分布,
a) User Time:65%~70%
b) System Time:30%~35%
c) Idle:0%~5%


3、dstat


[root@localhost ~]# dstat
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
 0   0 100   0   0   0|1314B 1531B|   0     0 |   0     0 |   7     8
 0   1  99   0   0   0|   0     0 |  60B  826B|   0     0 |  14    15
 0   0 100   0   0   0|   0   116k|  60B  346B|   0     0 |  23    24
 1   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  16    15
 0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  19    21

这个命令可以每秒刷新一次地显示结果。


你可能感兴趣的