すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for Redis:一般的なレイテンシイベントを処理するための提案

最終更新日:Sep 12, 2024

このトピックでは、一般的なレイテンシイベントの原因について説明し、これらのイベントを処理する方法について説明します。

背景情報

Redis 2.8.13は、考えられるレイテンシの問題を特定してトラブルシューティングするために、レイテンシモニタリングという新機能を導入しました。 レイテンシモニタリング機能を使用すると、過去160秒以内に生成されたデータを収集し、1秒以内に最もレイテンシの高いイベントにのみアクセスできます。

一般的なレイテンシイベント

イベント説明考えられる原因提案
EvictionCycleデータの選択と削除に必要な時間とバックグラウンドスレッドの待機時間が含まれます。 このイベントは、複数の要因によって影響され得る。 EvictionDelイベントとEvictionLazyFreeイベントを分析して原因を特定する必要があります。
  • ビジネスデータを確認し、データを最適化します。
  • 削除が頻繁に発生する場合は、占有メモリがMaxmemory設定を超えたときに削除がトリガーされないように、インスタンスをスケールアップすることを推奨します。
EvictionDel削除サイクル中にキーを削除するために消費された時間。 このイベントは、大きなキーが追い出されたときに発生します。
  • 大きなキーは使用しないことを推奨します。
  • lazyfree-lazy-evictionをyesに設定して、非同期削除を有効にします。
  • 削除が頻繁に発生する場合は、占有メモリがMaxmemory設定を超えたときに削除がトリガーされないように、インスタンスをスケールアップすることを推奨します。
EvictionLazyFreeバックグラウンドスレッドがメモリを解放するのを待つ時間。 このイベントは、メモリ使用量がMaxmemory設定を下回るか、リリースが終了するまで、バックグラウンドスレッドがメモリをリリースするのをシステムが待機するときに発生します。 これは、適切なキーを追い出すことができず、大きなキーの削除など、バックグラウンドスレッドがメモリを解放している場合に発生します。
  • maxmemory-policyパラメーターを指定して、メモリ削除ポリシーを変更します。
  • 削除が頻繁に発生する場合は、占有メモリがMaxmemory設定を超えたときに削除がトリガーされないように、インスタンスをスケールアップすることを推奨します。
ExpireCycleキーの有効期限サイクルに消費された時間。 このイベントは、大きなキーが削除されたときに発生します。
  • 大きなキーは使用しないことを推奨します。
  • lazyfree-lazy-expireをyesに設定して、非同期削除を有効にします。
  • コンソールで期限切れのデータを定期的に消去することをお勧めします。
ExpireDelキーの有効期限サイクル中にキーを削除するために消費された時間。 このイベントは、大きなキーが削除されたときに発生します。
AofWrite追加専用ファイル (AOF) へのデータの書き込みにかかる時間。 データがAOFに正常に書き込まれるたびに、AofWriteイベントと、AofWriteAlone、AofWriteActiveChild、およびAofWritePendingFsyncイベントの1つが記録されます。 このイベントは、複数の要因によって影響され得る。 AofWriteAlone、AofWriteActiveChild、およびAofWritePendingFsyncイベントを分析して原因を特定する必要があります。 PMEM (Persistent Memory) が不要な場合は、appendonlyをnoに設定してAOF永続性を無効にします。
AofWriteAloneAOF書き込みに費やされた時間。 このイベントは、大量のデータが書き込まれるか、ディスクに関連するパフォーマンスのボトルネックが存在する場合に発生します。
AofWriteActiveChildデータが他の子プロセスによってもディスクに書き込まれる、AOFへのデータの書き込みにかかる時間。 このイベントは、AOFへのデータ書き込み中に他の子プロセスによってデータがディスクに書き込まれるときに発生します。
AofWritePendingFsyncAOFsにデータを書き込むのにかかる時間。fsync操作はバックグラウンドプロセスによって実行されます。 このイベントは、AOFへのデータ書き込み中にバックグラウンドプロセスによってfsync操作が実行されるときに発生します。
コマンド高速とラベル付けされていない通常のコマンドにかかる時間。 このイベントは、すべてのデータをトラバースするKEYSコマンドなど、特定のコマンドが実行されたときに発生します。
  • 遅いクエリログを表示して、時間がかかるコマンドを特定します。 詳細については、「」「スローログの照会」をご参照ください。
  • オフラインキーを分析して、大きなキーが存在するかどうかを確認します。 詳細については、「」「オフラインキー分析機能の使用」をご参照ください。
FastCommandfastとラベル付けされているコマンドに消費された時間。 高速コマンドの時間複雑度はO(1) またはO(log N) です。 このイベントは、大量のデータをコピーするGETコマンドなど、特定のコマンドが大きなキーで実行されるときに発生します。
フォークfork() の呼び出しに費やされた時間。 このイベントは、AOF書き換え中に発生します。 イベントがAOF書き換えによって発生し、PMEMが不要な場合は、appendonlyをnoに設定してAOF永続性を無効にします。

詳細については、「レイテンシの問題の診断」をご参照ください。

関連ドキュメント