当Heroku dynos的RAM超过限制时,如何重启?

5

我的服务器(使用Ruby on Rails编写)存在内存泄漏问题,我想实现一个临时解决方案,当动态进程的内存超出限制时自动重启。最好的方法是什么?这样做是否有风险?

1个回答

4
如果您使用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

此外,为了避免数据库中的数据损坏和其他有趣的问题,我建议确保您具备原子事务处理的覆盖。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接