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.