微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LINUX查看CPU使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控cpu性能一般包括以下3点:运行队列、cpu使用率和上下文切换。

对于每一个cpu来说运行队列最好不要超过3,例如,如果是双核cpu就不要超过6。如果队列长期保持在3以上,说明任何一个进程运行时都不能马上得到cpu的响应,这时可能需要考虑升级cpu。另外满负荷运行cpu的使用率最好是user空间保持在65%~70%,system空间保持在30%,空闲保持在0%~5% 。

下面总结下查看cpu使用率常用的几个命令。

1、top

这个命令很常用,在第三行有显示cpu当前的使用情况。

[root@li676-235 ~]# top -bn 1i c
top  14:1951 up 138 days,715 user load average:0.200.330.39
Tasks115 total running114 sleeping0 stopped zombie
cpu(s):4.5%us3.8sy0.0ni91.0id0.6wahisist
Mem1014660k880512k used134148k free264904k buffers
Swap262140k34788k227352k217144k cached
PID USER PR NI VIRT RES SHR S cpu MEM TIME+ COMMAND 
12760 root 201508419441632 R 2.00.2000.01c

如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。

%us:表示用户空间程序的cpu使用率(没有通过nice调度)

%sy:表示系统空间的cpu使用率,主要是内核程序。

%ni:表示用户空间且通过nice调度过的程序的cpu使用率。

%id:空闲cpu

%wa:cpu运行时在等待io的时间

%hi:cpu处理硬中断的数量

%si:cpu处理软中断的数量

%st:被虚拟机偷走的cpu

2、vmstat

之前在本博客中有介绍过vmstat的使用,详细使用和参数介绍参考网址:http://www.sijitao.net/1925.html 。

 vmstat 5
procs -----------memory-------------swap-------io----systemcpu
 r b swpd free buff cache si so bi bo in cs us sy id wa st
 2347926837614768835613216421385491
 39736832688413313415679624321476963607048826727863181997160326904718212845657236454026124661230

3、sar

sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。

cpu使用率

例如每1秒采集一次cpu使用率,共采集5次。

 sar u Linux3.18.5x86_64linode52 li676235)07/202015 _x86_64_ ( cpu
024125 PM cpu user nice system iowait steal idle
26 PM all 64.710.0018.630.9815.692729.4722.1114.7433.682867.3331.680.99297.002.0091.003069.0023.008.00Average all 47.7919.483.010.2029.52

和top一样,可以看到所有cpu的使用情况。如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu 的使用情况。

P 4514 PM 44.0052.004.009.2826.8062.891.03173.0614.2981.631.024.1222.6872.1613.0927.8158.280.820.00

进程队列长度和平均负载状态

例如每1秒采集一次,共采集5次。

q 4847 PM runqsz plistsz ldavg ldavg480.340.430.4149132500.310.420.40520.330.41

输出项:

runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(System load average)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载

进程创建的平均值和上下文切换的次数

例如每1秒收集一次,共收集5次。

w  
5403 PM proc/s cswchs
041.01156.57051.00132.0006201.00072.02126.2608114.001.61145.98

sar命令也可以获取过去指定日期的性能参数。

u f /varlogsasa20 
0110010225.788.883.590.1561.603026.069.963.330.1060.554025.739.173.700.0961.325025.709.502.790.1261.890026.709.732.2061.2826.169.564.340.1159.8225.499.612.760.0762.0726.479.940.640.3062.6527.3210.373.8658.3026.9810.384.560.1357.9526.249.713.1860.74

4、mpstat

这个命令也在sysstat包中,语法类似。

例如每1秒收集一次,共5次。

 mpstat 03usr sys irq soft guest 52.5323.2324.2421.0075.002153.0018.0029.002226.003.0071.0046.0036.0039.6813.2347.09

cpu使用情况比sar更加详细些,也可以用-P指定某颗cpu

5、iostat

这个命令主要用来查看io使用情况,也可以来查看cpu,个人感觉不常用。

 iostat c 
avgidle
 4.530.013.810.630.0490.9938.0014.0048.00

6、dstat

每秒cpu使用率情况获取

 dstat c
totalusage
usr sys idl wai hiq siq
 1162371013720

最占cpu的进程获取

topcpu
mostexpensive
 cpu process 
MysqLd 1.5
PHPfpm pool 24
MysqLd 59

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐