cpu負載和 cpu使用率
這兩個從一定程度上都可以反映一台機器的繁忙程度.
cpu使用率反映的是當前cpu的繁忙程度,忽高忽低的原因在於占用cpu處理時間的程序可能處於io等待狀態但卻還未釋放進入wait。
平均負載(load **erage)是指某段時間內占用cpu時間的程序和等待cpu時間的程序數,這裡等待cpu時間的程序是指等待被喚醒的程序,不包括處於wait狀態程序。
以上分析可以看出,一台機器很有可能處於低cpu使用率高負載的情況,因此看機器的繁忙程度應該結合兩者,從實際的使用情況觀察,自己的一台雙核志強2.8ghz,2g記憶體的機器在平均負載到50左右,cpu使用率才接近100%(應用有不少io操作),這種情況下應用還算流暢,實際訪問延遲不是很高。因此在cpu還空閒的情況下,如何提高io響應是減少負載的關鍵,很多人認為負載到幾十了機器就非常繁忙了,我倒覺得如果這個時候cpu使用率比較低,則負載高可能不能很好說明問題,一旦cpu處理的程序處理完後,那些等待的程序也能立刻得到響應,這種情況下應該優化io讀寫速度。真到cpu使用率一直90%以上,即使平均負載只有個位數(比如某乙個程序一直在運算),那機器其實也已經程式設計客棧繁忙了~
其實,在前面的文章中,也有寫到cpu使用率低負載高,原因分析 cpu使用率低,但是load很高,load很高的可能是io
cpu負載的乙個模擬
判斷系統負荷是否過重,必須理解load **erage的真正含義。下面,我根據"understanding linux cpu load"這篇文章,嘗試用最通俗的語言,解釋這個問題。
首先,假設最簡單的情況,你的電腦只有乙個cpu,所有的運算都必須由這個cpu來完成。
那麼,我們不妨把這個cpu想象成一座大橋,橋上只有一根車道,所有車輛都必須從這根車道上通過。(很顯然,這座橋只能單向通行。)
系統負荷為0,意味著大橋上一輛車也沒有。
系統負荷為0.5,意味著大橋一半的路段有車。
系統負荷為1.0,意味著大橋的所有路段都有車,也就是說大橋已經"滿"了。但是必須注意的是,直到此時大橋還是能順暢通行的。
系統負荷為1.7,意味著車輛太多了,大橋已經被佔滿了(100%),後面等著上橋的車輛為橋面車輛的70%。以此類推,系統負荷2.0,意味著等待上橋的車輛與橋面的車輛一樣多;系統負荷3.0,意味著等待上橋的車輛是橋面車輛的2倍。總之,當系統負荷大於1,後面的車輛就必須等待了;系統負荷越大,過橋就必須等得越久。
cpu的系統負荷,基本上等同於上面的模擬。大橋的通行能力,就是cpu的最大工作量;橋梁上的車輛,就是乙個個等待cpu處理的程序(process)。
如果cpu每分鐘最多處理100個程序,那麼系統負荷0.2,意味著cpu在這1分鐘裡只處理20個程序;系統負荷1.0,意味著cpu在這1分鐘裡正好處理100個程序;系統負荷1.7,意味著除了cpu正在處理的100個程序以外,還有70個程序正排隊等著cpu處理。
為了電腦順暢執行,系統負荷最好不要超過1.0,這樣就沒有程序需要等待了,所有程序都能第一時間得到處理。很顯然,1.0是乙個關鍵值,超過這個值,系統就不在最佳狀態了,你要動手干預了。
cpu負載-多處理器
上面,我們假設你的電腦只有1個cpu。如果你的電腦裝了2個cpu,會發生什麼情況呢?
2個cpu,意味著電腦的處理能力翻了一倍,能夠同時處理的程序數量也翻了一倍。
還是用大橋來模擬,兩個cpu就意味著大橋有兩根車道了,通車能力翻倍了。
所以,2個cpu表明系統負荷可以達到2.0,此時每個cpu都達到100%的工作量。推廣開來,n個cpu的www.cppcns.com電腦,可接受的系統負荷最大為n.0。
cpu負載-多核處理器
晶元廠商往往在乙個cpu內部,包含多個cpu核心,這被稱為多核cpu。
在系統負荷方面,多核cpu與多cpu效果類似,所以考慮系統負荷的時候,必須考慮這台電腦有幾個cpu、每個cpu有幾個核心。然後,把系統負荷除以總的核心數,只要每個核心的負荷不超過1.0,就表明電腦正常執行。
怎麼知道電腦有多少個cpu核心呢?
"cat /proc/cpuinfo"命令,可以檢視cpu資訊。"grep -c 'model name' /proc/cpuinfo"命令,直接返回cpu的總核心數。
系統負荷的經驗法則
1.0是系統負荷的理想值嗎?
不一定,系統管理員往往會留一點餘地,當這個值達到0.7,就應當引起注意了。經驗法則是這樣的:
對於我的機器,有24個core,那麼,load多少合適呢?
[[email protected] /home/ahao.mah/alios_qa]#grep 'model name' /proc/cpuinfo | wc -l24
答案是:
[[email protected] /home/ahao.mah/alios_qa]#echo "0.7*24" |bc16.8
最佳觀察時長
最後乙個問題,"load **erage"一共返回三個平均值-程式設計客棧---1分鐘系統負荷、5分鐘系統負荷,15分鐘系統負荷,----應該程式設計客棧參考哪個值?
如果只有1分鐘的系統負荷大於1.0,其他兩個時間段都小於1.0,這表明只是暫時現象,問題不大。
如果15分鐘內,平均系統負荷大於1.0(調整cpu核心數之後),表明問題持續存在,不是暫時現象。所以,你應該主要觀察"15分鐘系統負荷",將它作為電腦正www.cppcns.com常執行的指標。
本文標題: 詳解linux cpu負載和cpu使用率
本文位址:
Linux CPU負載問題
前言 cpu 等待軟體程式傳遞指令,執行計算,返回結果 一 cpu 指標 1 cpu 負載 cpu執行工作量佔總負載能力的百分比2 cpu 利用率 cpu總負載能力的比例 二 指令 uptime 指令 返回最近 1 分鐘 5 分鐘 15 分鐘的 平均負載 檢視cpuinfo 資訊 可以看出這是四核的...
cp 命令詳解
cp命令 該命令的功能是將給出的檔案或目錄拷貝到另一檔案或目錄中,同msdos下的copy命令一樣,功能十分強大。語法 cp 選項 原始檔或目錄 目標檔案或目錄 說明 該命令把指定的原始檔複製到目標檔案或把多個原始檔複製到目標目錄中。該命令的各選項含義如下 a 該選項通常在拷貝目錄時使用。它保留鏈結...
CP 命令詳解
home lee cp help 用法 cp 選項 目的地 或 cp 選項 目錄 或 cp 選項 target directory 目錄 將 檔案複製至 目的地 或將多個 檔案 複製至 目錄 長選項必須用的引數在使用短選項時也是必須的。a,archive 等於 dpr backup control ...