DBAtlas · Атлас эксплуатации баз данных

Анализ использования памяти и фрагментации, включение 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.

Открыть в DBAtlas →

Связанные материалы