在linux的系統(tǒng)維護(hù)中提陶,可能需要經(jīng)常查看cpu使用率框都,分析系統(tǒng)整體的運(yùn)行情況确丢。而監(jiān)控CPU的性能一般包括以下3點(diǎn):運(yùn)行隊(duì)列茫多、CPU使用率和上下文切換祈匙。
對于每一個CPU來說運(yùn)行隊(duì)列最好不要超過3,例如天揖,如果是雙核CPU就不要超過6夺欲。如果隊(duì)列長期保持在3以上,說明任何一個進(jìn)程運(yùn)行時都不能馬上得到cpu的響應(yīng)今膊,這時可能需要考慮升級cpu些阅。另外滿負(fù)荷運(yùn)行cpu的使用率最好是user空間保持在65%~70%,system空間保持在30%斑唬,空閑保持在0%~5% 市埋。
下面總結(jié)下查看CPU使用率常用的幾個命令。
這個命令很常用腰素,在第三行有顯示CPU當(dāng)前的使用情況。
[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)運(yùn)行狀態(tài)和cpu的使用率 弓千。
%us:表示用戶空間程序的cpu使用率(沒有通過nice調(diào)度)
%sy:表示系統(tǒng)空間的cpu使用率,主要是內(nèi)核程序献起。
%ni:表示用戶空間且通過nice調(diào)度過的程序的cpu使用率洋访。
%id:空閑cpu
%wa:cpu運(yùn)行時在等待io的時間
%hi:cpu處理硬中斷的數(shù)量
%si:cpu處理軟中斷的數(shù)量
%st:被虛擬機(jī)偷走的cpu
之前在本博客中有介紹過vmstat的使用,詳細(xì)使用和參數(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
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
進(jìn)程隊(duì)列長度和平均負(fù)載狀態(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
輸出項(xiàng):
runq-sz:運(yùn)行隊(duì)列的長度(等待運(yùn)行的進(jìn)程數(shù))
plist-sz:進(jìn)程列表中進(jìn)程(processes)和線程(threads)的數(shù)量
ldavg-1:最后1分鐘的系統(tǒng)平均負(fù)載(System load average)
ldavg-5:過去5分鐘的系統(tǒng)平均負(fù)載
ldavg-15:過去15分鐘的系統(tǒng)平均負(fù)載
進(jìn)程創(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
這個命令也在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更加詳細(xì)些士飒,也可以用-P指定某顆cpu 查邢。
這個命令主要用來查看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
每秒cpu使用率情況獲取
[root@li676-235~]#dstat-c----total-cpu-usage----usr sys idl wai hiq siq549110027116200052113700026106300150133700121672000
最占cpu的進(jìn)程獲取
[root@li676-235~]#dstat--top-cpu-most-expensive-cpu process mysqld1.5php-fpm:pool24mysqld59