2015-11-03 11 views
1

У нас установлена ​​максимальная память 120 ГБ на сервере Redis.Redis used_memory_rss больше, чем набор настроек 'maxmemory'?

Таким образом, в информационном выходе used_memory всегда меньше, чем равна 120GB, но used_memory_rss составляет ~ 140GB

Может кто-то пожалуйста, объясните причину этого?

+0

Это потому, что память фрагментируется во время выполнения. –

+0

Но почему это больше, чем 120. OS. Не следует выделять больше памяти для процесса Redis, определенного в 'maxmemory'. Если он попытается дать, ОС сама может пойти OOM. –

+0

Я просто хочу понять, почему это больше, чем определенный параметр maxmemory. В моем понимании Redis не должен использовать память больше, чем «maxmemory», потому что мы уже дали 95% от общей ОЗУ для Redis Process. –

ответ

2

Общая используемая память включает в себя любую память, которую Redis использовал вне хранилища данных, в частности различные буферы и память, используемые во время операций сохранения на диске, такие как BGSAVE и AOF переписывает. Значение maxmemory задано для данных разрешено (и включает в себя некоторые буферы, такие как буферы клиента) - не общая системная память.

Когда вы достигнете maxmemory Redis прекратит использование дополнительной памяти с помощью команд данных. Но он по-прежнему свободен использовать память за пределами этого, чтобы справиться с другими обязанностями.