CPU 使用率のモニタリング

このページでは、Google Cloud Platform Console と Stackdriver Monitoring を使用して Cloud Spanner インスタンスとデータベースの CPU 使用率を表示する方法について説明します。

CPU 使用率グラフの概要

[インスタンスの詳細] ページと [データベースの詳細] ページの [モニタリング] タブには、CPU 使用率をモニタリングするための次のグラフが含まれています。

  • CPU 使用率 - 移動平均 24 時間
  • CPU 使用率 - 高い優先度
  • CPU 使用率 - 合計

グラフは、タスク(CPU サイクルを消費する一連の処理)の優先度と作成元ごとにグループ化された CPU 使用率を示しています。

  • 優先度の高いユーザー: アプリケーションによって開始され、Cloud Spanner が高い優先度として処理するタスク。読み取りまたは commit リクエストは通常、高い優先度になります。

  • 優先度の高いシステム: Cloud Spanner によって開始され、Cloud Spanner が高い優先度として処理するタスク。例としては、インデックスのバックフィルやデータ分割などがあります。

  • 優先度の低いユーザー: アプリケーションによって開始され、優先度の高いタスクよりは早く完了させる必要がないタスク。例としては、バッチ読み取りやバッチクエリがあります。

  • 優先度の低いシステム: Cloud Spanner によって開始され、優先度の高いタスクよりは早く完了させる必要がないタスク。例としては、データベースの圧縮やスキーマ変更の検証があります。

優先度の高いタスクはすぐに優先度の低いタスクをプリエンプトします。Cloud Spanner では、必要に応じて優先度の低いタスクがすべて停止され、優先度の高いタスクが、最大で 100% の利用可能な CPU リソースを活用できます。優先度の低いシステムのタスクは、短時間遅延する可能性がありますが、最終的には最適なパフォーマンスを実行する必要があります。したがって、優先度の高いタスクと優先度の低いタスクの両方を処理するために、十分なノードでインスタンスをプロビジョニングする必要があります

逆に、優先度の高いタスクが存在しない場合、Cloud Spanner では、優先度の低いタスクをより速く完了させるために最大で 100% の利用可能な CPU リソースを活用できるようになります。バックグラウンドの使用量が急上昇してもそれは問題の兆候ではなく、ユーザータスクなどの優先度の高いタスクの処理へ、ほぼ瞬時にリソースを譲ることができます。

CPU 使用率 - 移動平均 24 時間

このグラフの各点は、過去 24 時間の平均 CPU 使用率を示します。グラフには、推奨される最大 CPU 使用率を示す線が含まれます。マルチリージョン構成では、リージョン別のグラフを表示できます。このグラフは、[インスタンス] ページのみで利用可能です。

CPU 使用率 - 高い優先度

このグラフは、優先度の高いユーザータスクと優先度の高いのシステムタスクの合計 CPU 使用率を示します。

CPU 使用率 - 合計

このグラフは、すべてのタスクの CPU 使用率を示します。CPU 使用率は次の方法でグループ化できます。

  • データベース: [インスタンス] ページで、インスタンスのデータベースごとに個別の線で分類されたグラフを示します。
  • ユーザーとシステム: 優先度の高いユーザータスク、優先度の高いシステムタスク、優先度の低いユーザータスク、優先度の低いシステムタスクごとに個別の線で分類されたグラフを示します。

マルチリージョンのインスタンスの場合は、インスタンス構成の一部であるリージョンごとに各グループを個別に表示できます。

Google Cloud Platform Console でのグラフの表示

  1. GCP Console の Spanner インスタンス ページに移動します。
    [Spanner] ページに移動
  2. モニタリングするインスタンスの名前をクリックします。
  3. [インスタンスの詳細] ページで、[モニタリング] タブをクリックします。

CPU 使用率 - 移動平均 24 時間グラフには、合計 CPU 使用率の移動平均が表示されます。グラフの例を次に示します。

CPU 使用率 - 移動平均 24 時間のスクリーンショット

CPU 使用率 - 高い優先度グラフには、優先度の高いタスクの CPU 使用率が表示されます。グラフの例を次に示します。

CPU 使用率 - 高い優先度のスクリーンショット

CPU 使用率 - 合計グラフには、すべてのタスクの CPU 使用率が表示されます。各データベースまたは各タスクのタイプの合計 CPU 使用率を表示するには、プルダウンを使用します。グラフの例を次に示します。

CPU 使用率 - 合計のスクリーンショット

Stackdriver Monitoring でのグラフの表示

Stackdriver Monitoring で CPU 使用率グラフを表示することもできます。

次の表は、CPU 使用率の推奨最大値を示しています。

測定値 単一リージョンのインスタンスの最大数 マルチリージョンのインスタンスのリージョンあたりの最大値
高い優先度の合計 65% 45%
24 時間の平滑化された集計 90% 90%

CPU 使用率を推奨最大値内に収めるために、高い優先度と 24 時間の平滑化された集計の両方の CPU 使用率指標を追跡するアラートを Stackdriver Monitoring で作成することをおすすめします。

CPU 使用率が推奨最大値を超える場合は、インスタンスをプロビジョニングするノード数を増やして、インスタンスが動作を続けられるようにすることを強くおすすめします。必要なノード数を決定する際には、優先度の高い CPU 使用率のピークと 24 時間の平滑化された平均の両方を考慮する必要があります。CPU 使用率が推奨最大値を常に下回るように、十分な数のノードを割り当ててください。特にパフォーマンス重視のアプリケーションでは、ワークロードの急増に対応するために追加リソースを割り当てることをおすすめします。

ノード数が十分でない場合は、Cloud Spanner によって優先度順にタスクが延期されます。データベースの圧縮やスキーマ変更の検証などの優先度の低いシステムタスクは、ユーザータスクのために延期される可能性があります。しかし、これらのタスクもインスタンスの健全性に不可欠であるため、Cloud Spanner によって無期限に延期されることはありません。コンピューティング リソース不足のために、特定の時間枠内(数時間から 1 日程度)に優先度の低いシステムタスクを完了できない場合は、Cloud Spanner によりそれらのタスクの優先度が上げられる場合があります。 その場合、ユーザータスクのパフォーマンスに影響を与えます

CPU 使用率に基づいて Cloud Spanner が自動的にノードを追加することはありませんが、クライアント ライブラリまたは gcloud コマンドラインツールを使用して、CPU 使用率をモニタリングし必要に応じてノードを追加、削除するアプリケーションを作成することはできます。

次のステップ

Stackdriver Monitoring を使用して Cloud Spanner のアラートを作成する

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Spanner のドキュメント