我的服务器存在内存泄漏问题(用 ruby on rails 编写)
我想实现一个临时解决方案,当它们的内存超过时自动重新启动 dynos。做这个的最好方式是什么?而且有风险吗?
最佳答案
如果您使用 Puma 作为服务器,则有一个很好的解决方案。
https://github.com/schneems/puma_worker_killer
当 RAM 超过某个阈值时,您可以重新启动服务器:
例如:
PumaWorkerKiller.config do |config|
config.ram = 1024 # mb
config.frequency = 5 # seconds
config.percent_usage = 0.98
config.rolling_restart_frequency = 12 * 3600 # 12 hours in seconds
end
PumaWorkerKiller.start
此外,为了防止数据库中的数据损坏和其他有趣的问题,我还建议确保您使用原子事务。
关于ruby-on-rails - 超过 RAM 时重新启动 heroku dynos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39258403/