PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ist mein Verständnis der Größe des Unicorn-, Sidekiq- und DB-Pools korrekt?

In Unicorn richtet jeder Prozess seinen eigenen Verbindungspool ein. Wenn Ihre DB-Pool-Einstellung also 5 ist und Sie 5 Unicorn-Worker haben, können Sie bis zu 25 Verbindungen haben. Da jedoch jeder Unicorn-Worker jeweils nur eine Verbindung verarbeiten kann, wird jeder Worker nur tatsächlich verwenden, es sei denn, Ihre App verwendet intern Threading eine DB-Verbindung.

In Sidekiq werden die Verbindungen im Pool von Threads gemeinsam genutzt, sodass Sie mindestens eine Verbindung pro Worker verfügbar haben müssen. Wenn Sie eine Gleichzeitigkeit von 5 haben, muss Ihr Pool mindestens 5 sein.

Eine Poolgröße größer als 1 bedeutet, dass jeder Unicorn-Worker Zugriff auf Verbindungen hat, die er nicht verwenden kann, aber die Verbindungen werden nicht wirklich geöffnet, also spielt das keine Rolle.

Die Gesamtzahl der tatsächlichen Verbindungen, die Ihre App benötigt, ist eine pro Sidekiq-Worker plus eine pro Unicorn-Worker, es sei denn, Sie verwenden Threads in Ihrem Anwendungscode (und sie teilen sich keine DB-Verbindung).