新機能とその重要性
私たちは、負荷の高いクエリを特定し、その背後にある CPU、読み取り、書き込みの状況を把握できるように Query Insights を導入しました。しかし、遅いクエリを見つけるだけでは全体像の一部しか見えません。データベースは、ディスク I/O に時間を費やしている場合もあれば、ロックの解放を待っている場合、あるいは単に CPU 処理で手一杯になっている場合もあります。ClickHouse Managed Postgres の Query Insights に待機イベントメトリクスが追加され、アクティブなセッションが何を待機しているのか、そしてそれが時間の経過とともにどのように変化しているのかを確認できるようになりました。内訳には、待機カテゴリごとの平均アクティブセッション数と、合計負荷に占める各カテゴリの割合が表示されます。クエリメトリクスやリソースメトリクスと併せて確認することで、次に何を調査すべきかを絞り込みやすくなります。
待機イベントと負荷の割合を確認する
Query Insights の Active sessions by wait type チャートでは、プライマリ上のアクティビティが wait_event_type ごとにグループ化されます。各バーは、その期間におけるアクティブなクライアントセッションの平均数を表し、IO や Lock などのカテゴリに分類されています。各待機タイプや待機イベントの意味についての詳細は、PostgreSQL のドキュメントを参照してください。
下のチャートでは、ロック待機がアクティビティの中で最も大きな割合を占めており、それに Timeout と CPU が続いています。ここでの CPU は、報告された待機イベントがなくセッションがアクティブであることを意味しており、CPU 使用率の直接的な測定値ではありません。

詳しく確認したい場合は、バーにカーソルを合わせると、各待機タイプを引き起こしている具体的なイベントが表示されます。

強調表示された区間では平均アクティブセッション数が 25 であり、そのうち 13 がロックを待機しています。ツールチップにはそのロック待機の詳細な内訳が表示され、tuple が 4.5、transactionid が 3.5、relation が 3、advisory が 2 となっています。
カードをクリックすると Waits テーブルが開きます。ここでは、個々の wait_event の値、それぞれの平均アクティブセッション数、および合計負荷に占める割合を確認できます。

選択した範囲全体において、4 つの Lock 行の合計は負荷全体の約 42% を占めています。リレーションロックが 15.2%、タプルロックが 12.4% を占めており、このカテゴリ内での最大の要因となっています。
2 つの追加メトリクスでロック競合を把握する
待機の内訳の隣には 2 つのチャートが配置されています。Blocked sessions には、ロックを待機しているセッションの平均数が表示されます。Lock wait time は、サンプリング時点でそれらのセッションがどれくらいの時間待機していたかを、p50、p95、および最大値で示します。

これらのチャートでは、高負荷な期間の大半を通じて約 9 〜 12 のセッションがブロックされており、ピーク時には約 13 に達しています。ロック待機の最大値は繰り返し 100 秒を超えていますが、p50 は 10 秒未満に収まっています。これらのチャートを組み合わせることで、影響を受けているセッション数と、それらのセッションがどれほど待たされているかを把握できます。
Prometheus を介したモニタリング
最近、Managed Postgres の Prometheus エンドポイントに Query Insights のメトリクスが追加されました。これには、スループットと平均レイテンシを算出するためのクエリ実行回数と合計実行時間、さらに失敗したクエリ、返された行数または影響を受けた行数、バッファアクティビティ、WAL 生成量が含まれます。カウントは操作ごとに分類されるため、読み取りと書き込みのトラフィックの変化を追跡できます。
待機イベントも Prometheus 経由で取得できます。Grafana 上でクエリメトリクスと並べて待機イベントごとのアクティブセッション数や最大ロック待機時間をグラフ化し、継続的なロック競合に対するアラートを設定できます。
認証とスクレイプの設定については、Prometheus 連携ガイドで解説しています。これにより、ニーズに合わせたカスタムダッシュボードやアラートパイプラインを構築できます。
ClickHouse Agents で調査する
ClickHouse Agents は、待機イベントを低速クエリのパターンやサービスメトリクスと突き合わせて分析し、次に何を調査すべきかを判断する手助けをします。次のように質問してみてください。
What is my Postgres database waiting on, and what should I investigate next?(Postgres データベースは何を待機していますか?次に何を調査すべきですか?)
以下は、ClickHouse Agents が待機イベントをデバッグする例です。
ぜひお試しください
新しいチャートは、お使いの Managed Postgres サービスの Query Insights で確認できます。Query Insights の詳細については、ドキュメントをご覧ください。
実際にお試しいただき、ぜひご意見をお聞かせください。
ClickHouse Managed Postgres を今すぐ始める
自社のデータで ClickHouse Managed Postgres の動作を試してみませんか?ClickHouse Cloud は数分で使い始めることができ、300 ドル分の無料クレジットも提供されます。
サインアップ


