キーの有効期限が切れたときに Memcached クラスターの CurrItems メトリクスが減少しないのはなぜですか?
解決方法
この動作は想定内です。Memcached では、有効期限 (TTL) が切れたときにレイジーな失効を使用してキーを削除します。つまり、キーは失効してもノードから削除されませんただし、失効済みのキーに対してアクセスが試行されると、Memcached はキーをチェックし、キーの失効を確認してからメモリから削除します。
新しいキーを収容するための空きチャンクや空きページが適切なスラブクラスにない場合、Memcached は期限切れのキーを削除するか、または期限切れのキーが見つからない場合は、最近使用された頻度が最も低い (LRU) アルゴリズムを使用してキーを削除します。CurrItems メトリクスは、キーがメモリから削除された後に減少します。
オプションのバックグラウンドスレッドである lru_crawler スレッドでも、失効済みのキーをメモリから消去します。lru_crawler は消極的なタスクなため、有効になっている場合でも失効済みのキーに対するアクションは制限されます。したがって、lru_crawler が有効な場合でも、CurrItems メトリクスおよびキースペースでのメモリ使用量の減少が示されるまで時間がかかることがあります。
キーを使用できる時間を制限するには TTL を使用します。キーは、無効になる (失効する) と、最終的に削除されます。有効期限が過ぎた後は、キーを取得できません。
関連情報
Memcached 固有のパラメータ