關於 VPS 虛擬主機的負載能力

·

VPS Loading

Photo by Ehimetalor Akhere Unuabona on Unsplash

說到一台 VPS 虛擬主機的負載能力時,就要看 Linux 的 Load Average 的數值,要查看 Load Average 有幾個不同的方法,最簡單的方法是執行 update 指令,系統會返回一行信息,例如:load average: 0.00, 0.08, 0.52。

內容目錄:

  • Load average
  • 了解 Load Average
  • 多核 CPU 的 load average
  • 如何檢視 load average
  • VPS 可承受的負載
  • VPS 高負載處理

Load average

Linux 的 Load Average 的數字代表有多少個 process 在等待 CPU 及 Disk I/O 等資源運算。

簡單來說,這是在等待某些事情,某個時間內平均運行隊列中的阻塞進程數。

Load Average CPU 負載

load average: 0.00, 0.08, 0.52 代表的意思:

CPU 平均負戴:0.00 (1 分鐘),0.08 (5 分鐘),0.52 (15 分鐘)

對於一台只有一個核心的單處理器系統,以 Load Average 15 分鐘來看,若為 1.00 時表 CPU 滿負載運行,1.50 時表示 CPU 超載 50%,如果是 0.8,表示 CPU 並未超載,只用了 80%。

並且值越小越好,數值越大,可能就表明 VPS 伺服器有問題或者已經是高負載了。

了解 Load Average

以下這張圖,可以簡單說明:

Load Average CPU 負載
圖片取自於網路

假設我們的 VPS 虛擬主機是 1 個單核的 CPU,VPS 上所有的運算都是靠這顆單核的 CPU 來完成的,將其比喻成一座大橋且是單車道,所有的車輛都必須從這個單車道的橋上通過。

  • 如果 CPU 負載為 0:則意味著大橋是一兩車也沒有。
  • 如果 CPU 符合為 0.5:則意味著帶橋上一半的路段都有車。
  • 如果 CPU 負載為 1.0:意味著大橋上佈滿了車輛,但此時所有的車輛都是穩定前行的,此時的大橋是還是比較通暢的。
  • 如果 CPU 負載為 1.7:則表明大橋已經填滿了車輛,而且後面已經開始排隊等著上橋的車輛。

所以,也就是說只要是負載大於 1.0,就表明有車輛需要等待排隊上橋了,負載越大,後面車輛等待的時間就越長。

多核 CPU 的 load average

同理,多核 CPU 意味著系統的處理能力翻 N 倍,如單核 CPU 的滿載值是 1.0,双核 CPU 的滿負載值則是 2.0,所以,系統滿負載值就等於系統 CPU 個數乘以核心數的總和。

我們可以用指令來查看您的 VPS 主機的 CPU 是多少核心:

cat /proc/cpuinfo
或
grep -c 'model name' /proc/cpuinfo

如何檢視 load average

上面說到 CPU 負載值 load average: 0.00, 0.08, 0.52,那我們要參考哪個呢?

1 分鐘和 5 分鐘內系統負載較高可能是暫時波動,如果 15 分鐘的平均負載值,一直處於一個較高數值時就需要注意了,即時查看問題,以保持我們的 VPS 虛擬主機運行順暢。

以 CPU 單核心來說,15 分鐘的平均負載值超過 2 時,您的主機應該隨時會崩潰。

VPS 可承受的負載

實際代管 VPS 案例中,最常被問到一個問題,一台 VPS 虛擬主機,可以安裝多少個網站

這個問題,根本沒有答案。

有的 2G VPS 跑 2 至 3 個網站順順的,有的 4G VPS 只能跑 1 個網站,沒有一定的標準。

這完全要看網站設計師或網站本身主人,對建置一個網站的觀念是否正確來判斷了。

以 WordPress 來說,其優點是有許多的外掛程式可使用,可以讓 WordPress 建置成各種功能性網站,但是,敗也是這些外掛,造成外掛之間的衝突,增加了主機 CPU 的負載,網站運行緩慢。

一台 4G RAM CPU 2 核心的 VPS 主機,建置 10 個網站,在沒有任何流量之下,只進入 WordPress 控制台建置網站時,因外掛的使用不正確,造成主機高負載,load average 平均 15 分鐘高達 6.86,已面臨快當機狀態了,而開啟一個網頁時間,需要 10 ~ 15 秒的時間,如下圖:

CPU 高負載

如果,這是一個開始生產的網站,不用 30 個 IP 流量進入,這個階段,還沒有到處理高流量的優化時,這台 VPS 主機應該會馬上崩潰 (當機)。

VPS 高負載處理

當設計師不當使用外掛時,最快的處理方法,安裝 Query Monitor 外掛,找出衝突或拖慢系統的外掛,將它停用。

https://wordpress.org/plugins/query-monitor/
衝突的外掛 Plugin

這些問題外掛停用後,主機的負載就會慢慢恢復正常,網頁開啟的速度就會正常。

最終的問題,還是要回歸到設計師 (網站建置者) 是否可以精簡使用外掛,安裝「必要」的外掛。

結語

「必要的外掛」有點太廣泛,您可以說每個外掛都是必要性,不可停用,結果就是再加大 VPS 主機效能,升級至 8G / CPU 4 核心或 16G 以上的主機,花更多的主機託管費用,這就考驗網站建置者的經驗、專業了。

WordPress 的外掛可以讓網站萬萬都能,也可以讓網站萬萬都不能。

load average 的高負載,不一定都是外掛造成的,但是外掛用的適宜,卻是一個很重要的因素。

您對 load average 的看法是什麼? 歡迎利用回覆告訴我!

Comments

在〈關於 VPS 虛擬主機的負載能力〉中有 5 則留言

  1. 「host」的個人頭像

    感謝分享。覺得站長這句”但是外掛用的適宜,卻是一個很重要的因素”講得很棒,真的有需要用的外掛再安裝就好了。

    1. 「yungke」的個人頭像

      我看過不少網站外掛數量達 100 個上下,這意味著客戶的需求真的很多,這時應該以客製化方向著手,而不是找更多的外掛來符合客戶的需求。
      想想看,這麼多的外掛,而又不是同一個開發商的外掛,要在 WordPress 下外掛都和平相處,那是多難啊~

  2. 「ヤンヤン」的個人頭像
    ヤンヤン

    「多核 CPU 意味著系統的處理能力翻 N 倍」
    其實這句話實際上不會成立,會翻倍,但翻倍程度為 < N 倍

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Hey, 想嘗試 Kinsta 主機嗎?

18748

Kinsta 高效能主機

wPowered Starter 方案

馬上訂購

18749
Your Mastodon Instance