Cgroups Manager(Linux)

共用ホスティングでは、1つのウェブサイトがシステムリソースをすべて消費することや、他のウェブサイトのパフォーマンスを低下させることができます。これを「noisy neighbor」問題といいます。

Plesk Cgroups Manager を利用して、CPU、RAM、ディスク I/O 帯域幅の消費を管理することにより、この問題に対処できます。

各システムリソースに対し、Cgroups Manager で以下を実行できます。

  • 消費リソースに最大量(上限)を設定する。
  • 消費リソース量を監視し、特定のレベル(しきい値)を超えたらメール通知を送信する。

Cgroups Manager を構成し、以下のレベルで消費リソースに制限を設定できます。

  • サービスプラン:このプラン下のすべての契約に影響があります。
  • 単一の契約

このセクションの内容:

要件

インストール

Configuring the Cgroups Manager

リソース消費を制限する

リソース消費の監視と通知

制約事項

Cgroups Manager を無効にする

 

要件

Plesk ライセンス

Cgroups manager は、以下の Plesk エディションで使用できます。

  • Plesk Web Pro
  • Plesk Web Host

Web Admin プランを使用しており、ウェブサイトのリソース消費を管理したい場合は、Web Pro にアップグレードして複数の契約にウェブサイトを分散させることを検討してください。

拡張ライセンス

Cgroups Manager は有料の拡張です。単独で購入することも、ホスティングパックの一部として購入することもできます。

OS および init システム

Cgroups Manager は、以下の OS で使用できます。

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

デフォルトで、これらすべてのディストリビューションは Cgroups Manager に必要な systemd という init システムを使用します。ただし、他の init システム System V を使用する Debian に Plesk をインストールすることもできます。現在の init システムを確認するには、コマンドラインインターフェースで cat /proc/1/comm を実行します。

注:System V を使用する Debian に Cgroups Manager をインストールすると、Plesk がこれを systemd に置き換えます。変更を有効にするには、インストール後にシステムを再起動する必要があります。

Debian 8 の制約事項

デフォルトで、Cgroups Manager は Debian 8 で機能に制約があります。これは、カーネルが cgroups の CPU および RAM リソース使用量制限をサポートしないというものです。Debian 8 での Cgroups Manager についての詳細と可能な解決策を確認してください。

Virtuozzo 6、7 の制約事項

Virtuozzo 6 上の Plesk で管理できるのは RAM のみです。Virtuozzo 7 上の Plesk では RAM と CPU を管理できますが、ディスク I/O は管理できません。

システムが一部の要件を満たさない場合、要件を満たすシステムに Plesk を移行できます。

 

インストール

Cgroups Manager を有効にするには:

  1. Plesk インストーラを使用して、リソースコントローラ(cgroups)コンポーネントをインストールします。
    1. [ツールと設定]を開きます。
    2. [アップデートとアップグレード]リンクをクリックします。
    3. [コンポーネントを追加/削除]リンクをクリックします。
    4. 「リソースコントローラ(cgroups)」を選択して[続行]をクリックします。

      注:使用可能なコンポーネントのリストに必要なコンポーネントが表示されない場合、システムが要件を満たしていることを確認してください。

  2. コンポーネントを起動します。
    1. [ツールと設定]を開きます。
    2. [サービス管理]リンクをクリックします。
    3. 「リソースコントローラ(cgroups)」サービスを起動します。
 

Configuring the Cgroups Manager

Caution: Incorrect configuration of Cgroups Manager can make hosted websites slower or even unavailable. Please make sure that you have read and understood the instructions in this topic before making any changes.

You can configure Cgroups Manager on the following levels:

  • For a service plan, affecting all subscriptions under the plan.
  • For a single subscription.

Settings on the subscription level override those on the service plan level. Add-on plans can not be used to modify the Cgroups Manager settings.

Once you install and start the service, the following configuration tools become available:

Tool Service Plan Subscription

Plesk Panel (use the Service Provider view)

  1. Go to Service Plans > open the Hosting Plans tab.
  2. Click the service plan for which you want to configure Cgroups Manager.
  3. Open the RAM, CPU, Disk I/O tab.
  1. Go to Subscriptions.
  2. Click the subscription for which you want to configure Cgroups Manager.
  3. Click Customize > open the RAM, CPU, Disk I/O tab.

Plesk CLI

Use the -cgroups* options of the service_plan utility.

Use the -cgroups* options of the subscription_settings utility.

Plesk XML API

See the documentation on Managing Service Plans.

See the documentation on Managing Subscriptions.

 

リソース消費を制限する

制限をセットアップする

それぞれの管理対象リソースに対して可能な最初の設定は、制限値です。それぞれの管理対象リソースは、独自の制限値を持ちます。デフォルトで、制限値は設定されていません。つまり、リソースは無制限です。

複数の契約で制限設定を共有できますが、それぞれの契約の制限は独立しています。

特定の契約でリソースに制限を設定する場合:

  • Cgroups Manager はこの契約のシステムユーザが所有するすべてのプロセスを監視します。これらのプロセス全体で消費できるのは、各リソースの制限値を超えないリソース量までです。
  • 契約が制限値に達すると、OS はリソースの種類に応じた処理を行います。
  • たとえサーバ上で該当する種類のリソースに空きがあっても(アイドル CPU サイクル、空き RAM など)、契約は制限値を超えられません。

特定の契約でリソースに制限を設定しない場合:

  • 契約のプロセスは、リソースを使用できるだけ使用することができます。
  • リソースはすべての契約のプロセスによって共有されます。
    • CPU 時間とディスク I/O はほぼ等しく共有されます。
    • RAM はプロセスからの要求どおりに共有されます。

いずれの場合も、使用可能な最低限のリソース量が契約に割り当てられる保証はありません。

制限に設定できる値

制限には以下の値を設定できます。

設定 測定単位 使用可能な値

CPU リミット

CPU 時間(%)- 100% の場合、CPU コアはフルに使用中

100% 以内 * CPU コア数

RAM リミット

バイト

1MB 以内

ディスク入力(書込)速度

バイト毎秒

毎秒 1MB 以内

ディスク出力(読取)速度

バイト毎秒

毎秒 1MB 以内

サーバに複数の CPU コアが搭載されている場合、使用可能な CPU 使用率は「100% * CPU コア数」に等しくなります。たとえば、サーバに 4 つの CPU コアが搭載されている場合、使用可能な CPU 使用率は 400% です。

2

システムでのリソース消費管理方法

特定の契約のプロセスに使用されるリソース量が許可される最大値に達すると、OS はリソースの種類に応じた処理を行います。

利用超過が発生したリソース アクション 影響

CPU、ディスク I/O 帯域幅

システムはこの契約のプロセスに対し、許可される値以上にリソースを使用しないよう制限します。

該当するウェブサイトの動作が遅くなり、応答時間が長くなります。

RAM

特定の契約のプロセスが RAM リミットに達すると、システムは最も目盛りを消費しているプロセスを強制終了します。

しばらくの間、当該ウェブサイトが機能しなくなり、リクエストに HTTP コード 5xx で応答します。

 

リソース消費の監視と通知

監視と通知をセットアップする

リソースにリミットを設定したら、リソースの消費を監視するように Plesk を構成できます。

監視をオンにするには、以下の値を設定します。

  • しきい値(Plesk パネルの「超過したら通知」)
  • 期間

監視をオフにするには、該当するしきい値を削除します。

監視に設定できる値

監視には以下の値を設定できます。

設定 測定単位 使用可能な値

CPU リミット

CPU 時間(%)- 100% の場合、CPU コアはフルに使用中

CPU リミット値以内

RAM リミット

バイト

1MB 以上、RAM リミット値以内

ディスク入力(書込)速度

バイト毎秒

毎秒 1MB 以上、ディスク書込制限値以内

ディスク出力(読取)速度

バイト毎秒

毎秒 1MB 以上、ディスク読取制限値以内

チェック期間(任意のリソース)

300(5 分)、3600(1 時間)、または 86400(24 時間)

システムによる監視方法

1 つ以上のリソースに対してリソース監視を有効にすると、Cgroups Manager がリソース消費の監視を始めます。契約レベルでリソース監視を有効にすると、この契約のリソース使用量が監視されます。サービスプランレベルでリソース監視を有効にすると、このサービスプランに基づくすべての契約のリソース使用量が監視されます。

  1. Cgroups Manager は 5 分ごとに契約の平均リソース消費をカウントし、それがしきい値以上ではないかをチェックします。
  2. Cgroups Manager は期間ごとに、契約が前回の期間内に何回しきい値を超えたかをチェックします。
    • 契約が期間内のすべてのインターバルでしきい値を超えた場合、Cgroups Manager はメール通知を送信します。
    • これが複数の期間で発生しても、通知は再送されません。
監視の例

この例により、Cgroups Manager で監視と通知のトリガがどのように行われるか理解を深めることができます。

以下の設定の契約プラン P があるとします。

設定

CPU リミット

200%

CPU しきい値

160%

CPU チェック期間

1 時間

すでに説明したように、100% とは CPU コアがフルに使用されている状態です。

プランの下には、A と B という 2 つの契約があります。

契約 A では CPU を多用するタスクが 1 時間に一度、約 10 分間にわたって行われます。この 10 分間、契約のプロセスは CPU 時間を 160% 以上消費します。他の時間に消費される CPU 時間は 160% 未満です。リミット値に達しているかどうかは通知に関係ありません。

契約 B のウェブサイトは過負荷状態です。この契約のプロセスは常に CPU 時間を 160% 以上消費します。

Cgroups Manager は 5 分ごとに平均消費量をカウントします。1 時間終了時の結果は次のとおりです。

  • 契約 A は 12 インターバルの間に 2 回しきい値を超えました。Cgroups Manager は通知を送信しません。
  • 契約 B は 12 インターバルすべてでしきい値を超えました。Cgroups Manager は通知を送信しますが、過負荷状態が続いても通知を再送しません。
通知の受信者と内容

通知の受信者を選択するには:

  1. [ツールと設定]>[通知]に進みます。
  2. [RAM、CPU、ディスク I/O(cgroups)]の隣で、必要な受信者を選択します。

それぞれの通知メッセージの内容はテンプレートを基に作成されます。テンプレートを読み込み、編集するには:

  1. [ツールと設定]>[通知]に進みます。
  2. [RAM、CPU、ディスク I/O(cgroups)]の隣で、右端のボタンをクリックします。

詳しくは、本書内の「自動メール通知」を参照してください。

 

制約事項

一部の技術的な問題や業務上の問題は、リソース管理では解決できません。

  • 早期にリソースを利用超過した顧客は、パフォーマンスが低下する可能性があります。
  • Cgroups Manager は、Phusion Passenger を使用する Ruby、Python、Node.js ウェブアプリケーションのリソースは計算せず、リソースを制限しません。
 

Cgroups Manager を無効にする

Cgroups Manager の機能を非表示にするには、panel.ini ファイルに次の行を追加します。

[resourceController]
enabled = false