sql >> Database >  >> RDS >> PostgreSQL

Klopt mijn begrip van de grootte van Unicorn, Sidekiq en DB Pool?

In Unicorn stelt elk proces zijn eigen verbindingspool vast, dus als uw db-poolinstelling 5 is en u 5 Unicorn-werkers hebt, kunt u maximaal 25 verbindingen hebben. Aangezien elke eenhoornwerker echter slechts één verbinding tegelijk kan verwerken, zal elke werknemer slechts eigenlijk gebruiken, tenzij uw app intern gebruik maakt van threading. één db-verbinding.

In Sidekiq worden de verbindingen in de pool gedeeld over threads, dus je moet minimaal één verbinding per werknemer beschikbaar hebben. Als je een gelijktijdigheid van 5 hebt, moet je pool minimaal 5 zijn.

Het hebben van een poolgrootte groter dan 1 betekent dat elke Unicorn-werker toegang heeft tot verbindingen die hij niet kan gebruiken, maar het zal de verbindingen niet echt openen, dus dat maakt niet uit.

Het totale aantal daadwerkelijke verbindingen dat uw app nodig heeft, tenzij u threads gebruikt in uw applicatiecode (en ze geen db-verbinding delen), is één per Sidekiq-werker plus één per Unicorn-werker.




  1. De gebruikte SELECT-instructies hebben een ander aantal kolommen

  2. MySQL:wat is een pagina?

  3. Kerel, van wie is die #temp-tafel?

  4. Hoe de Oracle LISTAGG-functie te gebruiken?