Linux CPU負載和 CPU使用率是什么?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純热?,讓我們一起來看看吧?/p>
創(chuàng)新互聯公司是專業(yè)的廣州網站建設公司,廣州接單;提供成都網站制作、做網站,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行廣州網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
CPU負載和 CPU使用率
這兩個從一定程度上都可以反映一臺機器的繁忙程度.
cpu使用率反映的是當前cpu的繁忙程度,忽高忽低的原因在于占用cpu處理時間的進程可能處于io等待狀態(tài)但卻還未釋放進入wait。
平均負載(load average)是指某段時間內占用cpu時間的進程和等待cpu時間的進程數,這里等待cpu時間的進程是指等待被喚醒的進程,不包括處于wait狀態(tài)進程。
以上分析可以看出,一臺機器很有可能處于低cpu使用率高負載的情況,因此看機器的繁忙程度應該結合兩者,從實際的使用情況觀察,自己的一臺雙核志強2.8GHZ,2G內存的機器在平均負載到50左右,cpu使用率才接近100%(應用有不少io操作),這種情況下應用還算流暢,實際訪問延遲不是很高。因此在cpu還空閑的情況下,如何提高io響應是減少負載的關鍵,很多人認為負載到幾十了機器就非常繁忙了,我倒覺得如果這個時候cpu使用率比較低,則負載高可能不能很好說明問題,一旦cpu處理的進程處理完后,那些等待的進程也能立刻得到響應,這種情況下應該優(yōu)化io讀寫速度。真到cpu使用率一直90%以上,即使平均負載只有個位數(比如某一個進程一直在運算),那機器其實也已經繁忙了~
其實,在前面的文章中,也有寫到cpu使用率低負載高,原因分析 cpu使用率低,但是load很高,load很高的可能是IO
CPU負載的一個類比
判斷系統(tǒng)負荷是否過重,必須理解load average的真正含義。下面,我根據"Understanding Linux CPU Load"這篇文章,嘗試用最通俗的語言,解釋這個問題。
首先,假設最簡單的情況,你的電腦只有一個CPU,所有的運算都必須由這個CPU來完成。
那么,我們不妨把這個CPU想象成一座大橋,橋上只有一根車道,所有車輛都必須從這根車道上通過。(很顯然,這座橋只能單向通行。)
系統(tǒng)負荷為0,意味著大橋上一輛車也沒有。
系統(tǒng)負荷為0.5,意味著大橋一半的路段有車。
系統(tǒng)負荷為1.0,意味著大橋的所有路段都有車,也就是說大橋已經"滿"了。但是必須注意的是,直到此時大橋還是能順暢通行的。
系統(tǒng)負荷為1.7,意味著車輛太多了,大橋已經被占滿了(100%),后面等著上橋的車輛為橋面車輛的70%。以此類推,系統(tǒng)負荷2.0,意味著等待上橋的車輛與橋面的車輛一樣多;系統(tǒng)負荷3.0,意味著等待上橋的車輛是橋面車輛的2倍。總之,當系統(tǒng)負荷大于1,后面的車輛就必須等待了;系統(tǒng)負荷越大,過橋就必須等得越久。
CPU的系統(tǒng)負荷,基本上等同于上面的類比。大橋的通行能力,就是CPU的最大工作量;橋梁上的車輛,就是一個個等待CPU處理的進程(process)。
如果CPU每分鐘最多處理100個進程,那么系統(tǒng)負荷0.2,意味著CPU在這1分鐘里只處理20個進程;系統(tǒng)負荷1.0,意味著CPU在這1分鐘里正好處理100個進程;系統(tǒng)負荷1.7,意味著除了CPU正在處理的100個進程以外,還有70個進程正排隊等著CPU處理。
為了電腦順暢運行,系統(tǒng)負荷最好不要超過1.0,這樣就沒有進程需要等待了,所有進程都能第一時間得到處理。很顯然,1.0是一個關鍵值,超過這個值,系統(tǒng)就不在最佳狀態(tài)了,你要動手干預了。
CPU負載-多處理器
上面,我們假設你的電腦只有1個CPU。如果你的電腦裝了2個CPU,會發(fā)生什么情況呢?
2個CPU,意味著電腦的處理能力翻了一倍,能夠同時處理的進程數量也翻了一倍。
還是用大橋來類比,兩個CPU就意味著大橋有兩根車道了,通車能力翻倍了。
所以,2個CPU表明系統(tǒng)負荷可以達到2.0,此時每個CPU都達到100%的工作量。推廣開來,n個CPU的電腦,可接受的系統(tǒng)負荷最大為n.0。
CPU負載-多核處理器
芯片廠商往往在一個CPU內部,包含多個CPU核心,這被稱為多核CPU。
在系統(tǒng)負荷方面,多核CPU與多CPU效果類似,所以考慮系統(tǒng)負荷的時候,必須考慮這臺電腦有幾個CPU、每個CPU有幾個核心。然后,把系統(tǒng)負荷除以總的核心數,只要每個核心的負荷不超過1.0,就表明電腦正常運行。
怎么知道電腦有多少個CPU核心呢?
"cat /proc/cpuinfo"命令,可以查看CPU信息。"grep -c 'model name' /proc/cpuinfo"命令,直接返回CPU的總核心數。
系統(tǒng)負荷的經驗法則
1.0是系統(tǒng)負荷的理想值嗎?
不一定,系統(tǒng)管理員往往會留一點余地,當這個值達到0.7,就應當引起注意了。經驗法則是這樣的:
當系統(tǒng)負荷持續(xù)大于0.7,你必須開始調查了,問題出在哪里,防止情況惡化。
當系統(tǒng)負荷持續(xù)大于1.0,你必須動手尋找解決辦法,把這個值降下來。
當系統(tǒng)負荷達到5.0,就表明你的系統(tǒng)有很嚴重的問題,長時間沒有響應,或者接近死機了。你不應該讓系統(tǒng)達到這個值。
對于我的機器,有24個core,那么,load多少合適呢?
[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#grep 'model name' /proc/cpuinfo | wc -l24
答案是:
[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#echo "0.7*24" |bc16.8
最佳觀察時長
最后一個問題,"load average"一共返回三個平均值----1分鐘系統(tǒng)負荷、5分鐘系統(tǒng)負荷,15分鐘系統(tǒng)負荷,----應該參考哪個值?
如果只有1分鐘的系統(tǒng)負荷大于1.0,其他兩個時間段都小于1.0,這表明只是暫時現象,問題不大。
如果15分鐘內,平均系統(tǒng)負荷大于1.0(調整CPU核心數之后),表明問題持續(xù)存在,不是暫時現象。所以,你應該主要觀察"15分鐘系統(tǒng)負荷",將它作為電腦正常運行的指標。
!
感謝各位的閱讀!看完上述內容,你們對Linux CPU負載和 CPU使用率是什么大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道。
網頁名稱:LinuxCPU負載和CPU使用率是什么
分享路徑:http://jinyejixie.com/article46/ijgehg.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站導航、營銷型網站建設、標簽優(yōu)化、電子商務、網站維護、定制開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯