cpu 使用率和負載的關系和區別 cpu負載高怎么解決


cpu 使用率和負載的關系和區別
當我們使用top命令查看系統的資源使用情況時會看到 load average,如下圖所示 。它表示系統在1、5、15分鐘的平均工作負載 。那么什么是負載(load)呢?它和CPU的利用率又有什么關系呢?
load average:系統平均負載是CPU的Load,它所包含的信息不是CPU的使用率狀況,而是在一段時間內CPU正在處理以及等待CPU處理的進程數之和的統計信息,也就是CPU使用隊列的長度的統計信息 。這個數字越小越好 。
CPU利用率:顯示的是程序在運行期間實時占用的CPU百分比
CPU負載:顯示的是一段時間內正在使用和等待使用CPU的平均任務數 。CPU利用率高,并不意味著負載就一定大 。舉例來說:如果我有一個程序它需要一直使用CPU的運算功能,那么此時CPU的使用率可能達到100%,但是CPU的工作負載則是趨近于“1”,因為CPU僅負責一個工作嘛!如果同時執行這樣的程序兩個呢?CPU的使用率還是100%,但是工作負載則變成2了 。所以也就是說,當CPU的工作負載越大,代表CPU必須要在不同的工作之間進行頻繁的工作切換 。
舉例說明
網上有篇文章舉了一個有趣比喻,拿打電話來說明兩者的區別,我按自己的理解闡述一下 。
某公用電話亭,有一個人在打電話,四個人在等待,每人限定使用電話一分鐘,若有人一分鐘之內沒有打完電話,只能掛掉電話去排隊,等待下一輪 。電話在這里就相當于CPU,而正在或等待打電話的人就相當于任務數 。
在電話亭使用過程中,肯定會有人打完電話走掉,有人沒有打完電話而選擇重新排隊,更會有新增的人在這兒排隊,這個人數的變化就相當于任務數的增減 。為了統計平均負載情況,我們5分鐘統計一次人數,并在第1、5、15分鐘的時候對統計情況取平均值,從而形成第1、5、15分鐘的平均負載 。
有的人拿起電話就打,一直打完1分鐘,而有的人可能前三十秒在找電話號碼,或者在猶豫要不要打,后三十秒才真正在打電話 。如果把電話看作CPU,人數看作任務,我們就說前一個人(任務)的CPU利用率高,后一個人(任務)的CPU利用率低 。
當然,CPU并不會在前三十秒工作,后三十秒歇著,只是說,有的程序涉及到大量的計算,所以CPU利用率就高,而有的程序牽涉到計算的部分很少,CPU利用率自然就低 。但無論CPU的利用率是高是低,跟后面有多少任務在排隊沒有必然關系 。
這個有爭議,各有各的說法,個人比較贊同CPU負載小于等于0.5算是一種理想狀態 。
不管某個CPU的性能有多好,1秒鐘能處理多少任務,我們可以認為它無關緊要,雖然事實并非如此 。在評估CPU負載時,我們只以5分鐘為單位為統計任務隊列長度 。如果每隔5分鐘統計的時候,發現任務隊列長度都是1,那么CPU負載就為1 。假如我們只有一個單核的CPU,負載一直為1,意味著沒有任務在排隊,還不錯 。
但是我那臺服務器,是雙核CPU,等于是有4個內核,每個內核的負載為1的話,總負載為4 。這就是說,如果我那臺服務器的CPU負載長期保持在4左右,還可以接受 。
但是每個內核的負載為1,并不能算是一種理想狀態!這意味著我們的CPU一直很忙,不得清閑 。網上有說理想的狀態是每個內核的負載為0.7左右,我比較贊同,0.7乘以內核數,得出服務器理想的CPU負載,比如我這臺服務器,負載在3.0以下就可以 。
最簡單辦法的是更換性能更好的服務器,不要想著僅僅提高CPU的性能,那沒有用,CPU要發揮出它最好的性能還需要其它軟硬件的配合 。
在服務器其它方面配置合理的情況下,CPU數量和CPU核心數(即內核數)都會影響到CPU負載,因為任務最終是要分配到CPU核心去處理的 。兩塊CPU要比一塊CPU好,雙核要比單核好 。
因此,我們需要記住,除去CPU性能上的差異,CPU負載是基于內核數來計算的!有一個說法,“有多少內核,即有多少負載” 。
4. CPU使用率到多少才算比較理想?
CPU利用率在過去常常被我們這些外行認為是判斷機器是否已經到了滿負荷的一個標準,我看到長時間CPU使用率60-80%就認為機器有瓶頸出現 。
-----------------------------------
https://blog.51cto.com/wks97/2073217
cpu負載是什么意思cpu負載的定義:在一般情況下可以將單核心cpu的負載看成是一條單行的橋,數字1代表cpu剛好能夠處理過來,即橋上能夠順利通過所有的車輛,橋外沒有等待的車輛,橋是暢通的 。當超過1時表示有等待上橋的車輛,小于1時表示車輛能夠快速的通過 。單核心cpu就表示該cpu能夠處理的事務數是1,
在多核cpu中cpu能夠并行處理的事務的數量應該是cpu個數*cpu核數,而且負載數最好不要超過這個數值 。例如一個4核cpu,則cpu_load最大值為4,不能長期超過4,否則會有任務沒有得到及時的處理,而使系統的負載累積增高,導致系統運行緩慢 。
CPU負載是什么意思?負載就是cpu在一段時間內正在處理以及等待cpu處理的進程數之和的統計信息,也就是cpu使用隊列的長度統計信息,這個數字越小越好 。
CPU數量和CPU內核數都會影響到CPU負載,因為任務最終是要分配到CPU核心去處理的 。兩塊CPU要比一塊CPU好,雙核要比單核好 。因此,除去CPU性能上的差異,CPU負載是基于內核數來計算的 。
工作原理:
1、取指令(IF,instruction fetch),即將一條指令從主存儲器中取到指令寄存器的過程 。程序計數器中的數值,用來指示當前指令在主存中的位置 。當 一條指令被取出后,PC中的數值將根據指令字長度自動遞增 。
2、指令譯碼階段(ID,instruction decode),取出指令后,指令譯碼器按照預定的指令格式,對取回的指令進行拆分和解釋,識別區分出不同的指令類 別以及各種獲取操作數的方法 ?,F代CISC處理器會將拆分已提高并行率和效率 。
3、執行指令階段(EX,execute),具體實現指令的功能 。CPU的不同部分被連接起來,以執行所需的操作 。
4、訪存取數階段(MEM,memory),根據指令需要訪問主存、讀取操作數,CPU得到操作數在主存中的地址,并從主存中讀取該操作數用于運算 。部分指令不需要訪問主存,則可以跳過該階段 。
5、結果寫回階段(WB,write back),作為最后一個階段,結果寫回階段把執行指令階段的運行結果數據“寫回”到某種存儲形式 。
結果數據一般會被寫到CPU的內部寄存器中,以便被后續的指令快速地存??;許多指令還會改變程序狀態字寄存器中標志位的狀態,這些標志位標識著不同的操作結果,可被用來影響程序的動作 。
6、在指令執行完畢、結果數據寫回之后,若無意外事件(如結果溢出等)發生,計算機就從程序計數器中取得下一條指令地址,開始新一輪的循環,下一個指令周期將順序取出下一條指令 。
什么是cpu負載?也許是散熱問題看看是不是風扇灰多了
CPU負載是什么意思?【cpu 使用率和負載的關系和區別 cpu負載高怎么解決】在CPU中可以理解為CPU可以并行處理的任務數量,就是CPU個數X核數 。
如果CPU Load等于CPU個數乘以核數,那么就說CPU正好滿負載,再多一點,可能就要出問題了,有些任務不能被及時分配處理器,那要保證性能的話,最好要小于CPU個數X核數X0.7 。
Load Average是指CPU的Load 。它所包含的信息是在一段時間內CPU正在處理及等待CPU處理的進程數之和的統計信息,也就是CPU使用隊列的長度的統計信息 。
Load Average的值應該小于CPU個數X核數X0.7,Load Average會有3個狀態平均值,分別是1分鐘、5分鐘和15分鐘平均Load 。如果1分鐘平均出現大于CPU個數X核數的情況,還不需要擔心;如果5分鐘的平均也是這樣,那就要警惕了;15分鐘的平均也是這樣,就要分析哪里出現問題,防范未然 。
cpu使用率過高的原因如下:
1、內存條不夠用,會導致CPU占用率過高 。
2、cpu的散熱不良 。使用電腦時間長會導熱硅脂可能干涸 。從而cpu的溫度過熱,不能同時兼容多種硬件 。
3、硬件上的灰塵太多 。一般是內存、網卡槽插、主板積塵太多,內存、網卡金手指,導致數據傳輸過程中出現問題,讓電腦耗費大量資源 。
4、系統中毒、軟件開得大多、網頁太多,是常見原因 。
5、鼠標右鍵使用時,也會大量占用CPU 。
6、另一個原因是windows系統的服務開啟太多,可關閉一些不常用的服務功能 。
CPU負載指的是什么?
CPU負載指的是CPU工作負荷,一般我們玩游戲的時候,CPU多數是100%或者占據一個核的,這樣就是CPU負載 。
每塊CPU的負載量也有區別,負載量也會受到溫度等其他物理因素而影響 。
關于cpu負載是什么意思和cpu負載高怎么解決的內容就分享到這兒!更多實用知識經驗,盡在 m.apearl.cn