Redis съедает все больше и больше памяти

Я использую Redis 2.8.17 на Ubuntu 14.04, а вчера Redis начал поглощать всю память, пока она не была убита OOM. Я перезапускал его несколько раз, перезагружал сервер, сбрасывал все данные, но всегда получал один и тот же результат: когда я его запускаю, потребление памяти увеличивается каждую секунду, пока оно не будет уничтожено до 3 ГБ или около того.

Проверьте это короткое видео: http://screencast.com/t/RYqTO7Gradi1

Заметьте, что столбец RES идет вверх и вверх? Это недавно запущенный Redis с пустым набором данных.

Единственное, что я сделал, это может быть связано с обновлением Monit на сервере за день до этого. Это прошло без проблем, хотя и не должно было повлиять на Redis. apt-get update было сделано, хотя, может быть, там была обновлена ​​какая-то системная библиотека, которая может вызвать это?

В любом случае, у меня совершенно нет идей, могут помочь любые намеки!

Вот мой redis.conf выход INFO: https://gist.github.com/manuelmeurer/8c660be28534f8332a23

1 ответ

Решение

Оказывается, я не мог видеть лес за деревьями, и один комментарий Майкла Хэмптона поставил меня на правильный путь.

В конце концов, это не имело никакого отношения к самому Redis, но одно из моих приложений работало неправильно. Он использует Sidekiq для фоновой обработки, который использует Redis для хранения заданий, сообщений об ошибках, следов и т. Д. Я начал получать странные ошибки для некоторых из моих заданий, но игнорировал их, так как мне пришлось, вы знаете, сначала решить эту проблему с Redis.:)

Похоже, что фоновый рабочий, который должен отправлять уведомление Errbit каждый раз, когда в моем приложении возникает исключение, создал само исключение, которое генерировало очень длинные трассировки и все больше и больше заданий...

На данный момент я остановил фоновую обработку, и теперь Redis потребляет нормальный объем оперативной памяти.

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