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 потребляет нормальный объем оперативной памяти.