【问题标题】:Heroku Puma Rails 4 : Getting R14 errors, how do I scale my server up?Heroku Puma Rails 4:出现 R14 错误,如何扩展我的服务器?
【发布时间】:2015-09-10 09:43:24
【问题描述】:

我正在 Heroku 上运行带有 Puma 服务器的 Rails 4 应用程序。我只使用一个基本的网络测功机(没有工人),内存为 512MB。

最近遇到很多R14错误(Memory Quota Exceeded),昨天我的服务器崩溃了3次。

这是我的 Puma 配置文件:

workers Integer(ENV['WEB_CONCURRENCY'] || 0)
threads_count = Integer(ENV['MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end

我每天在服务器上执行的耗时任务很少,我认为这是我收到这些 R14 错误和服务器崩溃的原因:

  • 使用 Heroku Scheduler 执行的 rake 任务

  • 在创建/更新名为 Thing 的模型时导入 10 张照片(最大尺寸:10 x 3MB)

  • 从我的数据库中导出日志,最多可包含 6k 行

这是我的问题:

  1. 将这些耗时的任务放在新的工作人员测功机上可以帮助我避免 R14 错误/服务器崩溃吗?如果是,您推荐使用delayed_job_active_record gem 还是resque gem?

  2. 你认为我的 Puma 配置文件还可以吗?

  3. 我不知道如何将 Heroku Scheduler 执行的 rake 任务放在工作人员测功机上。有什么想法吗?

非常感谢您的帮助!

【问题讨论】:

  • 下垂,我现在面临同样的问题。你能以某种方式解决它吗?

标签: ruby-on-rails ruby heroku web-worker puma


【解决方案1】:

我没有设置 Heroku worker dynos 的个人经验,但至于您的问题 #2,只要您运行的是 Rails 4.1 或更高版本,该文件就应该没问题,否则配置应该符合此链接中的建议:@ 987654321@.

在最近尝试将我的应用升级到 Rails 4.2 时,内存消耗显着增加,R14 错误变得更加频繁。所以我降级回 Rails 4.1(Ruby 版本是 2.2.2)。也许你可以尝试一下。

另外,如果您还没有这样做,我建议您安装 New Relic 插件并在“监控/实例”链接中查看每个实例的内存消耗。

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 2016-09-13
    • 2015-12-13
    • 2016-08-06
    • 2014-01-18
    • 2017-01-27
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多