公号:软测小生(ruancexiaosheng)
前一段时间,有人问我,Linux下如何查看CPU以及内存的使用率和详细情况?两眼一抹黑,没实际去操作过,不知道命令;今天抽时间学习一下。
就说在自动化测试中吧也需要经常查看CPU的使用率,最常见的是在做性能测试以及服务器测试的时候,需要分析整体运行情况,给出测试报告;Windows%20Server的查看当然简单咯,打开任务管理器,还自动绘制出折线图,很直观。
今天就来好好学习下Linux下如何查看CUP的使用率:
监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。
对于每一个CPU来说运行队列最好不要超过3,例如,如果是双核CPU就不要超过6。如果队列长期保持在3以上,说明任何一个进程运行时都不能马上得到cpu的响应,这时可能需要考虑升级cpu。另外满负荷运行cpu的使用率最好是user空间保持在65%~70%,system空间保持在30%,空闲保持在0%~5%%20。
下面总结下查看CPU使用率常用的几个命令。
1、top
这个命令很常用,在第三行有显示CPU当前的使用情况。
#%20top%20-bn%201%20%20-i%20-c</pre>
image
如上所示,top命令可以看到总体的系统运行状态和cpu的使用率%20。
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu
如果只输入top的话是实时动态的:
image
2、vmstat
之前在本博客中有介绍过vmstat的使用linux命令,详细使用和参数介绍参考网址:
#%20vmstat%201%20%205</pre>
image
image
3、sar
sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。
CPU使用率
例如每1秒采集一次CPU使用率,共采集5次。(我的机器上没装sysstat,并且刚刚装的时候遇到点问题,晚上在花时间敲一遍命令)
image
[root@Peter%20~]#%20sar%20-u%201%205
Linux%203.18.5-x86_64-linode52%20(Peter)%2007/20/2015%20x86_64%20(1%20CPU)
02:41:25%20PM%20CPU%20%user%20%nice%20%system%20%iowait%20%steal%20%idle
02:41:26%20PM%20all%2064.71%200.00%2018.63%200.00%200.98%2015.69
02:41:27%20PM%20all%2029.47%200.00%2022.11%2014.74%200.00%2033.68
02:41:28%20PM%20all%2067.33%200.00%2031.68%200.99%200.00%200.00
02:41:29%20PM%20all%207.00%200.00%202.00%200.00%200.00%2091.00
02:41:30%20PM%20all%2069.00%200.00%2023.00%200.00%200.00%208.00
Average:%20all%2047.79%200.00%2019.48%203.01%200.20%2029.52
和top一样,可以看到所有cpu的使用情况。如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu%20的使用情况。
[root@Peter%20~]#%20sar%20-P%200%20-u%201%205
Linux%203.18.5-x86_64-linode52%20(Peter)%2007/20/2015%20x86_64%20(1%20CPU)