Задать вопрос

Выделил redis 300mb оперативы и когда остальная система запрашивает память, то иногда влазит в память redis и валится. Что делать?

У меня 4гб оперативы из которых для редиса я выдели 300мб, и я бы хотел изолировать редис чтоб другие сервисы его не выжимали.
  • Вопрос задан
  • 672 просмотра
Подписаться 6 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
kotomyava
@kotomyava
Системный администратор
Redis error: OOM command not allowed when used memory > 'maxmemory'

У вас происходит не то, что вы, вероятно, думаете.

У вас просто кончается выделенная redis память, т.е. вы упираетесь в maxmemory 300000000.
Надо или разобраться, что туда в таком количестве пишется(или почему не удаляется).
Или изменить стратегию удаления данных из него, например, удалять не только что expire, как по умолчанию, а всё что угодно, что давно не использовалось(maxmemory-policy allkeys-lru, !данные будут пропадать!)
Или выделять больше памяти.
Или не использовать его как базу данных, т.к. он не для того нужен... =)

Также, в определённых случаях, redis может использовать до 2х раз больше памяти, чем в него записано данных, если идёт большое количество операций записи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы