Я установил контрольный кластер 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 МБ памяти.
Статистика памяти показывает, что большая часть памяти используется данными, так что в этом нет ничего плохого.
Если фрагментация является проблемой, вы можете попробовать включить активную дефрагментацию. Наконец, я бы посмотрел на обновление сервера Redis до последней версии v4.x, если не 5.x.