我正在通过正常工作重新启动 8 名美洲狮工人bundle exec pumactl -F config/puma.rb phased-restart
。现在我收到越来越多的 postgres 错误:
PG::TRDeadlockDetected: ERROR: deadlock detected
我发现大约有 50 个空闲的 postgres 进程正在运行:
postgres: myapp myapp_production 127.0.0.1(59950) idle
postgres: myapp myapp_production 127.0.0.1(60141) idle
...
当我跑步时它们会消失bundle exec pumactl -F config/puma.rb stop
。使用 启动应用程序后bundle exec pumactl -F config/puma.rb start
,我正好得到 16 个空闲进程。(我认为八个太多了。)
如何更好地管理这些流程?谢谢你的帮助!
更新
我的 puma.rb:
environment 'production'
daemonize true
pidfile 'tmp/pids/puma.pid'
state_path 'tmp/pids/puma.state'
threads 0, 1
bind 'tcp://0.0.0.0:3010'
workers 8
quiet