PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

La mia comprensione delle dimensioni di Unicorn, Sidekiq e DB Pool è corretta?

In Unicorn ogni processo stabilisce il proprio pool di connessioni, quindi se l'impostazione del pool db è 5 e hai 5 lavoratori Unicorn, puoi avere fino a 25 connessioni. Tuttavia, poiché ogni lavoratore unicorno può gestire solo una connessione alla volta, a meno che la tua app non utilizzi il threading internamente ogni lavoratore utilizza effettivamente una connessione db.

In Sidekiq, le connessioni nel pool sono condivise tra i thread, quindi devi avere almeno una connessione disponibile per lavoratore. Se hai una concorrenza di 5, il tuo pool deve essere almeno 5.

Avere una dimensione del pool maggiore di 1 significa che ogni lavoratore Unicorn ha accesso alle connessioni che non può utilizzare, ma in realtà non aprirà le connessioni, quindi non importa.

Il numero totale di connessioni effettive richieste dalla tua app, a meno che tu non stia utilizzando thread nel codice dell'applicazione (e non condividono una connessione db), è uno per lavoratore Sidekiq più uno per lavoratore Unicorn.