文章目錄
如果你的計算機(電腦)速度很慢,你可能需要檢查是否系統高負載?
最近,有位網絡營銷人員表示,他所負責的電商網站,前段時間出現狀況無法訪問……
該網站基於WordPress建立站,在Linux VPS服務器搭建。
- Linux VPS服務器的配置,只有1個CPU核心數、1GB RAM內存。
登錄Linux VPS服務器後台查看問題,發現load average平均負載非常高,達到10.0以上。
在Linux系統上,我們通常使用uptime
命令來查看它(w
命令和top
命令也可用)。
此外,它們也適用於Apple的Mac電腦。
發現load average負載過高問題,就想辦法解決問題!
- 遇到load average負載過高的情況,陳溈亮給予的解決方案是提高CPU核心數。
- 然後,果斷將配置升級到2個CPU核心,GB 8 RAM內存。
- 很快就解決了load average負載過高的狀況。
一、檢查系統負載
在SSH終端窗口中,鍵入以下命令▼
uptime
系統將返回一行信息 ▼
該行的後半部分顯示“load average”,表示“系統的平均負載”
- 內有3個數字,我們能由此確定係統負載是大還是小?
為什麼有3個數字?
- 它們代表系統的平均負載,分鐘為1分鐘,5分鐘和15分鐘。
- 如果繼續查看,它還會告訴你當CPU完全空閒時,平均負載為0;
- 當CPU工作負載飽和時,平均負載為1。
CPU是什麼意思?
- CPU就是中央處理器。
- (英文Central Processing Unit,CPU)
- CPU是一台計算機的運算核心和控制核心。
CPU使用率
- CPU使用率是一段時間內,CPU使用狀態的統計信息。
- 該指示顯示CPU使用率(CPU被佔用的情況)。
- 如果CPU長時間佔用,則需要考慮CPU是否過載。 ?
- 長期過載操作是對機器本身的一種損害。
- 因此,必須將CPU利用率控製到一定比例,以確保機器的正常運行。
Load Average是什麼?
- Load Average是CPU負載,它包含的信息是一段段內CPU使用狀態的統計。
- 它是CPU處理和等待CPU處理一段時間的進程數之和的統計信息。
- 即CPU使用的隊列長度統計信息。
顯然,“load average”的值越低,例如0.2或0.3,意味著計算機(電腦)的工作量越小,系統負載越輕。
- 但是,什麼時候能看到系統負載很嚴重?
- 到底是等於1時?或是等於0.5?還是等於1.5?
- 如果這三個值在1分鐘,5分鐘和15分鐘內不同,我該怎麼辦?
二、類比
要確定係統負載是否過重,你必須了解load average(平均負載)的真實含義。
接下來,陳溈亮將會用最通俗易懂的語言,來解釋這個問題。
首先,我們假設在最簡單的情況下,你的計算機只有一個CPU,所有運算操作必須由該CPU完成。
讓我們將這個CPU的load Average,想像成一座橋樑:
橋上只有一條車道,所有車輛都必須越過這條車道。
(顯然,這座橋只能用於一個方向。)
當系統負載為0時,表示橋上沒有汽車 ▼
系統負載為0.5,這意味著橋上有一半的汽車 ▼
系統負載為1.0,這意味著橋的所有部分都有汽車,這意味著橋是“滿的” ▼
- 但必須指出的是,在此橋樑仍然可以順利通過。
系統負載為1.7,這意味著車輛太多,橋樑已滿(100%)。
- 等待橋樑的車輛佔橋樑車輛的70%。
通過類比,以此類推,系統負載為2.0:
- 意味著有許多在等待的車輛和橋面一樣多。
- 系統負載為3.0,意味著等待橋樑的車輛是橋面的兩倍。
- 當系統負載大於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是一個關鍵值。
如果超過此值,則係統不處於最佳狀態。你必須干預。
三、系統負載load average多少合適?
1.0是系統負載的理想值嗎?
不一定,系統管理員往往會留下一點空間。
當此值達到0.7時,你應該知道是這樣的:
- 當系統負載繼續大於0.7時,你必須開始調查問題,並防止情況惡化。
- 當系統負載繼續大於1.0時,你必須找到解決方案,並降低該值。
- 當系統負載達到5.0時,表明系統存在嚴重問題,並且長時間沒有響應,或幾乎崩潰。你不應該讓系統達到此值。
四、多個CPU處理器
以上是假設你的計算機(電腦)只有一個CPU。
如果你的計算機(電腦)安裝了2個CPU,會發生什麼?
2個CPU意味著計算機(電腦)的處理能力提升了一倍,並且可以同時處理的進程數量翻了一倍。
陳溈亮在此仍然使用大橋來做類比,2個CPU意味著大橋有2個通道,通車容量加倍 ▼
- 因此,2個CPU表示系統負載能達到2.0,並且每個CPU達到100%的工作負載。
- n.0個CPU的電腦,可接受的系統負載最大為n.0個CPU。
五、多核CPU處理器
芯片供應商通常在1個CPU內部,包含多個CPU內核,被稱為“多核CPU”。
在系統負載方面,多核CPU類似於多CPU。
因此,在考慮系統負載時,必須考慮你的計算機有多少個CPU?並且每個CPU都有多少個核心?
然後,通過將系統負載除以核心總數,只要每個核心的負載不超過1.0,計算機就會如常運行。
如何知道一台電腦有多少CPU核心?
使用命令,允許你查看CPU信息 ▼
cat /proc/cpuinfo
直接返回CPU的核心總數的命令▼
grep -c 'model name' /proc/cpuinfo
六、load average時間該看哪個?
最後一個問題:
“load average”平均負載,總共返回三個平均值:
- 1分鐘系統負載、5分鐘系統負載、15分鐘系統負載。
我應該參考哪個值?
- 如果系統負載僅在1分鐘內大於1.0,則其他2個時間段小於1.0,這表明這只是暫時現象,問題並不嚴重。
- 如果平均係統負載在15分鐘內(提高CPU核心數量後)大於1.0,則問題仍然存在,而不是暫時現象。
- 因此,你應該主要觀察“15分鐘系統負載”作為計算機(電腦)如常運行的指示器。
以下是更多關於top命令/CPU使用率/load average計算方法 ▼
VPS負載太高怎麼辦?
現在我的網站無法訪問,因為負載太高,怎麼辦?
top – 20:44:30 up 12 min, 1 user, load average: 2.21, 8.39, 6.48
- 你的服務器是自我管理的,你應該做的是通過SSH檢查你的服務器本身。
- 檢查它正在運行什麼?什麼進程等等?
- 如果需要,請嘗試重新啟動服務器。
- 要是重啟服務器後,還是負載過高,請嘗試識別負載過高的進程,停止它。
- 如有必要,單獨重新啟動進程(而不是服務器)。
- 或諮詢客服“為何VPS/服務器負載過高”後,仍然無計可施,最終唯有提高服務器配置了。
如何選擇合適的服務器配置?點擊以下鏈接查看日均1萬IP服務器解決方案 ▼
希望陳溈亮博客( https://www.chenweiliang.com/ ) 分享的《Linux Load Average過高多少合適? CPU Load使用率檢查》,對您有幫助。
歡迎分享本文鏈接:https://www.chenweiliang.com/cwl-1027.html
歡迎加入陳溈亮博客的Telegram 頻道,獲取最新更新!
📚 這份指南蘊含價值巨大,🌟難逢的機遇,切勿錯失良機! ⏰⌛💨
喜歡就分享和按贊!
您的分享和按贊,是我們持續的動力!