У меня есть дроплет Digital Ocean, в котором есть приложение Rails, работающее Puma
в качестве веб-сервера и Nginx
в качестве веб-прокси.
Puma молча падает каждые несколько часов после загрузки, затем я получаю уведомление от Uptime Robot и снова запускаю Puma. В журнале доступа Puma нет ничего важного, а журнал ошибок 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:
Об этом есть Open Github Issue, здесь: Puma тихо разбился #554 но это не сильно помогло. Я даже пытался понизить рейтинг Puma до 2.7.1
, как сказал один пользователь, но это тоже не помогло.
Я использую Ruby 2.2
, Rails 4.2
, Puma 2.11.1
и Вот как я настроил свою каплю. Это мои конфигурации 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
/var/log/syslog
. Если вам не хватает памяти, ядро может убить процесс. - person andrewsomething   schedule 08.04.2015/var/log/syslog
. Последняя запись в нем сделана месяц назад, когда я впервые создал дроплет. - person Sheharyar   schedule 08.04.2015Ruby 2.2.0
, как указано здесь: Есть ли в Ruby 2.2 проблемы с памятью? - person Sheharyar   schedule 08.04.2015