Анализ использования памяти и фрагментации, включение active defrag
RedisПамятьКоманда
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Что делает
Показывает разницу между памятью, выделенной Redis под данные (used_memory), и RSS, видимым ОС, коэффициент фрагментации и разбивку памяти; при необходимости включает active defrag во время работы.
Когда использовать
Когда RSS явно больше набора данных, память не уменьшается после массовых удалений/истечения срока или появляется риск OOM.
Внимание
mem_fragmentation_ratio обманчив на маленьких наборах данных (например, 4.0 при 2 MB данных); абсолютное значение смотрите в mem_fragmentation_bytes. Коэффициент ниже 1 означает своппинг, а не фрагментацию, и вызывает задержки. Active defrag расходует CPU; ограничьте его через active-defrag-cycle-max. Для постоянства нужен CONFIG REWRITE или redis.conf.