Das PostgreSQL-Verbindungsproblem

PostgreSQL erstellt pro Verbindung einen neuen Prozess, was Speicher und CPU verbraucht. PgBouncer ist ein leichter Pooler zwischen Anwendung und Datenbank.

Voraussetzungen

  • Linux-Server mit PostgreSQL (12+).
  • Root- oder Sudo-Zugang.

Schritt-für-Schritt Einrichtung

1. PgBouncer Installieren

sudo apt update && sudo apt install pgbouncer

2. Authentifizierung Konfigurieren

sudo -u postgres psql -Atq -c "SELECT concat('\"', usename, '\" \"', passwd, '\"') FROM pg_shadow;" > /tmp/userlist.txt
sudo mv /tmp/userlist.txt /etc/pgbouncer/userlist.txt
sudo chown postgres:postgres /etc/pgbouncer/userlist.txt
sudo chmod 600 /etc/pgbouncer/userlist.txt

3. pgbouncer.ini Konfigurieren

[databases]
meinedb = host=127.0.0.1 port=5432 dbname=meinedb

[pgbouncer]
listen_addr = *
listen_port = 6432
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
pool_mode = transaction
default_pool_size = 20
max_client_conn = 2000

4. Anwendung Verbinden

Ändern Sie den Port von 5432 auf 6432.


Zusammenfassung

  • Verwenden Sie PgBouncer, um Speichermangel zu vermeiden.
  • Setzen Sie pool_mode = transaction für Webanwendungen.

Verwandte Artikel