PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Est-ce que ma compréhension de la taille des pools Unicorn, Sidekiq et DB est correcte ?

Dans Unicorn, chaque processus établit son propre pool de connexions, donc si votre paramètre de pool de base de données est 5 et que vous avez 5 travailleurs Unicorn, vous pouvez avoir jusqu'à 25 connexions. Cependant, étant donné que chaque travailleur licorne ne peut gérer qu'une seule connexion à la fois, à moins que votre application n'utilise le threading en interne, chaque travailleur n'utilisera que réellement une connexion à la base de données.

Dans Sidekiq, les connexions du pool sont partagées entre les threads, vous devez donc disposer d'au moins une connexion disponible par travailleur. Si vous avez une simultanéité de 5, votre pool doit être d'au moins 5.

Avoir une taille de pool supérieure à 1 signifie que chaque travailleur Unicorn a accès à des connexions qu'il ne peut pas utiliser, mais il n'ouvrira pas réellement les connexions, donc cela n'a pas d'importance.

Le nombre total de connexions réelles requises par votre application, à moins que vous n'utilisiez des threads dans votre code d'application (et qu'ils ne partagent pas une connexion à la base de données), est d'une par travailleur Sidekiq plus une par travailleur Unicorn.