性能指標理解-CPU load average

一般說到CPU使用率,大家都不陌生,就是程序?qū)PU時間片的占用情況,但我們大多情況下,還需要看另外一個指標,CPU load average.
先來看著圖:
下面top命令,可以看到load average,3個值,分別記錄了1min,5min,15min的系統(tǒng)平均負載。(用uptime命令也可以查看到這三個值)

CPU load

這幾個值是linux的負載均值,對性能有重要的意義。但這個值設(shè)置多少是合理的呢?

放出定義:load average 表示的是CPU的負載,包含的信息不是CPU的使用率狀況,而是在一段時間內(nèi)CPU正在處理以及等待CPU處理的進程數(shù)之和的統(tǒng)計信息,也就是CPU使用隊列的長度的統(tǒng)計信息。

我們舉個例子:高速公路收費站10個車道,那當有1-9輛車在不同的通道通過時,認為收費站的load<1;當正好10輛車在不同的通道時,load=1;當超過10輛車(假設(shè)每個通道是均勻有車)時,load>1.假設(shè)有100輛車,每個通道10輛,那就說明能有10輛車能過去,另外90輛車則需要等待。此時收費站的load為100/10=10. 這個10的負載表示系統(tǒng)當前滿負荷運轉(zhuǎn),且還有相當于90%的滿負載的請求在等待。

但是經(jīng)常我們也看到load average 有高達6,那真的是有問題嘛?不一定,因為它是基于操作系統(tǒng)的內(nèi)核的數(shù)量決定的,一般可以簡單粗暴的理解為內(nèi)核load之和。 比如現(xiàn)在一般都是8個內(nèi)核,那么load average的值就是8、
一般業(yè)界能夠被接受的值是, load average <= CPU核數(shù) *0.7。 但現(xiàn)在硬件越來越便宜,核數(shù)龐大的機器也越來越大,如遇到機器的CPU核數(shù)很大,那么剩余的30%部分也越大,這個時候可以適當?shù)恼{(diào)整下,只要不要到整個核數(shù)都用滿。

綜合,理想的系統(tǒng)load是既沒有進程(線程)等待也沒有CPU空閑,可最大限度的利用CPU資源。

回到上面的圖,我們可以看到1min,5min,15min 的平均load值。這三個字是要結(jié)合起來看的,如果機器持續(xù)在一段時間內(nèi)都是load很高的,那么也許機器性能下降了,可能需要進一步排查問題,也許是要增加機器了。
有時候也會遇到一種情況,Load很高,但系統(tǒng)的CPU使用率卻比較低??赡艿脑蚴穷l繁的上下文切換導致耗費了大量的CPU時間,以至于用在運算的CPU時間片比較少,卻有很多進程在等待運行。

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

相關(guān)閱讀更多精彩內(nèi)容

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