繼我們31章節(jié),我們繼續(xù)來學(xué)習(xí)新的知識:CPU使用率。
今天的內(nèi)容,希望大家學(xué)習(xí)了之后,可以學(xué)會如何查看cpu使用率,以及怎么定位cpu使用率過高的問題。
提問:常用什么指標(biāo)來描述系統(tǒng)的cpu性能?
cpu使用率最底層的數(shù)據(jù)都是從哪里獲取的?
cpu性能最直觀的指標(biāo)就是cpu使用率,而這些數(shù)據(jù)又是從/proc中獲取的。下面來學(xué)習(xí)下.
什么是cpu使用率
CPU使用率是指運(yùn)行程序占用的CPU資源。
舉例說明:
比如A進(jìn)程占用10ms,然后B進(jìn)程占用30ms,然后空閑60ms,再又是A進(jìn)程占10ms,B進(jìn)程占30ms,空閑60ms;如果在一段時(shí)間內(nèi)都是如此,那么這段時(shí)間內(nèi)的占用率為40%。
40%如何計(jì)算的呢?
計(jì)算公式:cpu使用時(shí)間/cpu占用總時(shí)間=80/200*100=40%
cpu占用時(shí)間底層數(shù)據(jù)哪里來
cpu占用時(shí)間從/proc/stat文件系統(tǒng)中獲取,如下:


到這里你應(yīng)該了解了 cat /proc/stat 輸出項(xiàng)的含義,那么cpu使用率到底是怎么計(jì)算出來的呢?
從面輸出結(jié)果可以看到:第一行的每一列數(shù)據(jù)都是cpu0+cpu1+cpu2+cpu3相加的結(jié)果。
如use%占用總cpu時(shí)間(104245)=cpu0+cpu1+cpu2+cpu3。
所以:總的cpu時(shí)間totalCPUTime=第一行所有列的數(shù)據(jù)相加
下面來看單個(gè)cpu的使用率計(jì)算。比如:以cpu0為例:
cpu0使用率計(jì)算
(1)查看cpu0數(shù)據(jù): cat /proc/stat | grep cpu0
[root@localhost ~]# cat /proc/stat | grep cpu0
cpu0 1036 11 1776 249517 1498 426 216 0 0 0
總時(shí)間1: CPU0TotalTime1=user+nice+system+idle+iowait+irq+softirq+(后面數(shù)據(jù)為0的三項(xiàng))
CPU0TotalTime 這個(gè)時(shí)間是系統(tǒng)啟動以來到當(dāng)前時(shí)間的總時(shí)間
占用時(shí)間1: CPU0UsedTime1=user+nice+system+idle+iowait+irq+softirq
時(shí)間過去一段時(shí)間了,再來查看cpu0的數(shù)據(jù)。
(2)查看cpu0數(shù)據(jù): cat /proc/stat | grep cpu0
[root@localhost ~]# cat /proc/stat | grep cpu0
cpu0 1036 11 1776 249517 1498 426 216 0 0 0
[root@localhost ~]# cat /proc/stat | grep cpu0
cpu0 1052 11 1866 301982 1501 486 241 0 0 0
[root@localhost ~]# ^C
總時(shí)間2: CPU0TotalTime2=user+nice+system+idle+iowait+irq+softirq+(后面數(shù)據(jù)為0的三項(xiàng))
CPU0TotalTime 這個(gè)時(shí)間是系統(tǒng)啟動以來到當(dāng)前時(shí)間的總時(shí)間
占用時(shí)間2: CPU0UsedTime2=user+nice+system+idle+iowait+irq+softirq
得到CPU0在N秒內(nèi)的單核利用率:
(CPU0UsedTime2-CPU0UsedTime1)*100%/ (CPU0TotalTime2-CPU0TotalTime1)
總結(jié):cpu使用率=(1-空閑時(shí)間)/總cpu時(shí)間。這個(gè)不需要我們計(jì)算,我們只需要知道cpu使用率是怎么計(jì)算出來的即可。
知道了cpu使用率計(jì)算,下面需要來學(xué)習(xí)一下如何查看cpu使用率?
查看cpu使用率
(1)

(2)


如何規(guī)避網(wǎng)絡(luò)瓶頸:1.需要在同一個(gè)局域網(wǎng)里,同一個(gè)網(wǎng)段(ip前三位相同)
2.最好使用千兆交換機(jī)
曾經(jīng)使用百兆交換機(jī)做性能測試,每次一跑,帶寬就跑滿了,壓力始終上不去。
如何知道帶寬跑滿了-》ping服務(wù)器,查看有沒有很大的延遲。


接下來如何分析top輸出的結(jié)果,請看33節(jié)。