我在 Ubuntu 14.04 上运行 Redis 2.8.17,昨天 Redis 开始消耗所有内存,直到被 OOM 杀死。我多次重启它,重启服务器,刷新所有数据,但结果总是相同的:当我启动它时,内存消耗每秒都在增加,直到它在 3GB 左右被杀死。
观看此简短的视频:http://screencast.com/t/RYqTO7Gradi1
注意到 RES 列不断上升了吗?这是一个刚刚启动的 Redis,数据集为空。
我做的一件事可能与此有关,那就是前一天在服务器上更新了 Monit。不过这没有问题,应该不会影响 Redis。不过已经apt-get update
完成了,所以可能是更新了一些系统库,这可能会导致这种情况?
无论如何,我完全没有主意了,任何提示都可能有帮助!
这是我的redis.conf
输出INFO
:https://gist.github.com/manuelmeurer/8c660be28534f8332a23
答案1
事实证明,我只能见树木不见森林,而迈克尔·汉普顿 (Michael Hampton) 的一条评论让我找到了正确的答案。
毕竟这与 Redis 本身无关,只是我的一个应用程序出现了问题。它使用 Sidekiq 进行后台处理,后者使用 Redis 来存储作业、错误消息、回溯等。我开始收到一些作业的奇怪错误,但我忽略了它们,因为我必须先解决 Redis 的这个问题。:)
似乎后台工作者应该发送通知给埃比特每当我的应用程序发生异常时,它本身就会产生异常,从而生成极长的回溯和越来越多的作业......
我暂时停止了后台处理,现在 Redis 消耗的 RAM 量正常。