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

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

最終更新日:Mar 29, 2026

このリファレンスを使用して、Redis のレイテンシーイベントの根本原因を特定し、適切な修正を適用します。

事前準備

特定のイベントを詳しく調べる前に、これらの一般的な原因を確認してください:

  1. 低速コマンド。すべてのキーをスキャンするコマンド (例:KEYS) は、メインスレッドをブロックします。スロークエリログを確認して、これらのコマンドを見つけます。詳細については、「スロークエリログのクエリ」をご参照ください。

  2. ラージキー。ラージキーは、エビクションと有効期限切れを遅くします。オフラインキー分析を使用して、これらを特定します。詳細については、「オフラインキー分析機能の使用」をご参照ください。

  3. 高いメモリ使用量。使用済みメモリが maxmemory の上限を超えると、エビクションサイクルが頻繁に実行されます。詳細については、「インスタンスの構成の変更」をご参照ください。

背景情報

Redis 2.8.13 ではレイテンシーモニタリングが導入されました。これは、過去 160 秒間のデータを収集し、1 秒あたり最もレイテンシーの高いイベントのみを記録します。

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

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

一部のイベントには親子関係があります:

  • AofWrite は親イベントです。データが追記専用ファイル (AOF) に書き込まれるたびに、Redis は AofWrite とともに、3 つの子イベント (AofWriteAloneAofWriteActiveChild、または AofWritePendingFsync) のうちの 1 つを正確に記録します。具体的な原因を見つけるには、子イベントを分析します。

  • EvictionCycle はエビクションの親イベントです。EvictionDelEvictionLazyFree を一緒に分析して、エビクションレイテンシーの原因を特定します。

イベント測定対象一般的な原因対処法
EvictionCycleキーの選択、削除、バックグラウンドスレッドの待機を含む、完全なエビクションサイクルの時間複数の要因 — EvictionDelEvictionLazyFree を分析して原因を特定キーの使用状況を確認し、ビジネスデータを最適化します。エビクションが頻繁に発生する場合は、インスタンスをスケールアップして、メモリ使用量を maxmemory 未満に保ちます。
EvictionDelエビクションサイクル中のキー削除時間ラージキーが削除されているラージキーを避けます。lazyfree-lazy-evictionyes に設定して、非同期エビクションを有効にします。エビクションが頻繁に発生する場合は、インスタンスをスケールアップします。
EvictionLazyFreeバックグラウンドスレッドがメモリを解放するのを待機する時間バックグラウンドスレッドがメモリを解放している間 (例えば、ラージキーを削除している間)、削除可能なキーがないmaxmemory-policy パラメーターを使用してメモリ削除ポリシーを調整します。エビクションが頻繁に発生する場合は、インスタンスをスケールアップします。
ExpireCycleキーの有効期限切れサイクルの時間ラージキーが削除されているラージキーを避けます。lazyfree-lazy-expireyes に設定して、非同期の有効期限切れを有効にします。コンソールで定期的に期限切れデータをクリアします。
ExpireDelキーの有効期限切れサイクル中のキー削除時間ラージキーが削除されているラージキーを避けます。
AofWriteAOF にデータを書き込む合計時間複数の要因 — AofWriteAloneAofWriteActiveChildAofWritePendingFsync を分析して原因を特定データ永続化が不要な場合は、appendonlyno に設定して AOF を無効にします。
AofWriteAlone同時実行中の子プロセスや保留中の fsync がない状態での AOF 書き込み時間大量の書き込み量またはディスクパフォーマンスのボトルネックAOF が不要な場合は、appendonlyno に設定します。
AofWriteActiveChild子プロセスもディスクに書き込んでいる間の AOF 書き込み時間子プロセスのディスク I/O が AOF 書き込みと競合しているAOF が不要な場合は、appendonlyno に設定します。
AofWritePendingFsyncバックグラウンド fsync が進行中の AOF 書き込み時間バックグラウンド fsync が AOF 書き込みと競合しているAOF が不要な場合は、appendonlyno に設定します。
Commands通常のコマンド (高速とラベル付けされていない) の時間すべてのデータを走査するコマンド (例:KEYSスロークエリログを確認して、長時間実行されるコマンドを見つけます。オフラインキー分析を使用して、ラージキーをチェックします。
FastCommandO(1) または O(log N) の計算量を持つ高速コマンドの時間大量のデータをコピーする高速コマンド (例:ラージキーに対する GET)ラージキーを特定して分割します。詳細については、「ラージキーとホットキーの特定と処理」をご参照ください。
Forkfork() を呼び出すタイミングfork()AOF の再書き込みデータ永続化が不要な場合は、appendonlyno に設定して AOF を無効にします。

次のステップ