ApsaraDB for Redisインスタンスのパフォーマンスを分析したり、低速クエリコマンドを特定したり、潜在的なパフォーマンスのボトルネックを特定したりする場合は、低速ログを調べることで分析できます。 この分析は、パフォーマンスの問題を解決し、クエリを最適化するための手がかりを明らかにするのに役立ちます。 Slow logsは、実行時間がslowlog-log-Slow-thanで指定されたしきい値を超えたコマンドを記録します。 デフォルトでは、このしきい値は20ミリ秒に設定されます。 特定のニーズに合わせてこの値をカスタマイズできます。
概要
スローログは、 ApsaraDB for Redisでの実行に指定されたしきい値よりも時間がかかるリクエストを記録します。 スローログは、データノードのスローログとプロキシノードのスローログに分類されます。
このトピックで提供されているスローログを表示する方法は、Redis 2.8を実行するTairインスタンスではサポートされていません。 代わりに、コンソールで を選択して、スローログを表示できます。 このようなインスタンスのスローログには、クライアントアドレスなどのクライアントに関する情報は含まれません。
データノードのスローログ
データノードで生成されたスローログで収集されたコマンド実行時間には、データノードでコマンドを実際に実行するのに必要な時間のみが含まれます。 データノードがプロキシノードまたはクライアントと通信するのに必要な時間と、シングルスレッドキュー内のコマンドの実行レイテンシは含まれません。
データノードのスローログは72時間保持されます。 保存できるスローログの数は無制限です。
ほとんどの場合、 ApsaraDB for Redisのパフォーマンスが高いため、データノードで生成されるスローログはほとんどありません。
Parameters
パラメーター | 説明 |
slowlog-log-slow-than | データノードのスローログのコマンド実行時間のしきい値。 コマンドがこのしきい値を超える期間実行された場合、そのコマンドはスローログに記録されます。 デフォルト値: 20000 単位:マイクロ秒。 20000マイクロ秒は20ミリ秒に等しい。 説明 ほとんどの場合、実際のレイテンシはこのパラメーターの指定された値よりも高くなります。これは、この値には、クライアント、プロキシノード、およびデータノード間でデータを送信および処理するのに必要な時間が含まれていないためです。 |
slowlog-max-len | 保存できるスローログエントリの最大数。 デフォルト値: 1024。 |
詳細については、「」「インスタンスパラメーターの設定」をご参照ください。
プロキシノードのスローログ
プロキシノードのスローログに収集されたコマンド実行期間は、プロキシノードがデータノードに要求を送信した時点から開始し、プロキシノードがデータノードから応答を受信した時点で終了します。 これには、データノードでのコマンド実行期間、ネットワークを介したデータ送信の期間、およびコマンドのキューイング待ち時間が含まれます。
プロキシノードのスローログは72時間保持されます。 保存できるスローログの数は無制限です。
ほとんどの場合、プロキシノードの低速ログに記録されたレイテンシ値は、アプリケーションの実際のレイテンシに近くなります。 したがって、 ApsaraDB for Redisのタイムアウトの問題をトラブルシューティングするときは、このスローログタイプをチェックすることを推奨します。
ApsaraDB for Redisの標準インスタンスには、プロキシノードのスローログは含まれません。
Parameters
パラメーター | 説明 |
rt_threshold_ms | プロキシノードのスローログのコマンド実行時間のしきい値。 デフォルト値: 500。 単位:ミリ秒。 しきい値は、クライアントのタイムアウト期間 (200ミリ秒から500ミリ秒) に近い値に設定することを推奨します。 |
詳細については、「」「インスタンスパラメーターの設定」をご参照ください。
手順
ApsaraDB for Redisコンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。 次に、インスタンスを見つけて、インスタンスIDをクリックします。
左側のナビゲーションウィンドウで、 .
[スローログ] ページで、スローログを時間範囲またはキーワードでフィルタリングします。 クラスターおよび読み書き分離インスタンスの場合、ノードタイプとノードIDでスローログをフィルタリングすることもできます。
説明デフォルトでは、クラスターインスタンスと読み書き分離インスタンスのデータベースに接続するホストアドレスパラメーターには、プロキシノードのIPアドレスが表示されます。 特定のクライアントのIPアドレスを取得するには、システムパラメーター セクションでptod_enabledパラメーターを
1
に設定します。 詳細については、「」「インスタンスパラメーターの設定」をご参照ください。
無関係な遅いSQL文
特定の低速SQL文は、リクエストの実際の実行速度には関係ありませんが、インスタンスのエンジンロジックに関連しています。 次の低速SQL文は無視できます。
スローSQL文 | 説明 |
latency:eventloop | ApsaraDB for Redisは、実行時にイベント駆動型モデルを使用します。 イベントループは、コマンドの読み取り、解析、実行、および出力の戻りで構成されます。 |
latency: パイプライン | ApsaraDB for Redisでは、クライアントをパイプラインモードで動作させることができます。 このモードでは、クライアントはコマンドを送信し、出力をバッチで受信します。 すべてのコマンドが実行されると、出力が返され始めます。 ApsaraDB for Redisインスタンスがクラスターアーキテクチャを使用している場合、プロキシノードはパイプラインモードを使用して、 ApsaraDB for Redisのバックエンドにリクエストをバッチで送信します。 |
latency: フォーク |
|
関連する API 操作
API | 説明 |
指定された期間に生成されたApsaraDB for Redisインスタンスのスローログを照会します。 |