PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Meu entendimento do tamanho do Unicorn, Sidekiq e DB Pool está correto?


No Unicorn, cada processo estabelece seu próprio pool de conexões, portanto, se a configuração do pool de banco de dados for 5 e você tiver 5 trabalhadores Unicorn, poderá ter até 25 conexões. No entanto, como cada trabalhador unicórnio pode lidar com apenas uma conexão por vez, a menos que seu aplicativo use threading internamente, cada trabalhador só usará uma conexão db.

No Sidekiq, as conexões no pool são compartilhadas entre os encadeamentos, portanto, você precisa ter pelo menos uma conexão disponível por trabalhador. Se você tiver uma simultaneidade de 5, seu pool precisará ser pelo menos 5.

Ter um tamanho de pool maior que 1 significa que cada trabalhador do Unicorn tem acesso a conexões que não pode usar, mas na verdade não abrirá as conexões, então isso não importa.

O número total de conexões reais que seu aplicativo requer, a menos que você esteja usando threads no código do aplicativo (e eles não compartilham uma conexão de banco de dados), é um por trabalhador Sidekiq mais um por trabalhador Unicorn.