Einfach max_connections
erhöhen ist schlechte idee. Sie müssen shared_buffers
erhöhen und kernel.shmmax
auch.
Überlegungen
max_connections
legt die maximale Anzahl gleichzeitiger Verbindungen zum Datenbankserver fest. Der Standardwert ist normalerweise 100 Verbindungen.
Bevor Sie die Anzahl Ihrer Verbindungen erhöhen, müssen Sie möglicherweise Ihre Bereitstellung skalieren. Aber vorher sollten Sie überlegen, ob Sie wirklich ein erhöhtes Verbindungslimit benötigen.
Jede PostgreSQL-Verbindung verbraucht RAM für die Verwaltung der Verbindung oder des Clients, der sie verwendet. Je mehr Verbindungen Sie haben, desto mehr RAM verwenden Sie, das stattdessen zum Ausführen der Datenbank verwendet werden könnte.
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, das Verbindungen für Sie bündeln kann. Da jede Verbindung RAM verbraucht, sollten Sie versuchen, deren Nutzung zu minimieren.
So erhöhen Sie die maximale Anzahl an Verbindungen
1. Erhöhen Sie max_connection
und shared_buffers
in /var/lib/pgsql/{version_number}/data/postgresql.conf
ändern
max_connections = 100
shared_buffers = 24MB
zu
max_connections = 300
shared_buffers = 80MB
Die shared_buffers
Konfigurationsparameter bestimmt, wie viel Speicher ist engagiert an PostgreSQL zur Verwendung zum Zwischenspeichern von Daten .
- Wenn Sie ein System mit 1 GB oder mehr RAM haben, ist ein vernünftiger Startwert für shared_buffers 1/4 des Speichers in Ihrem System.
- Es ist unwahrscheinlich, dass Sie feststellen werden, dass die Verwendung von mehr als 40 % des Arbeitsspeichers besser funktioniert als eine geringere Menge (z. B. 25 %)
- Beachten Sie, dass es bei einem 32-Bit-System oder PostgreSQL-Build möglicherweise nicht praktikabel ist, shared_buffers auf mehr als 2 bis 2,5 GB festzulegen.
- Beachten Sie, dass unter Windows große Werte für shared_buffers nicht so effektiv sind und Sie möglicherweise bessere Ergebnisse erzielen, wenn Sie sie relativ niedrig halten und stattdessen mehr den Betriebssystem-Cache verwenden. Unter Windows liegt der nützliche Bereich zwischen 64 MB und 512 MB .
2. Kernel.shmmax ändern
Sie müssten die max. Segmentgröße des Kernels auf etwas größer erhöhen als die shared_buffers
.
In der Datei /etc/sysctl.conf
Stellen Sie die Parameter wie unten gezeigt ein. Es wird wirksam, wenn postgresql
reboots (Die folgende Zeile bringt den Kernel auf 96Mb
)
kernel.shmmax=100663296
Referenzen
Maximale Postgres-Verbindungen und gemeinsam genutzte Puffer
Optimieren Ihres PostgreSQL-Servers