Ich verwende Postgres DB für mein Produkt. Während der Stapeleinfügung mit Slick 3 wird eine Fehlermeldung angezeigt:
org.postgresql.util.PSQLException: FATAL: Entschuldigung, bereits zu viele Clients.
Meine Batch-Einfügeoperation wird mehr als Tausende von Datensätzen umfassen. Die maximale Verbindung für meine Postgres beträgt 100.
Wie kann ich die maximale Anzahl an Verbindungen erhöhen?
postgresql
Jet
quelle
quelle
Antworten:
Nur zu erhöhen
max_connections
ist eine schlechte Idee. Sie müssen erhöhenshared_buffers
undkernel.shmmax
auch.Überlegungen
max_connections
bestimmt die maximale Anzahl gleichzeitiger Verbindungen zum Datenbankserver. Der Standardwert beträgt normalerweise 100 Verbindungen.Bevor Sie die Anzahl Ihrer Verbindungen erhöhen, müssen Sie möglicherweise Ihre Bereitstellung skalieren. Zuvor sollten Sie jedoch überlegen, ob Sie wirklich ein erhöhtes Verbindungslimit benötigen.
Jede PostgreSQL-Verbindung belegt RAM für die Verwaltung der Verbindung oder des Clients, der sie verwendet. Je mehr Verbindungen Sie haben, desto mehr RAM wird verwendet, um stattdessen die Datenbank auszuführen.
Eine gut geschriebene App benötigt normalerweise keine große Anzahl von Verbindungen. Wenn Sie eine App haben, die eine große Anzahl von Verbindungen benötigt, sollten Sie ein Tool wie pg_bouncer verwenden, mit dem Verbindungen für Sie zusammengefasst werden können. Da jede Verbindung RAM verbraucht, sollten Sie versuchen, deren Verwendung zu minimieren.
So erhöhen Sie die maximale Anzahl an Verbindungen
1. Erhöhen
max_connection
undshared_buffers
im
/var/lib/pgsql/{version_number}/data/postgresql.conf
Veränderung
zu
Der
shared_buffers
Konfigurationsparameter legt fest , wie viel Speicher ist gewidmet zu verwenden , um PostgreSQL Caching von Daten .2. Ändern Sie kernel.shmmax
Sie müssten die maximale Segmentgröße des Kernels erhöhen, um etwas größer als die zu sein
shared_buffers
.Stellen Sie
/etc/sysctl.conf
in der Datei den Parameter wie unten gezeigt ein. Es wird beimpostgresql
Neustart wirksam (In der folgenden Zeile wird der Kernel maximal auf96Mb
)Verweise
Postgres Max-Verbindungen und gemeinsam genutzte Puffer
Optimieren Ihres PostgreSQL-Servers
quelle
cat /proc/sys/kernel/shmmax
), bevor Sie sie ändern. Auf modernen Systemen ist es bereits lächerlich hoch eingestellt und sollte nicht geändert werden. Meins ist18446744073692774399
unter Ubuntu 18.04 standardmäßig eingestellt.Zu Winnies großartiger Antwort hinzufügen:
Wenn jemand den Speicherort der Datei postgresql.conf in Ihrem Setup nicht finden kann, können Sie jederzeit die Postgres selbst fragen.
Für mich war das Ändern der max_connections allein der Trick.
quelle
/etc/postgresql/11/main/postgresql.conf
Ändern Sie die Variable max_connections in der Datei postgresql.conf in / var / lib / pgsql / data oder / usr / local / pgsql / data /
quelle