查看Linux服务器CPU使用情况

查看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

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