Ruby 生产服务器内存泄漏
Posted
技术标签:
【中文标题】Ruby 生产服务器内存泄漏【英文标题】:Ruby production server memory leak 【发布时间】:2016-01-09 15:52:06 【问题描述】:我有一个生产 Rails 应用服务器,它的 Rails 工作进程的内存使用量在 3-4 天内从 ~300 MB 增加到 ~1.2GB。
如何调试此内存泄漏。 我正在使用 rvm 2.2.2 并且我的应用程序服务器部署在 AWS:ElasticBeanstalk 中。我正在使用 puma 网络服务器。
请提供详细答案。
【问题讨论】:
您使用的是哪个应用服务器? 我正在使用 puma 服务器。 您是否使用aws-sdk
gem 写入 S3?
是的,AWS 库中是否存在内存泄漏。 ...... gem 'aws-sdk', '~> 2' .......
【参考方案1】:
我最近在使用 ruby 2.2.2 时遇到了类似的问题。我正在使用 aws-sdk
gem 写信给 AWS S3。我在this issue on aws-sdk GitHub找到了解决方案。
ruby 2.2.0 到 2.2.2 附带的 StringIO
类中存在内存泄漏。 aws-sdk
在向 S3 发送文件时使用此类。这个错误是 2.2.3 上的reported and fixed。
希望升级到 ruby 2.2.3 可以解决您的问题。
【讨论】:
嗨 haradwaith,尝试了您提供的 github 链接中提到的这个解决方案。似乎它正在工作,必须监视一天才能确定。 您好,这解决了问题。虽然这个答案没有详细说明 ruby 中的内存泄漏调试,但我接受这个答案,因为我面临的问题已经解决。以上是关于Ruby 生产服务器内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章