DBAtlas · Atlas d'exploitation des bases de données

Analyser l'utilisation mémoire et la fragmentation, activer l'active defrag

RedisMémoire

Commande

INFO memory
# Fields to check: used_memory_human, used_memory_rss_human, mem_fragmentation_ratio, mem_fragmentation_bytes, allocator_frag_ratio
MEMORY STATS
# If fragmentation is high and persistent, enable active defrag (requires jemalloc):
CONFIG SET activedefrag yes
CONFIG SET active-defrag-ignore-bytes 100mb
CONFIG SET active-defrag-threshold-lower 10
# Ask the allocator to return free pages to the OS:
MEMORY PURGE

Ce que fait la commande

Affiche l'écart entre la mémoire allouée par Redis aux données (used_memory) et le RSS vu par l'OS, le taux de fragmentation et la ventilation de la mémoire ; active l'active defrag à l'exécution si nécessaire.

Quand l'utiliser

Quand le RSS est nettement supérieur au jeu de données, que la mémoire ne baisse pas après des suppressions/expirations massives, ou qu'un risque d'OOM apparaît.

Attention

mem_fragmentation_ratio est trompeur sur les petits jeux de données (par ex. 4.0 sur 2 MB de données) ; regardez mem_fragmentation_bytes pour la valeur absolue. Un ratio inférieur à 1 signifie du swap, pas de la fragmentation, et provoque de la latence. L'active defrag consomme du CPU ; plafonnez-le avec active-defrag-cycle-max. CONFIG REWRITE ou redis.conf est nécessaire pour le rendre persistant.

Ouvrir dans DBAtlas →

Voir aussi