このページでは、Spanner インスタンスで実行されているクエリをモニタリングしてトラブルシューティングする方法について説明します。アクティブ クエリとは、インスタンスのパフォーマンスに影響する可能性がある長時間実行クエリのことです。これらのクエリをモニタリングすると、インスタンスのレイテンシと CPU 使用率が高い原因を特定できます。
Google Cloud コンソールを使用して、Spanner の [Query Insights] ページでアクティブ クエリを表示できます。これらのクエリは、クエリの開始時間で並べ替えられます。アクティブ クエリが多い場合、Spanner がデータ収集に適用するメモリの制約により、結果が合計クエリのサブセットに限定される可能性があります。
始める前に
アクティブ クエリを表示するために必要な権限を取得するには、インスタンスに対する次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Spanner 閲覧者(
roles/spanner.viewer
) - Cloud Spanner データベース読み取り(
roles/spanner.databaseReader
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
アクティブ クエリを表示する
各データベースのアクティブ クエリを表示するには、次の操作を行います。
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
モニタリングするクエリを含むインスタンスをクリックします。
ナビゲーション メニューで [Query Insights] をクリックします。
[データベース] メニューで、モニタリングするデータベースを指定します。
[アクティブなクエリ] タブをクリックします。このタブには、アクティブ クエリの概要と、実行時間の長い上位 50 件のアクティブ クエリを含むテーブルが表示されます。
実行時間の長いクエリを表示する
次の表に、[アクティブなクエリ] タブの [最も実行時間の長いクエリ] テーブルの列を示します。
列名 | 説明 |
---|---|
クエリ ID | クエリの固有識別子。 |
クエリ | SQL クエリテキスト。 |
フィンガープリント | REQUEST_TAG または SQL クエリテキストのハッシュ。 |
開始時間 | クエリ開始時のタイムスタンプ。 |
クエリの実行時間 | アクティブ クエリの実行時間。 |
アクション | クエリを終了するためのリンクが含まれます。 |
[自動更新] がオンになっている場合、画面は 60 秒ごとに更新されます。
クエリを終了する
インスタンスで実行中のクエリを終了できます。クエリを終了すると、リソースを解放してインスタンスの負荷を軽減できます。クエリの終了はベスト エフォート オペレーションです。
終了を開始すると、 Google Cloud コンソールのページが更新されます。終了が成功すると、クエリはテーブルから削除されます。終了が失敗した場合、クエリはバックグラウンドで失敗し、[最も実行時間の長いクエリ] テーブルに引き続き表示されます。
サーバーがビジー状態の場合、Spanner はクエリをキャンセルしないことがあります。キャンセルするために、クエリの終了を再度試みることができます。
クエリを終了するために必要な権限を取得するには、インスタンスに対する Cloud Spanner データベース読み取り(spanner.databaseReader
)IAM ロールを付与するよう管理者に依頼してください。
この事前定義ロールには、クエリを終了するために必要な spanner.sessions.delete
権限が含まれています。
クエリを終了するには、次の操作を行います。
- [最も実行時間の長いクエリ] テーブルから、終了するクエリを選択します。
- [アクション] 列で [終了] をクリックします。
- [クエリを終了] ウィンドウで、[確認] をクリックします。
次のステップ
- クエリのパフォーマンスを分析する方法を確認する。
- 最も古いアクティブ クエリの統計情報を確認する。