【linux】分析CPU使用率命令

在linux的系統(tǒng)維護中,可能需要經(jīng)常查看cpu使用率,分析系統(tǒng)整體的運行情況。而監(jiān)控CPU的性能一般包括以下3點:運行隊列、CPU使用率和上下文切換。

對于每一個CPU來說運行隊列最好不要超過3,例如,如果是雙核CPU就不要超過6。如果隊列長期保持在3以上,說明任何一個進程運行時都不能馬上得到cpu的響應,這時可能需要考慮升級cpu。另外滿負荷運行cpu的使用率最好是user空間保持在65%~70%,system空間保持在30%,空閑保持在0%~5% 。

下面總結(jié)下查看CPU使用率常用的幾個命令。

1、top

這個命令很常用,在第三行有顯示CPU當前的使用情況。

[root@li676-235~]#top-bn1-i-c

top-14:19:51up138days,7:15,1user,load average:0.20,0.33,0.39Tasks:115total,1running,114sleeping,0stopped,0zombieCpu(s):4.5%us,3.8%sy,0.0%ni,91.0%id,0.6%wa,0.0%hi,0.0%si,0.0%stMem:1014660ktotal,880512kused,134148kfree,264904kbuffersSwap:262140ktotal,34788kused,227352kfree,217144kcachedPID USER PR NI VIRT RES SHR S%CPU%MEM TIME+COMMAND12760root2001508419441632R2.00.20:00.01top-bn1-i-c

如上所示,top命令可以看到總體的系統(tǒng)運行狀態(tài)和cpu的使用率 。

%us:表示用戶空間程序的cpu使用率(沒有通過nice調(diào)度)

%sy:表示系統(tǒng)空間的cpu使用率,主要是內(nèi)核程序。

%ni:表示用戶空間且通過nice調(diào)度過的程序的cpu使用率。

%id:空閑cpu

%wa:cpu運行時在等待io的時間

%hi:cpu處理硬中斷的數(shù)量

%si:cpu處理軟中斷的數(shù)量

%st:被虛擬機偷走的cpu

2、vmstat

之前在本博客中有介紹過vmstat的使用,詳細使用和參數(shù)介紹參考網(wǎng)址:http://www.sijitao.net/1925.html 。

[root@li676-235~]#vmstat15procs-----------memory-------------swap-------io------system-------cpu-----r b swpd free buff cache si so bi boincs us sy id wa st203479268376147688356132161642138522549110303479297368147688326884000013313415679001034792624321476963607040008826727863181900003479297160147696326904000071821248400103479256572147696364540000426124661231600

3、sar

sar命令語法和vmstat一樣。命令不存在時需要安裝sysstat包,這個包很有用。

CPU使用率

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

[root@li676-235~]#sar-u15Linux3.18.5-x86_64-linode52(li676-235)07/20/2015_x86_64_(1CPU)02:41:25PM CPU%user%nice%system%iowait%steal%idle02:41:26PM all64.710.0018.630.000.9815.6902:41:27PM all29.470.0022.1114.740.0033.6802:41:28PM all67.330.0031.680.990.000.0002:41:29PM all7.000.002.000.000.0091.0002:41:30PM all69.000.0023.000.000.008.00Average:all47.790.0019.483.010.2029.52

和top一樣,可以看到所有cpu的使用情況。如果需要查看某顆cpu的使用可以用-P參數(shù)。例如指定顯示0號cpu 的使用情況。

[root@li676-235~]#sar-P0-u15Linux3.18.5-x86_64-linode52(li676-235)07/20/2015_x86_64_(1CPU)02:45:14PM CPU%user%nice%system%iowait%steal%idle02:45:15PM044.000.0052.004.000.000.0002:45:16PM09.280.0026.8062.891.030.0002:45:17PM03.060.0014.2981.631.020.0002:45:18PM04.120.0022.6872.161.030.0002:45:19PM04.120.0022.6872.161.030.00Average:013.090.0027.8158.280.820.00

進程隊列長度和平均負載狀態(tài)

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

[root@li676-235~]#sar-q15Linux3.18.5-x86_64-linode52(li676-235)07/20/2015_x86_64_(1CPU)02:48:47PM runq-sz plist-sz ldavg-1ldavg-5ldavg-1502:48:48PM11330.340.430.4102:48:49PM21320.340.430.4102:48:50PM11330.340.430.4102:48:51PM21340.310.420.4002:48:52PM11330.310.420.40Average:11330.330.430.41

輸出項:

runq-sz:運行隊列的長度(等待運行的進程數(shù))

plist-sz:進程列表中進程(processes)和線程(threads)的數(shù)量

ldavg-1:最后1分鐘的系統(tǒng)平均負載(System load average)

ldavg-5:過去5分鐘的系統(tǒng)平均負載

ldavg-15:過去15分鐘的系統(tǒng)平均負載

進程創(chuàng)建的平均值和上下文切換的次數(shù)

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

[root@li676-235~]#sar-w15Linux3.18.5-x86_64-linode52(li676-235)07/20/2015_x86_64_(1CPU)02:54:03PM proc/s cswch/s02:54:04PM1.01156.5702:54:05PM1.00132.0002:54:06PM2.00201.0002:54:07PM2.02126.2602:54:08PM2.00114.00Average:1.61145.98

sar命令也可以獲取過去指定日期的性能參數(shù)。

[root@li676-235~]#sar-u-f/var/log/sa/sa20Linux3.18.5-x86_64-linode52(li676-235)07/20/2015_x86_64_(1CPU)01:10:01PM CPU%user%nice%system%iowait%steal%idle01:20:02PM all25.780.008.883.590.1561.6001:30:01PM all26.060.009.963.330.1060.5501:40:01PM all25.730.009.173.700.0961.3201:50:01PM all25.700.009.502.790.1261.8902:00:01PM all26.700.009.732.200.1061.2802:10:01PM all26.160.009.564.340.1159.8202:20:01PM all25.490.009.612.760.0762.0702:30:01PM all26.470.009.940.640.3062.6502:40:02PM all27.320.0010.373.860.1558.3002:50:02PM all26.980.0010.384.560.1357.95Average:all26.240.009.713.180.1360.74

4、mpstat

這個命令也在sysstat包中,語法類似。

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

[root@li676-235~]#mpstat15Linux3.18.5-x86_64-linode52(li676-235)07/20/2015_x86_64_(1CPU)03:01:18PM CPU%usr%nice%sys%iowait%irq%soft%steal%guest%idle03:01:19PM all52.530.0023.230.000.000.000.000.0024.2403:01:20PM all21.000.004.000.000.000.000.000.0075.0003:01:21PM all53.000.0018.000.000.000.000.000.0029.0003:01:22PM all26.000.003.000.000.000.000.000.0071.0003:01:23PM all46.000.0018.000.000.000.000.000.0036.00Average:all39.680.0013.230.000.000.000.000.0047.09

cpu使用情況比sar更加詳細些,也可以用-P指定某顆cpu 。

5、iostat

這個命令主要用來查看io使用情況,也可以來查看cpu,個人感覺不常用。

[root@li676-235~]#iostat-c12Linux3.18.5-x86_64-linode52(li676-235)07/20/2015_x86_64_(1CPU)avg-cpu:%user%nice%system%iowait%steal%idle4.530.013.810.630.0490.99avg-cpu:%user%nice%system%iowait%steal%idle38.000.0014.000.000.0048.00

6、dstat

每秒cpu使用率情況獲取

[root@li676-235~]#dstat-c----total-cpu-usage----usr sys idl wai hiq siq549110027116200052113700026106300150133700121672000

最占cpu的進程獲取

[root@li676-235~]#dstat--top-cpu-most-expensive-cpu process mysqld1.5php-fpm:pool24mysqld59

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容