Pourquoi la valeur de la métrique CurrItems de mon cluster Memcached ne diminue-t-elle pas lorsque les clés expirent ?

Date de la dernière mise à jour : 11/08/2020

Pourquoi la valeur de la métrique CurrItems de mon cluster Memcached ne diminue-t-elle pas lorsque les clés expirent ?

Solution

C'est tout à fait normal. Memcached utilise l'expiration progressive (ou « lazy ») pour supprimer les clés lorsque leur durée de vie (TTL) expire. Autrement dit, la clé n'est pas supprimée du nœud même si elle a expiré. Toutefois, lorsqu'un utilisateur essaie d'accéder à une clé qui a expiré, Memcached la vérifie, constate qu'elle a expiré, puis la supprime de la mémoire.

S'il n'y a plus de sections ou de pages libres dans la classe de bloc appropriée pour accueillir de nouvelles clés, Memcached supprime les clés qui ont expiré ou, s'il ne parvient pas à en trouver, utilise un algorithme LRU (least recently used, utilisé le moins récemment) pour les expulser. La métrique CurrItems diminue une fois que les clés ont été supprimées de la mémoire.

Le thread facultatif « lru_crawler », qui s'exécute en arrière-plan, supprime également de la mémoire les clés qui ont expiré. Il s'agit d'une petite tâche qui, même activée, a une action limitée sur les clés expirées. Par conséquent, même si le thread « lru_crawler » est activé, il peut falloir un certain temps pour constater une baisse de l'utilisation de la métrique CurrItems et de la mémoire d'espace de clés.

Si vous avez besoin de rendre une clé disponible pour une durée particulière, utilisez la TTL. Lorsque la clé n'est plus valide (ou expire), elle est supprimée. Les clés ne peuvent pas être récupérées après leur date d'expiration.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?