Database Query Performance を使用して Redis のパフォーマンス問題を調査する

この Splunk APM のシナリオでは、Redis データベースを使用する新しい広告サービスにおいて顧客から報告された遅延のトラブルシューティングを行う方法を説明します。

Buttercup Gamesのサイト信頼性エンジニアのリーダーであるSkylerは、Redisデータベースを使用する新しい広告サービスにおいて顧客から報告された遅延のトラブルシューティングを行わなければなりません。

  1. Redisのインフラストラクチャをチェックする

  2. Splunk APMでサービスにジャンプする

  3. Redisコマンドのレイテンシを調査する

  4. スパンと関連コマンドを掘り下げる

Skyler が Redis のインフラストラクチャをチェックする

Skyler は、Splunk Infrastructure Monitoring で Redis インフラストラクチャをチェックすることから始めます。コマンドの処理速度が大幅に低下し、サーバーが処理したコマンドの総数が減少していることに気が付きました。

Splunk Observability Cloudで見たRedisサービスのインフラストラクチャビュー。関連コンテンツがハイライトされています。

これは、1 つ以上のコマンドが遅延の問題を引き起こしている可能性があります。これをさらに調査するため、Skyler は画面下部の「関連コンテンツ」タイルを選択し、Splunk APM にジャンプします。

Splunk APM でサービスにジャンプする

Splunk APM のサービスマップが表示されます。Skyler はすぐに Redis データベースを選択し、どのコマンドが最も遅いかを一目で確認します。レイテンシ、リクエスト、およびエラーのチャートは、パフォーマンスの傾向のビューを提供します。

Splunk APMのサービスマップで見たRedisサービスのビュー。

SkylerはDatabase Query Performanceを選択し、問題の根本原因を調べます。

Skyler は Redis コマンドのレイテンシを調査する

サービスマップからDatabase Query Performance を開くと、Skyler は Redis コマンドのリストを合計時間で並べ替えて表示します。コマンドごとに、リクエストとレイテンシ、および Tag Spotlight データを確認できます。

Database Query Performanceで見たRedisコマンドのアニメーション。

Skyler は、SORT、LREM、SUNION などの多くの要素で動作するコマンドが遅くなる可能性があることを認識しています。問題のある遅延を持つコマンドを特定し、トレース例をロードするレイテンシチャートを選択します。

Database Query Performanceから読み込んだRedisコマンドのトレースのサンプル。

Skylerはトレース例を選択し、その特定のスパンのレイテンシについて詳細を調査します。

Skyler はスパンと関連コマンドを掘り下げる

[Trace] ビューから、Skyler は Redis のスパンを選択し、どのデータベースステートメントが当該コマンドを構成しているのかを確認します。パフォーマンスサマリーは、データベーススパンがオーバーヘッドの主な原因であることを指摘しています。

トレース内のRedisコマンドの詳細。データベースステートメントがハイライト表示されています。

このトレースと他のトレースからの情報によって、SkylerはRedisコマンドを最適化するための十分な情報を得ることができ、結果としてパフォーマンスが顕著に向上しました。

さらに詳しく

Database Query Performanceの詳細については、以下のリンクを参照してください: