为什么Puma会一直无声地崩溃?

时间:2015-04-08 08:39:26

标签: ruby-on-rails digital-ocean puma

我的数字海洋Droplet有一个运行Puma的Rails应用程序作为它的Web服务器,Nginx作为它的Web代理。

Puma在启动后每隔几个小时就会无声地崩溃,然后我会收到来自Uptime Robot的通知,然后我再次启动Puma。 Puma Access Log 中没有任何重要内容, Puma错误日志只有服务器启动信息:

=== puma startup: 2015-04-07 00:12:08 -0400 ===
* Listening on unix:///home/deploy/apps/kholopk/shared/tmp/sockets/kholopk-puma.sock
=== puma startup: 2015-04-07 02:19:16 -0400 ===
* Listening on unix:///home/deploy/apps/kholopk/shared/tmp/sockets/kholopk-puma.sock
=== puma startup: 2015-04-07 04:15:19 -0400 ===
* Listening on unix:///home/deploy/apps/kholopk/shared/tmp/sockets/kholopk-puma.sock
=== puma startup: 2015-04-07 06:16:15 -0400 ===
* Listening on unix:///home/deploy/apps/kholopk/shared/tmp/sockets/kholopk-puma.sock

这就是我的Droplet图形:

Droplet Bandwidth Graph Droplet CPU Graph

这是一个关于此的Open Github问题,在这里: Puma silently crashed #554 ,但它没有多大帮助。我甚至尝试将Puma降级为2.7.1,就像一个用户说的那样,但这也没有帮助。

我正在使用Ruby 2.2Rails 4.2Puma 2.11.1This is how I set up my Droplet。这些是我的Puma Capistrano配置:

set :puma_threads,    [4, 16]
set :puma_workers,    0

set :pty,             true
set :use_sudo,        false
set :stage,           :production
set :deploy_via,      :remote_cache
set :deploy_to,       "/home/#{fetch(:user)}/apps/#{fetch(:application)}"
set :puma_bind,       "unix://#{shared_path}/tmp/sockets/#{fetch(:application)}-puma.sock"
set :puma_state,      "#{shared_path}/tmp/pids/puma.state"
set :puma_pid,        "#{shared_path}/tmp/pids/puma.pid"
set :puma_access_log, "#{release_path}/log/puma.error.log"
set :puma_error_log,  "#{release_path}/log/puma.access.log"
set :ssh_options,     { forward_agent: true, user: fetch(:user), keys: %w(~/.ssh/id_rsa.pub) }
set :puma_preload_app, true
set :puma_worker_timeout, nil
set :puma_init_active_record, false  # Change to true if using ActiveRecord

0 个答案:

没有答案