Redis занимает слишком много памяти

Я установил сторожевой кластер Redis (версия 4.0.6) в двух Centos 6 виртуальных машин. И главный, и подчиненный сервер Redis имеют maxmemory, установленный на 10 ГБ, и maxmemory_policy как volatile-lru.

Проблема в том, что оба сервера занимают много памяти.

Мастер:

# Memory
used_memory:9939524616
used_memory_human:9.26G
used_memory_rss:11554213888
used_memory_rss_human:10.76G
used_memory_peak:10001440960
used_memory_peak_human:9.31G
used_memory_peak_perc:99.38%
used_memory_overhead:1469809500
used_memory_startup:761776
used_memory_dataset:8469715116
used_memory_dataset_perc:85.22%
total_system_memory:20957556736
total_system_memory_human:19.52G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:10000000000
maxmemory_human:9.31G
maxmemory_policy:volatile-lru
mem_fragmentation_ratio:1.16
mem_allocator:jemalloc-3.6.0
active_defrag_running:0
lazyfree_pending_objects:0

Подчиненный:

# Memory
used_memory:9930822872
used_memory_human:9.25G
used_memory_rss:12246667264
used_memory_rss_human:11.41G
used_memory_peak:9999999848
used_memory_peak_human:9.31G
used_memory_peak_perc:99.31%
used_memory_overhead:1468959861
used_memory_startup:761792
used_memory_dataset:8461863011
used_memory_dataset_perc:85.21%
total_system_memory:20957556736
total_system_memory_human:19.52G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:10000000000
maxmemory_human:9.31G
maxmemory_policy:volatile-lru
mem_fragmentation_ratio:1.23
mem_allocator:jemalloc-3.6.0
active_defrag_running:0
lazyfree_pending_objects:0

Я бегал MEMORY PURGE который очищает часть памяти rss, но в течение нескольких минут он снова заполняется и продолжает расти.

Большинство моих данных, хранящихся в Redis, имеют срок действия, хотя некоторые ключи не имеют установленного срока действия.

Любое предложение о том, как я могу контролировать потребление памяти или постоянное решение этой проблемы. Должен ли я просто увеличить оперативную память на виртуальных машинах? Я запускаю другие приложения на обеих виртуальных машинах, но они занимают едва ли 100 МБ памяти.

1 ответ

Статистика памяти показывает, что большая часть памяти используется данными, так что в этом нет ничего плохого.

Если проблема заключается в фрагментации, попробуйте включить активную дефрагментацию. Наконец, я хотел бы изучить обновление сервера Redis до последней версии v4.x, если не 5.x.

Другие вопросы по тегам