ruby-on-rails - 超过 RAM 时重新启动 heroku dynos

标签 ruby-on-rails heroku memory-leaks

我的服务器存在内存泄漏问题(用 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/

相关文章:

css - Ruby on Rails - image_tag 找不到本地镜像

sql - 如何在 has_many 关系中急切加载最近的对象?

php - Heroku worker 如何工作?

unit-testing - 遵循 TDD 时如何处理内存泄漏

ruby-on-rails - 如何销毁两个模型之间的所有关联数据? (Rails 初学者)

node.js - 我正在尝试将 Node 服务器部署到 heroku,但出现此错误 : throw er;//Unhandled 'error' event

ruby-on-rails - 使用敏感设置信息部署到 Heroku

ios - 内存泄漏 - UIImagePNGRepresentation

javascript - 我总是需要显式调用 URL.revokeObjectURL() 吗?

ruby-on-rails - 在 Ruby 中重新实现 Enumerable Map 方法