您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Linux下cpu使用率load average怎么看”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
load average一般可以通過top或者uptime觀察到,格式如下:
load average: 0.10, 0.05, 0.58
分別代表了最近1分鐘,5分鐘,15分鐘CPU的平均負(fù)載情況
如果是單核CPU的話,1.00就表示CPU已經(jīng)滿負(fù)荷了,
如果是多核CPU的話,load average達到CPU的核數(shù)即說明該CPU已經(jīng)滿負(fù)荷了,
如果是多顆物理CPU,則當(dāng)load average達到所有物理CPU的總核數(shù)時,說明系統(tǒng)CPU滿負(fù)荷了。
簡而言之,CPU的核數(shù)即為我們根據(jù)load average衡量CPU負(fù)載的依據(jù)。
那么當(dāng)CPU負(fù)載達到哪個值時,就該引起我們注意了呢?按照參考文章給的經(jīng)驗值是CPU核數(shù)減去0.3,
即如果CPU總核數(shù)為4,當(dāng)load average上15分鐘的數(shù)值達到3.7時,我們就該好好進系統(tǒng)看看了。
CPU Utilization 好理解,就是CPU的利用率,75%以上就比較高了(也有說法是80%或者更高)。除了這個指標(biāo)外,還要結(jié)合Load Average和Context Switch Rate來看,有可能CPU高是因為后兩個指標(biāo)高導(dǎo)致的。
Load Average ,這個很難衡量。網(wǎng)上搜了一圈,還沒見到幾個合理的解釋。我100個并發(fā)用戶測試數(shù)來這兩個值是:77.534%,6.108,CPU利用率比較高,Load Average也好像有點高。后來發(fā)現(xiàn)了如下兩片博文: 理解Load Average做好壓力測試 ,“Load Average是 CPU的 Load,它所包含的信息不是 CPU的使用率狀況,而是在一段時間內(nèi) CPU正在處理以及等待 CPU處理的進程數(shù)之和的統(tǒng)計信息,也就是 CPU使用隊列的長度的統(tǒng)計信息。 ”,基本解釋了multi-process,multi-thread程序的原理。理解Linux處理器的負(fù)載均值(翻譯) ,簡單說起來就一句話:
Load Average < CPU個數(shù) * 核數(shù) *0.7
比如1個1核CPU,Load Average < 1 * 1 * 0.7;1個4核的CPU,Load Average必須 < 1 * 4 * 0.7 = 2.8。
查看cpu的信息:grep 'model name' /proc/cpuinfo
Context Switch Rate 。就是Process(Thread)的切換,如果切換過多,會讓CPU忙于切換,也會導(dǎo)致影響吞吐量?!陡咝阅?a title="服務(wù)器" target="_blank" href="http://kemok4.com/">服務(wù)器架構(gòu) 》這篇文章的第2節(jié)就是說的是這個問題的。究竟多少算合適?google了一大圈,沒有一個確切的解釋。Context Switch大體上由兩個部分組成:中斷和進程(包括線程)切換,一次中斷(Interrupt)會引起一次切換,進程(線程)的創(chuàng)建、激活之類的也會引起一次切換。CS的值也和TPS(Transaction Per Second)相關(guān)的,假設(shè)每次調(diào)用會引起N次CS,那么就可以得出
Context Switch Rate = Interrupt Rate + TPS* N
CSR減掉IR,就是進程/線程的切換,假如主進程收到請求交給線程處理,線程處理完畢歸還給主進程,這里就是2次切換。也可以用CSR、IR、TPS的值代入公式中,得出每次事物導(dǎo)致的切換數(shù)。因此,要降低CSR,就必須在每個TPS引起的切換上下功夫,只有N這個值降下去,CSR就能降低,理想情況下N=0,但是無論如何如果N >= 4,則要好好檢查檢查。另外網(wǎng)上說的CSR<5000,我認(rèn)為標(biāo)準(zhǔn)不該如此單一。
其他信息:
這三個指標(biāo)在LoadRunner中可以監(jiān)控到;另外,在linux中,也可以用vmstat查看r(Load Arerage),in(Interrupt)和cs(Context Switch)
#vmstat 1 5
procs --------------memory------------- ----swap-- ---io-- -system------cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 244644 29156 415720 2336484 0 0 1 49 2 1 1 0 98 0
0 0 244644 29140 415720 2336484 0 0 0 28 9 115 0 0 99 1
0 0 244644 29140 415720 2336484 0 0 0 24 62 256 0 0 100 0
0 0 244644 29140 415720 2336484 0 0 0 0 5 93 0 0 100 0
0 0 244644 29140 415720 2336484 0 0 0 0 58 255 0 0 100 0
Interrupt Rate包括內(nèi)核由于進程的時間片中斷。(在 Linux 2.6 中,系統(tǒng)時鐘每 1 毫秒中斷一次時鐘頻率,用 HZ 宏表示,定義為 1000,即每秒中斷 1000 次。系統(tǒng)不一樣,內(nèi)核不一樣配置100、250的都有。)
內(nèi)核的時鐘頻率可以通過如下命令知道
cat /boot/config-`uname -r` | grep '^CONFIG_HZ='
CONFIG_HZ=100
每秒總的時鐘中斷數(shù)就是 = cpu個數(shù) * 核數(shù) * CONFIG_HZ
cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
LOC: 97574747 52361843 105207680 69447653 Local timer interrupts
RES: 107368 257510 98635 186294 Rescheduling interrupts
CAL: 14174 14206 14164 194 function call interrupts
TLB: 1007949 853117 992546 591410 TLB shootdowns
可以查看中斷的類型以及次數(shù)
“Linux下cpu使用率load average怎么看”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。