このトピックでは、一般的なレイテンシイベントの原因について説明し、これらのイベントを処理する方法について説明します。
背景情報
Redis 2.8.13は、考えられるレイテンシの問題を特定してトラブルシューティングするために、レイテンシモニタリングという新機能を導入しました。 レイテンシモニタリング機能を使用すると、過去160秒以内に生成されたデータを収集し、1秒以内に最もレイテンシの高いイベントにのみアクセスできます。
一般的なレイテンシイベント
イベント | 説明 | 考えられる原因 | 提案 |
EvictionCycle | データの選択と削除に必要な時間とバックグラウンドスレッドの待機時間が含まれます。 | このイベントは、複数の要因によって影響され得る。 EvictionDelイベントとEvictionLazyFreeイベントを分析して原因を特定する必要があります。 |
|
EvictionDel | 削除サイクル中にキーを削除するために消費された時間。 | このイベントは、大きなキーが追い出されたときに発生します。 |
|
EvictionLazyFree | バックグラウンドスレッドがメモリを解放するのを待つ時間。 | このイベントは、メモリ使用量がMaxmemory設定を下回るか、リリースが終了するまで、バックグラウンドスレッドがメモリをリリースするのをシステムが待機するときに発生します。 これは、適切なキーを追い出すことができず、大きなキーの削除など、バックグラウンドスレッドがメモリを解放している場合に発生します。 |
|
ExpireCycle | キーの有効期限サイクルに消費された時間。 | このイベントは、大きなキーが削除されたときに発生します。 |
|
ExpireDel | キーの有効期限サイクル中にキーを削除するために消費された時間。 | このイベントは、大きなキーが削除されたときに発生します。 | |
AofWrite | 追加専用ファイル (AOF) へのデータの書き込みにかかる時間。 データがAOFに正常に書き込まれるたびに、AofWriteイベントと、AofWriteAlone、AofWriteActiveChild、およびAofWritePendingFsyncイベントの1つが記録されます。 | このイベントは、複数の要因によって影響され得る。 AofWriteAlone、AofWriteActiveChild、およびAofWritePendingFsyncイベントを分析して原因を特定する必要があります。 | PMEM (Persistent Memory) が不要な場合は、appendonlyをnoに設定してAOF永続性を無効にします。 |
AofWriteAlone | AOF書き込みに費やされた時間。 | このイベントは、大量のデータが書き込まれるか、ディスクに関連するパフォーマンスのボトルネックが存在する場合に発生します。 | |
AofWriteActiveChild | データが他の子プロセスによってもディスクに書き込まれる、AOFへのデータの書き込みにかかる時間。 | このイベントは、AOFへのデータ書き込み中に他の子プロセスによってデータがディスクに書き込まれるときに発生します。 | |
AofWritePendingFsync | AOFsにデータを書き込むのにかかる時間。fsync操作はバックグラウンドプロセスによって実行されます。 | このイベントは、AOFへのデータ書き込み中にバックグラウンドプロセスによってfsync操作が実行されるときに発生します。 | |
コマンド | 高速とラベル付けされていない通常のコマンドにかかる時間。 | このイベントは、すべてのデータをトラバースするKEYSコマンドなど、特定のコマンドが実行されたときに発生します。 |
|
FastCommand | fastとラベル付けされているコマンドに消費された時間。 高速コマンドの時間複雑度はO(1) またはO(log N) です。 | このイベントは、大量のデータをコピーするGET コマンドなど、特定のコマンドが大きなキーで実行されるときに発生します。 | |
フォーク | fork() の呼び出しに費やされた時間。 | このイベントは、AOF書き換え中に発生します。 | イベントがAOF書き換えによって発生し、PMEMが不要な場合は、appendonlyをnoに設定してAOF永続性を無効にします。 |
詳細については、「レイテンシの問題の診断」をご参照ください。