Cgroups Manager (Linux)

虛擬主機上的某個網站可能會消耗所有的系統資源且影響其它網站的性能。該問題被稱之為“吵鬧的鄰居問題”。

Plesk Cgroups Manager 擴展能夠通過管理 CPU、RAM、磁片讀取和寫入頻寬的消耗來有效解決該問題。

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

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

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

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

在本小節:

要求

Installation

配置 Cgroups Manager

限制資源消耗

對資源消耗的監控和通知

限制

禁用Cgroups Manager

 

要求

Plesk 許可證

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

  • Plesk Web Pro
  • Plesk Web Host

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

擴展許可證

Cgroups Manager 是一個付費擴展。您可以單獨購買也可以通過主機包形式購買。

作業系統和 init 系統

Cgroups Manager 適用於以下系統:

  • Debian 8
  • Ubuntu 16.04
  • CentOS 7
  • Red Hat Enterprise Linux 7

默認所有這些版本都使用名為 systemd 的 init 系統,這正是 Cgroups Manager 所需要的。Plesk 也可以安裝在帶有名為 System V 的其它 init 系統的 Debian 上。若要查看當前的 init 系統,請在命令列介面運行 cat /proc/1/comm

注意:如果您在帶有System V的Debian上安裝Cgroups Manager,Plesk 將會使用systemd進行替換。在安裝更改生效後將需要手動重啟系統。

在 Debian 8 上使用的局限性

預設情況下,在 Debian 8 系統上使用 Cgroups Manager 功能會有一定限制,因為其內核不支援 cgroups CPU 和 RAM 資源使用限制。瞭解更多 有關在 Debian 8 上使用 Cgroups Manager 的局限性以及相應的解決方案。

在 Virtuozzo 6 和 7上使用的局限性

Virtuozzo 6 上的Plesk 只能管理RAM,而Virtuozzo 7 上的Plesk 可以管理RAM 和 CPU,但不能管理磁片 I/O。

如果您的系統不符合一些要求,您可以將Plesk遷移到符合這些要求的系統上。

 

Installation

To enable the Cgroups Manager:

  1. Install the component Resource Controller (Cgroups) using the Plesk Installer:
    1. Go to Tools & Settings
    2. Click the Updates and Upgrades link
    3. Click the Add/Remove Components link
    4. Select the "Resource Controller (Cgroups)" and hit Continue.

      Note: If the required component is missing from the list of available components, make sure that your system meets the requirements.

  2. Start the component:
    1. Go to Tools & Settings
    2. Click the Services Management link
    3. Start the service "Resource Controller (Cgroups)".
 

配置 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/秒

如果伺服器有多個 CPU 核心,可用的 CPU 容量則等同於 100% * 乘以 CPU 核心數量。例如,如果您的伺服器有 個 CPU 核心,可用的 CPU 容量則是 400%。

2

系統如何管理資源消耗

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

資源已超額使用 操作 影響

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. 請轉入 工具與設定 > 通知。
  2. 在CPU、RAM和磁片 I/O (Cgroups) 旁邊選擇所需的收件人。

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

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

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

 

限制

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

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

禁用Cgroups Manager

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

[resourceController]
enabled = false