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

Tair (Redis® OSS-Compatible):一般的なレイテンシイベントを処理するための提案

最終更新日:Nov 26, 2024

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

背景情報

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

Tair (Redis OSS-compatible) は、高度なレイテンシインサイト機能を提供します。 この機能では、すべてのコマンドの最大27のイベントと実行期間を記録し、過去3日間のすべてのレイテンシ統計を保存できます。 イベントとそのレイテンシしきい値の詳細については、「一般的な特別イベント」をご参照ください。

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

イベント

説明

考えられる原因

提案

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イベントを分析する必要があります。

データ永続性が必要ない場合は、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の書き換えによるもので、データの永続化が不要な場合は、appendonlyをnoに設定してAOF永続化を無効にします。

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

関連ドキュメント