概要: A website on a shared hosting can consume all system resources and disrupt the performance of other websites. This issue is known as the 「noisy neighbor problem」. Plesk Cgroups Manager is an extension that helps you address this issue by managing the consumption of the CPU, RAM, and disk read and write bandwidth by customers.

In this topic, you will learn how to install and configure the Plesk Cgroups Manager extension, and also how to use it to monitor and control resource consumption by customers.

Note: This issue only affects Plesk servers used for shared hosting. If you are running a Plesk Web Admin server, this topic is unlikely to be of interest to you.

您可以對每個系統資源 Cgroups Manager 執行以下操作:

  • 設定可消耗資源的最大容量(限制)
  • 監控消耗的資源量,並在超過某個水準(閾值)時發送郵件通知。

您可以配置 Cgroups Manager 並在以下幾個層面對可消耗的資源設限:

  • 服務方案,可影響方案下的所有訂閱。
  • 單個訂閱。

要求

Plesk 許可證

以下各 Plesk 版本 可使用Cgroups manager:

  • Plesk Web Pro
  • Plesk Web Host

如果您正使用Web Admin方案,但是想要管理網站的資源配置消耗,可考慮升級到 Web Pro 將網站分佈到多個訂閱上。

局限性

  • Cgroups Manager 無法限制 Plesk 擴展和自訂手動安裝的服務所消耗的資源。這對所有的 Plesk 擴展有效:LiteSpeed也不例外。
  • Virtuozzo 7 容器中的 Cgroups Manager 可以管理RAM記憶體和CPU,但不能管理磁片I/O。Virtuozzo 虛擬機器中的Cgroups Manager 沒有此限制。若要無限制地使用 Cgroups Manager,請 將您的Plesk從Virtuozzo 7 容器遷移到其它作業系統。

安裝

啟用 Cgroups Manager:

  1. 使用Plesk安裝程式安裝資源調度控制器(Cgroups) 元件:

    1. Go to Tools & Settings > Updates (under 「Plesk」) > Add/Remove Components.

    2. 選擇 「資源調度控制器 (Cgroups)」 並點按 繼續。

      備註: 如果可用元件清單中沒有所需的元件,請確認您的系統是否符合要求。

  2. 啟動組件:

    1. 進入 工具與設定
    2. Click Services Management (under 「Server Management」)
    3. Start the 「Resource Controller (Cgroups)」 service.

配置 Cgroups Manager

警示: 對 Cgroups Manager不正確的配置可能會導致託管的網站變慢甚至不可用。請仔細閱讀並充分理解了該主題中的說明後再進行任何更改。

您可以在以下各個範圍配置Cgroups Manager:

  • 服務方案,可影響方案下的所有訂閱。
  • 單個訂閱。

訂閱範圍的設定會覆蓋服務方案範圍的設定。不能使用附加方案修改 Cgroups Manager 設定。

一旦安裝和啟動服務,則可以使用以下配置工具:

工具 服務方案 訂閱
Plesk 面板(使用服務提供者視圖)
  1. 轉入 服務方案
  2. 點按您想要為其配置Cgroups Manager的服務方案。
  3. 打開 「RAM、CPU、磁片 I/O」 標籤。
  1. 轉入 訂閱
  2. 點按您想要為其配置Cgroups Manager的訂閱。
  3. 點按 自訂 > 打開 「RAM、CPU、磁片 I/O」 標籤。
Plesk CLI 使用 service_plan 工具的 -cgroups* 選項。 使用 subscription_settings 工具的 -cgroups* 選項。
Plesk XML API 參閱 管理服務方案 上的文檔。 參閱 管理訂閱 上的文檔。

限制資源消耗

設定限制

每項被管理的資源首先可實現的設定是限制值。每項被管理的資源有自己的限制值。默認不會設定限制值,也就是不會限制資源。

各個訂閱可以分享限制設定,但是每個訂閱都有自己的限制。

如果對給定訂閱的某項資源設定了限制:

  • Cgroups Manager則會監控該訂閱系統使用者擁有的所有進程。而且這些進程消耗的每項資源量不能超過相應的限制值。
  • 如果某項訂閱達到了其限制,作業系統會根據資源類型進行相應措施。
  • 即使伺服器上有可用的相應類型的資源(CPU限制週期,可用的 RAM記憶體等等),訂閱也無法超過限制。

如果對給定訂閱的某項資源沒有設定限制:

  • 訂閱的各個進程能夠盡可能地使用資源。
  • 所有訂閱的各個進程共用資源:
    • CPU 時間和磁片I/O幾乎被均等共用。
    • RAM記憶體根據進程請求被共用。

這兩種情況都無法保證訂閱能夠接受到最低可用的資源量。

允許設定的限制值

限制設定可有以下值:

設定 衡量單位 可用值
CPU限制 CPU 時間的百分比,其中 100% 是指完整使用一個 CPU 核心 不超過100% * CPU 核心的數量
RAM記憶體限制 位元組 不少於1MB
磁片輸入(寫入)速度 位元組/秒 不少於1MB/秒
磁片輸出(讀取)速度 位元組/秒 不少於1MB/秒

If the server has multiple CPU cores, the available CPU amount is equal to 100% * the number of CPU cores. For example, if your server has two CPU cores, the available CPU amount is 200%.

image limit cpu

系統如何管理資源消耗

當某個訂閱的各個進程使用某項資源允許的最大容量時,作業系統會根據資源類型採取相應的措施。

資源已超額使用 操作 影響
CPU、磁片讀取和寫入頻寬 系統會限制該訂閱的各個進程使用超出限制的資源量。 相應的網站可能會變慢需要更長的回應時間。
RAM 記憶體 當某個訂閱的各個進程達到RAM限制時,系統會終止消耗最多記憶體的進程。 相應的網站可能會在一定時間內不可用且對各個請求予以HTTP代碼5xx的回應。

對資源消耗的監控和通知

設定監控和通知

一旦對某項資源設定了限制,則還可以配置 Plesk 監控該資源的消耗情況。

若要打開監控,請設定以下值:

  • 閾值(Plesk面板中的」當超過即通知」項)。
  • 時段。

如要關閉監控,請移除相應的閾值。.

允許設定的監控值

監控設定可有以下值:

設定 衡量單位 可用值
CPU限制 CPU 時間的百分比,其中 100% 是指完整使用一個 CPU 核心 不超過CPU 限制值
RAM記憶體限制 位元組 不超過1MB 且不超過RAM 限制值
磁片輸入(寫入)速度 位元組/秒 不超過1MB/秒且不超過磁片寫入限制值
磁片輸出(讀取)速度 位元組/秒 不超過1MB/秒且不超過磁片讀取限制值
檢查時段(每項資源) 300 (5 分鐘), 3600 (1 小時) 或 86400 (24 小時)

系統如何執行監控

如果您對一項或多項資源啟用監控,Cgroups Manager 則會開始監控這些資源的消耗情況。如果您在訂閱範圍啟用資源監控,將會監控該訂閱的資源使用情況。如果您在服務方案範圍啟用資源監控,將會監控基於該服務方案的所有訂閱的資源使用情況:

  1. 每隔 分鐘Cgroups Manager則會計算訂閱的資源平均消耗量,檢查是否等於或超過 閾值
  2. 每個 時段 Cgroups Manager 都會檢查訂閱在上一個 時段 內已超過 閾值 的次數。
    • 如果訂閱在一個 時段 內所有間隔都超過了 閾值 ,Cgroups Manager 則會發送郵件通知。
    • 如果此情況持續超過一個 時段 ,則不會額外再發送通知。

監控的示例

該示例將幫助您更好地理解 Cgroups Manager 執行監控和觸發通知的過程和方式。

假設有一個訂閱方案 P,配備以下設定:

設定
CPU限制 200%
CPU閾值 160%
CPU 檢查時段 1 小時

100% 表示完整使用的一個CPU 核心。

該方案下有兩個訂閱:A 和 B。

訂閱A 有一個消耗CPU較多的任務,每個小時都運行,需10分鐘。在這10 分鐘內,該訂閱的各個進程消耗超過 160% 的 CPU 時間。其它時間,該訂閱消耗少於 160% 的 CPU 時間。對於通知來說是否達到限制值不重要。

訂閱B的網站負載較重。該訂閱的各個進程總是會消耗超過160% 的 CPU 時間。

Cgroups Manager 會每隔5分鐘計算平均的消耗量。然後,一個小時結束時會有以下結果:

  • 訂閱A 在12個間隔中有兩個間隔超過了閾值,Cgroups Manager 將不會發送任何通知。
  • 訂閱B 在所有的12 個間隔都超過了閾值。Cgroups Manager 將會發送通知,但是如果負載持續超過閾值不會重複發送通知。

收件人和通知內容

若要選擇誰將接收通知,請如下操作:

  1. 進入 工具與設定 > 通知(在 「Plesk」 下)。
  2. 在CPU、RAM和磁片 I/O (Cgroups) 旁邊選擇所需的收件人。

可根據一個範本創建每個通知資訊的內容。若要讀取和編輯範本,請如下操作:

  1. 進入 工具與設定 > 通知(在 「Plesk」 下)。
  2. 點按靠近CPU、RAM和磁片 I/O (Cgroups) 的最右邊的按鈕。

欲瞭解更多資訊,請參閱 自動郵件通知 的文檔。

整合 Cgroups Manager 和 Monitoring 擴展

您可以將Cgroups Manager與 Monitoring 擴展整合。這樣客戶就能夠看到他們的訂閱消耗了多少資源,Plesk 管理員也能夠查看和比較多達10個訂閱之間的資源使用情況。

瞭解如何整合 Cgroups Manager 和 Monitoring 擴展

限制

無法通過資源管理解決某些技術和業務上的問題。

  • 較早超額使用資源的客戶更有可能出現性能降低的情況。
  • Cgroups Manager 不會計算和限制使用Phusion Passenger的Ruby、Python和Node.js web應用。

禁用Cgroups Manager

如要隱藏 Cgroups Manager 功能,請添加以下行到 panel.ini 文件:

[resourceController]
enabled = false