Heroku上的周期性H12超时

时间:2019-03-29 14:35:17

标签: ruby-on-rails postgresql heroku sidekiq puma

我们在Heroku上经常遇到超时错误。当我们查看日志以找到有关其原因的一些线索时,我们找不到很好的理由。这些超时通常不是在最繁忙的时间发生,而是在随机时间发生。

我们将puma用作Web服务器,并将sidekiq用作后台作业处理器。

我们对彪马的配置是; MAX_THREADS=60WEB_CONCURRENCY=1

我们对sidekiq的配置是; WORKER_CONCURRENCY=8

我们正在为工作人员和网络使用single Standard-2x测功机。

我们正在使用standard-0连接限制的120 posgresql软件包。我们具有DB_POOL=60配置,用于将相同的数字与线程数进行匹配。使用这些配置,我们不会使用所有连接。

puma.rb

thread_count = ENV.fetch("MAX_THREADS") { 5 }.to_i
threads thread_count, thread_count

port        ENV.fetch("PORT") { 3000 }

environment ENV.fetch("RACK_ENV") { "development" }
workers ENV.fetch("WEB_CONCURRENCY") { 1 }
preload_app!

before_fork do
  ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
end

on_worker_boot do
  ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
end

plugin :tmp_restart

Heroku Metrics

从我们的指标中可以看到,它发生在某些随机时间,而不是在我们收到更多请求的最繁忙时间。

让我们超时的原因可能是什么?谢谢您的帮助。

0 个答案:

没有答案