나는 Heroku에서 레일 응용 프로그램을 실행 중입니다.동시성 데이터베이스 연결 Heroku Unicorn rails 응용 프로그램
나는 하나의 dyno를 가지고 있습니다. 저는 취미 기본 데이터베이스 인 $ 9를 1 개월에 20 개로 제한하고 있습니다.
내 응용 프로그램이 Unicorn에서 실행 중입니다. 그러나 여러 데이터베이스 호출이 만들어지면 여전히 느립니다. 동시 연결을 관리하는 방법에 대한
# config/unicorn.rb
worker_processes 3
timeout 30
preload_app true
before_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT'
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end
이 문서 회담 : https://devcenter.heroku.com/articles/concurrency-and-database-connections
하지만, 난 여전히 혼란 스러워요
이것은 내 unicorn.rb 파일에있는 것입니다. 현재 설정으로, 동시에 여러 데이터베이스 연결을 허용 할 수 있습니까? 그리고 최대 연결에서 데이터베이스는 (20)을 허용합니까? 헤로 쿠의 레일 앱을 스케일링하는 사람이 나에게 올바른 방향을 가르쳐 줄 수 있다면 정말 고마워.
데이터베이스 연결마다 "유니콘"작업자 한 명이 필요합니다. 각 작업자는 단일 연결을가집니다. 물론, 나는 결코 유니콘을 사용하지 않았습니다. 그것은 포크를 사용했을 때 나타나는 방식입니다. –