IBM Cloud Docs
ディスク、メモリー、および CPU のスケーリング

ディスク、メモリー、および CPU のスケーリング

IBM Cloud® Messages for RabbitMQ デプロイメントで使用可能となるリソースの量は、ワークロードやデータのサイズに合わせて手動で調整することができます。

リソースの内訳

Messages for RabbitMQ デプロイメントにはクラスター内に 3 つのデータ・メンバーがあり、リソースが 3 つのメンバーすべてに等しく割り振られます。 例えば、RabbitMQ デプロイメントの最小ストレージは 3072 MB で、これはメンバーごとの初期サイズ 1024 MB に相当します。 RabbitMQ デプロイメントの最小 RAM は 3072 MB です。これは、メンバーごとに 1024 MB の初期割り振りに相当します。

請求は、サービスに割り振られているリソースの_合計_ 量に基づいて算出されます。

ディスク使用量

ストレージは、サービスに割り振られているディスク・スペースの量を表します。 割り振られたスペースが各メンバーに均等に分配されます。 データは、RabbitMQ クラスター内の 3 つのデータ・メンバーで複製されるので、使用するストレージの合計量はデータ・セットのサイズの約 3 倍になります。

ディスクの割り振りは、ディスクのパフォーマンスに影響を与えます。ディスクが大きいほどパフォーマンスも高くなります。 ディスクの 1 秒あたりの入出力操作 (IOPS) のベースライン・パフォーマンスは、GB ごとに 10 IOPS です。 IOPS 制限に達すると、スループットとメッセージ処理の遅延が一貫して発生します。これは、ディスク・スペースを拡大することで軽減できます。

ストレージをスケールダウンすることはできません。 データ・セットのサイズが減少した場合は、バックアップして新しいデプロイメントにリストアすることによって、スペースを復元できます。

RAM

RabbitMQ は、使用可能メモリーの 40% を使用していることを検出すると、アクティビティーの急増時にメモリー使用量が制御不能な状態で拡大しないように、パブリッシュを抑制します。 定期的に制限に達する場合は、デプロイメントに割り振るメモリーを増やすことができます。 合計割り振りにメモリーを追加すると、各メンバーにメモリーが均等に追加されます。

キューのリバランス

1 つの RabbitMQ ノードが別のノードよりもかなり多くのリソースを占有していることに気付いた場合、キューがノード間で均等に分散されていない可能性があります。 これは、以下の理由で発生する可能性があります。

  • VIP の 1 つにのみ接続され、すべてのキューが単一ノードに作成されます。
  • ローリング再始動が行われました。これにより、最初に再始動されたノードにキューが移動されます。

キューの均等な分散をトリガーすると、すべてのキューが均等に分散されるまでロードが行われます。そのため、デプロイメントがプレッシャーを受けている間は、このアクションを実行しないでください。

キューを均等に分散させるには、RabbitMQ 管理 API を使用して、デプロイメントに対して https POST呼び出し/api/rebalance/queuesを実行します。

専用コア

デプロイメントの CPU 割り振りは、有効にしたり増やしたりすることができます。 専用コアを使用すると、リソース・グループには、予約された CPU 共有が含まれるシングル・テナント・ホストが与えられます。 そのため、デプロイメントでは、指定した最小 CPU 数が保証されます。 デフォルトの 0 個の専用コアでは、共有ホストの計算リソースが使用されます。 CPU 数が 0 から 1 個以上になると、デプロイメントがプロビジョンされて、新しいホストに移動します。データベースは、その移動の一部として再始動します。 CPU 数が 1 個以上から 0 になると、デプロイメントが共有ホストに移動し、移動の一部としてデータベースが再始動します。

スケーリングに関する考慮事項

  • デプロイメントを拡大すると、RabbitMQ が再始動する可能性があります。 より容量の大きいホストにデプロイメントを移行する必要がある場合は、移行の一環としてデータベースが再始動されます。

  • RAM または CPU を縮小した場合、再始動はトリガーされません。

  • ディスクをスケール・ダウンすることはできません。

  • いくつかのスケーリング操作は他の操作と比べて、実行時間が長くなることがあります。 専用コアを有効にすると、デプロイメントが独自のホストに移動されるので、単にコアを追加するよりも時間がかかる場合があります。 同様に、基礎的なハードウェア・リソースをさらにプロビジョニングするために、CPU、RAM、またはディスクを大幅に増やすと、少しだけ増やす場合に比べて時間が長くかかる可能性があります。

  • スケーリング操作のログは、IBM Cloud® Activity Tracker に記録されます。

  • リソース使用量の傾向に一貫性がある場合、または特定のリソースしきい値に達したときにスケーリングをセットアップする場合は、自動スケーリングを参照してください。

UI によるスケーリング

データ・メンバーとそのリソース割り振りのビジュアル表示は、デプロイメントの_「管理」ページの「リソース」_タブで確認できます。

「リソース」の「スケール・リソース」パネル
Figure 1. _「リソース」_の「スケール・リソース」パネル

スライダーを調整して、サービスに割り振られているリソースを増減します。 スライダーによって、メンバーあたりに割り振られているメモリーまたはディスクの量を制御します。 UI は現在、ディスクは 8 GB ずつ増分、メモリーは 1 GB ずつ増分という粗めの分解能を使用しています。 この UI では、スライダーの位置によって割り振られたメモリーまたはディスクの合計が表示されます。 **「スケール」**をクリックしてスケール操作をトリガーし、その後、ダッシュボードの概要に戻ります。

CLI でのリソースとスケーリング

IBM Cloud CLI クラウド・データベース・プラグインでは、デプロイメントのリソースの表示およびスケーリングがサポートされます。 コマンド cdb deployment-groups を使用することにより、調整可能なリソース・グループを含め、サービスの現在のリソース情報を確認できます。 使用可能なリソース・グループのいずれかをスケーリングするには、cdb deployment-groups-set コマンドを使用します。

例えば、「example-deployment」という名前のデプロイメントのリソース・グループを表示するコマンドは、次のようになります。
ibmcloud cdb deployment-groups example-deployment

これにより、以下の出力が生成されます。

Group   member
Count   3
|
+   Memory
|   Allocation              3072mb
|   Allocation per member   1024mb
|   Minimum                 3072mb
|   Step Size               384mb
|   Adjustable              true
|
+   CPU
|   Allocation              0
|   Allocation per member   0
|   Minimum                 9
|   Step Size               3
|   Adjustable              true
|
+   Disk
|   Allocation              3072mb
|   Allocation per member   1024mb
|   Minimum                 3072mb
|   Step Size               3072mb
|   Adjustable              true

デプロイメントには 3 つのメンバーがあり、合計で 3072 MB の RAM ディスクが割り振られています。 「メンバーごと」の割り振りは、1024 MB の RAM と 1024 MB のディスクです。 Minimum は、設定できる最小の合計割り振り量です。 「step size (ステップ・サイズ)」は、合計割り振りの調整可能な最小単位です。

cdb deployment-groups-set コマンドでは、合計の RAM またはディスクの割り振りを MB 単位で設定できます。 例えば、「example-deployment」のメモリーをメモリー・メンバーそれぞれについて 2048 MB の RAM にスケーリングするには (合計メモリーが 6144 MB の場合)、次のコマンドを使用します。
ibmcloud cdb deployment-groups-set example-deployment member --memory 6144

API でのスケーリング

サービスの_「概要」パネルに表示される「ファウンデーション・エンドポイント (Foundation Endpoint)」_には、API を使用してこのデプロイメントにアクセスするための基本 URL が示されています。 スケーリングをプログラムで管理または自動化する必要がある場合には、それを /groups エンドポイントで使用します。

デプロイメント上の現在のリソースとスケーラブル・リソースを表示する方法。

curl -X GET -H "Authorization: Bearer $APIKEY" 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups'

デプロイメントのメモリーをメモリー・メンバーごとに 2048 MB の RAM (合計のメモリーは 6144 MB) にスケールする方法。

curl -X PATCH 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups/member' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"memory": {
        "allocation_mb": 6144
      }
    }'

詳しくは、API リファレンスを参照してください。