Nur zu erhöhen max_connections
ist eine schlechte Idee. Sie müssen erhöhen shared_buffers
und kernel.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
max_connections = 100
shared_buffers = 24MB
zu
max_connections = 300
shared_buffers = 80MB
Der shared_buffers
Konfigurationsparameter legt fest , wie viel Speicher ist gewidmet zu verwenden , um PostgreSQL Caching von Daten .
- Wenn Sie ein System mit 1 GB oder mehr RAM haben, beträgt ein angemessener Startwert für shared_buffers 1/4 des Speichers in Ihrem System.
- Es ist unwahrscheinlich, dass Sie mehr als 40% des Arbeitsspeichers verwenden, um besser zu arbeiten als eine kleinere Menge (wie 25%).
- Beachten Sie, dass es bei einem 32-Bit-System- oder PostgreSQL-Build möglicherweise nicht sinnvoll ist, shared_buffers auf über 2 bis 2,5 GB zu setzen.
- 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 den Betriebssystem-Cache häufiger verwenden. Unter Windows beträgt der nützliche Bereich 64 MB bis 512 MB .
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 beim postgresql
Neustart wirksam (In der folgenden Zeile wird der Kernel maximal auf 96Mb
)
kernel.shmmax=100663296
Verweise
Postgres Max-Verbindungen und gemeinsam genutzte Puffer
Optimieren Ihres PostgreSQL-Servers