Назад | Перейти на главную страницу

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

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

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

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

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