如何理解LinuxCPU負(fù)載和CPU使用率

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何理解Linux CPU負(fù)載和CPU使用率,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司始終致力于在企業(yè)網(wǎng)站建設(shè)領(lǐng)域發(fā)展。秉承“創(chuàng)新、求實(shí)、誠(chéng)信、拼搏”的企業(yè)精神,致力為企業(yè)提供全面的網(wǎng)絡(luò)宣傳與技術(shù)應(yīng)用整體策劃方案,為企業(yè)提供包括“網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、微信網(wǎng)站建設(shè)、重慶小程序開(kāi)發(fā)商城網(wǎng)站建設(shè)、平臺(tái)網(wǎng)站建設(shè)秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

CPU負(fù)載和 CPU使用率

這兩個(gè)從一定程度上都可以反映一臺(tái)機(jī)器的繁忙程度.

cpu使用率反映的是當(dāng)前cpu的繁忙程度,忽高忽低的原因在于占用cpu處理時(shí)間的進(jìn)程可能處于io等待狀態(tài)但卻還未釋放進(jìn)入wait。

平均負(fù)載(load average)是指某段時(shí)間內(nèi)占用cpu時(shí)間的進(jìn)程和等待cpu時(shí)間的進(jìn)程數(shù),這里等待cpu時(shí)間的進(jìn)程是指等待被喚醒的進(jìn)程,不包括處于wait狀態(tài)進(jìn)程。

以上分析可以看出,一臺(tái)機(jī)器很有可能處于低cpu使用率高負(fù)載的情況,因此看機(jī)器的繁忙程度應(yīng)該結(jié)合兩者,從實(shí)際的使用情況觀察,自己的一臺(tái)雙核志強(qiáng)2.8GHZ,2G內(nèi)存的機(jī)器在平均負(fù)載到50左右,cpu使用率才接近100%(應(yīng)用有不少io操作),這種情況下應(yīng)用還算流暢,實(shí)際訪問(wèn)延遲不是很高。因此在cpu還空閑的情況下,如何提高io響應(yīng)是減少負(fù)載的關(guān)鍵,很多人認(rèn)為負(fù)載到幾十了機(jī)器就非常繁忙了,我倒覺(jué)得如果這個(gè)時(shí)候cpu使用率比較低,則負(fù)載高可能不能很好說(shuō)明問(wèn)題,一旦cpu處理的進(jìn)程處理完后,那些等待的進(jìn)程也能立刻得到響應(yīng),這種情況下應(yīng)該優(yōu)化io讀寫(xiě)速度。真到cpu使用率一直90%以上,即使平均負(fù)載只有個(gè)位數(shù)(比如某一個(gè)進(jìn)程一直在運(yùn)算),那機(jī)器其實(shí)也已經(jīng)繁忙了~

其實(shí),在前面的文章中,也有寫(xiě)到cpu使用率低負(fù)載高,原因分析 cpu使用率低,但是load很高,load很高的可能是IO

CPU負(fù)載的一個(gè)類(lèi)比

判斷系統(tǒng)負(fù)荷是否過(guò)重,必須理解load average的真正含義。下面,我根據(jù)"Understanding Linux CPU Load"這篇文章,嘗試用最通俗的語(yǔ)言,解釋這個(gè)問(wèn)題。
首先,假設(shè)最簡(jiǎn)單的情況,你的電腦只有一個(gè)CPU,所有的運(yùn)算都必須由這個(gè)CPU來(lái)完成。
那么,我們不妨把這個(gè)CPU想象成一座大橋,橋上只有一根車(chē)道,所有車(chē)輛都必須從這根車(chē)道上通過(guò)。(很顯然,這座橋只能單向通行。)
系統(tǒng)負(fù)荷為0,意味著大橋上一輛車(chē)也沒(méi)有。

系統(tǒng)負(fù)荷為0.5,意味著大橋一半的路段有車(chē)。

系統(tǒng)負(fù)荷為1.0,意味著大橋的所有路段都有車(chē),也就是說(shuō)大橋已經(jīng)"滿(mǎn)"了。但是必須注意的是,直到此時(shí)大橋還是能順暢通行的。

系統(tǒng)負(fù)荷為1.7,意味著車(chē)輛太多了,大橋已經(jīng)被占滿(mǎn)了(100%),后面等著上橋的車(chē)輛為橋面車(chē)輛的70%。以此類(lèi)推,系統(tǒng)負(fù)荷2.0,意味著等待上橋的車(chē)輛與橋面的車(chē)輛一樣多;系統(tǒng)負(fù)荷3.0,意味著等待上橋的車(chē)輛是橋面車(chē)輛的2倍??傊?,當(dāng)系統(tǒng)負(fù)荷大于1,后面的車(chē)輛就必須等待了;系統(tǒng)負(fù)荷越大,過(guò)橋就必須等得越久。

CPU的系統(tǒng)負(fù)荷,基本上等同于上面的類(lèi)比。大橋的通行能力,就是CPU的最大工作量;橋梁上的車(chē)輛,就是一個(gè)個(gè)等待CPU處理的進(jìn)程(process)。
如果CPU每分鐘最多處理100個(gè)進(jìn)程,那么系統(tǒng)負(fù)荷0.2,意味著CPU在這1分鐘里只處理20個(gè)進(jìn)程;系統(tǒng)負(fù)荷1.0,意味著CPU在這1分鐘里正好處理100個(gè)進(jìn)程;系統(tǒng)負(fù)荷1.7,意味著除了CPU正在處理的100個(gè)進(jìn)程以外,還有70個(gè)進(jìn)程正排隊(duì)等著CPU處理。
為了電腦順暢運(yùn)行,系統(tǒng)負(fù)荷最好不要超過(guò)1.0,這樣就沒(méi)有進(jìn)程需要等待了,所有進(jìn)程都能第一時(shí)間得到處理。很顯然,1.0是一個(gè)關(guān)鍵值,超過(guò)這個(gè)值,系統(tǒng)就不在最佳狀態(tài)了,你要?jiǎng)邮指深A(yù)了。

CPU負(fù)載-多處理器

上面,我們假設(shè)你的電腦只有1個(gè)CPU。如果你的電腦裝了2個(gè)CPU,會(huì)發(fā)生什么情況呢?
2個(gè)CPU,意味著電腦的處理能力翻了一倍,能夠同時(shí)處理的進(jìn)程數(shù)量也翻了一倍。
還是用大橋來(lái)類(lèi)比,兩個(gè)CPU就意味著大橋有兩根車(chē)道了,通車(chē)能力翻倍了。

所以,2個(gè)CPU表明系統(tǒng)負(fù)荷可以達(dá)到2.0,此時(shí)每個(gè)CPU都達(dá)到100%的工作量。推廣開(kāi)來(lái),n個(gè)CPU的電腦,可接受的系統(tǒng)負(fù)荷最大為n.0。

CPU負(fù)載-多核處理器

芯片廠商往往在一個(gè)CPU內(nèi)部,包含多個(gè)CPU核心,這被稱(chēng)為多核CPU。
在系統(tǒng)負(fù)荷方面,多核CPU與多CPU效果類(lèi)似,所以考慮系統(tǒng)負(fù)荷的時(shí)候,必須考慮這臺(tái)電腦有幾個(gè)CPU、每個(gè)CPU有幾個(gè)核心。然后,把系統(tǒng)負(fù)荷除以總的核心數(shù),只要每個(gè)核心的負(fù)荷不超過(guò)1.0,就表明電腦正常運(yùn)行。
怎么知道電腦有多少個(gè)CPU核心呢?
"cat /proc/cpuinfo"命令,可以查看CPU信息。"grep -c 'model name' /proc/cpuinfo"命令,直接返回CPU的總核心數(shù)。

系統(tǒng)負(fù)荷的經(jīng)驗(yàn)法則

1.0是系統(tǒng)負(fù)荷的理想值嗎?
不一定,系統(tǒng)管理員往往會(huì)留一點(diǎn)余地,當(dāng)這個(gè)值達(dá)到0.7,就應(yīng)當(dāng)引起注意了。經(jīng)驗(yàn)法則是這樣的:
當(dāng)系統(tǒng)負(fù)荷持續(xù)大于0.7,你必須開(kāi)始調(diào)查了,問(wèn)題出在哪里,防止情況惡化。
當(dāng)系統(tǒng)負(fù)荷持續(xù)大于1.0,你必須動(dòng)手尋找解決辦法,把這個(gè)值降下來(lái)。
當(dāng)系統(tǒng)負(fù)荷達(dá)到5.0,就表明你的系統(tǒng)有很?chē)?yán)重的問(wèn)題,長(zhǎng)時(shí)間沒(méi)有響應(yīng),或者接近死機(jī)了。你不應(yīng)該讓系統(tǒng)達(dá)到這個(gè)值。

對(duì)于我的機(jī)器,有24個(gè)core,那么,load多少合適呢?

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]
#grep 'model name' /proc/cpuinfo | wc -l
24

答案是:

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]
#echo "0.7*24" |bc
16.8

最佳觀察時(shí)長(zhǎng)

最后一個(gè)問(wèn)題,"load average"一共返回三個(gè)平均值----1分鐘系統(tǒng)負(fù)荷、5分鐘系統(tǒng)負(fù)荷,15分鐘系統(tǒng)負(fù)荷,----應(yīng)該參考哪個(gè)值?
如果只有1分鐘的系統(tǒng)負(fù)荷大于1.0,其他兩個(gè)時(shí)間段都小于1.0,這表明只是暫時(shí)現(xiàn)象,問(wèn)題不大。
如果15分鐘內(nèi),平均系統(tǒng)負(fù)荷大于1.0(調(diào)整CPU核心數(shù)之后),表明問(wèn)題持續(xù)存在,不是暫時(shí)現(xiàn)象。所以,你應(yīng)該主要觀察"15分鐘系統(tǒng)負(fù)荷",將它作為電腦正常運(yùn)行的指標(biāo)。

上述就是小編為大家分享的如何理解Linux CPU負(fù)載和CPU使用率了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:如何理解LinuxCPU負(fù)載和CPU使用率
分享鏈接:http://muchs.cn/article36/jpdjsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、品牌網(wǎng)站制作、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)網(wǎng)站建設(shè)、網(wǎng)站排名企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)