Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Connection Pooling

27. 04. 2024 1 Min. Lesezeit intermediate

Jede DB-Verbindung kostet ~10MB RAM. Ohne Pooling erstellen Sie Hunderte von Verbindungen und die DB bricht zusammen.

Warum Pooling

  • TCP-Handshake + TLS = ~100ms pro Verbindung
  • PostgreSQL Fork pro Verbindung = ~10MB RAM
  • Max-Connections-Limit (Standard 100)
  • Verbindungswiederverwendung = dramatisch niedrigere Latenz

SQLAlchemy Pool

from sqlalchemy import create_engine engine = create_engine( “postgresql://user:pass@localhost/db”, pool_size=20, max_overflow=10, pool_timeout=30, pool_recycle=1800, # Recycling nach 30 Min )

PgBouncer

pgbouncer.ini

[databases] mydb = host=localhost port=5432 dbname=mydb [pgbouncer] pool_mode = transaction # Empfohlen max_client_conn = 1000 default_pool_size = 25

Wichtigste Erkenntnis

Immer poolen. SQLAlchemy pool_size=20, PgBouncer für gemeinsamen Pool zwischen Anwendungen.

databaseconnection poolpostgresqlperformance
Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.