在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控cpu的性能一般包括以下3点:运行队列、cpu使用率和上下文切换。
对于每一个cpu来说运行队列最好不要超过3,例如,如果是双核cpu就不要超过6。如果队列长期保持在3以上,说明任何一个进程运行时都不能马上得到cpu的响应,这时可能需要考虑升级cpu。另外满负荷运行cpu的使用率最好是user空间保持在65%~70%,system空间保持在30%,空闲保持在0%~5% 。
下面总结下查看cpu使用率常用的几个命令。
1、top
[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调度)
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
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
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
dstat c totalusage usr sys idl wai hiq siq 1162371013720
topcpu mostexpensive cpu process MysqLd 1.5 PHPfpm pool 24 MysqLd 59
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。