sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan øger man de maksimale forbindelser i postgres?

Bare at øge max_connections er en dårlig idé. Du skal øge shared_buffers og kernel.shmmax også.

Overvejelser

max_connections bestemmer det maksimale antal samtidige forbindelser til databaseserveren. Standarden er typisk 100 forbindelser.

Før du øger antallet af forbindelser, skal du muligvis skalere din implementering op. Men inden da bør du overveje, om du virkelig har brug for en øget forbindelsesgrænse.

Hver PostgreSQL-forbindelse bruger RAM til at administrere forbindelsen eller klienten, der bruger den. Jo flere forbindelser du har, jo mere RAM vil du bruge, som i stedet kan bruges til at køre databasen.

En velskrevet app behøver typisk ikke et stort antal forbindelser. Hvis du har en app, der har brug for et stort antal forbindelser, så overvej at bruge et værktøj såsom pg_bouncer, som kan samle forbindelser for dig. Da hver forbindelse bruger RAM, bør du søge at minimere deres brug.

Sådan øger du det maksimale antal forbindelser

1. Forøg max_connection og shared_buffers

i /var/lib/pgsql/{version_number}/data/postgresql.conf

ændre

max_connections = 100
shared_buffers = 24MB

til

max_connections = 300
shared_buffers = 80MB

shared_buffers konfigurationsparameter bestemmer, hvor meget hukommelse er dedikeret til PostgreSQL for at bruge til caching af data .

  • Hvis du har et system med 1 GB eller mere RAM, er en rimelig startværdi for shared_buffers 1/4 af hukommelsen i dit system.
  • det er usandsynligt, at du vil finde at bruge mere end 40 % af RAM til at fungere bedre end en mindre mængde (f.eks. 25 %)
  • Vær opmærksom på, at hvis dit system eller PostgreSQL-build er 32-bit, er det måske ikke praktisk at indstille shared_buffers over 2 ~ 2,5 GB.
  • Bemærk, at på Windows er store værdier for shared_buffers ikke så effektive, og du kan finde bedre resultater ved at holde den relativt lav og bruge OS-cachen mere i stedet. På Windows er det nyttige område 64 MB til 512 MB .

2. Skift kernel.shmmax

Du skal øge kernel max segmentstørrelse for at være lidt større end shared_buffers .

I filen /etc/sysctl.conf indstille parameteren som vist nedenfor. Det træder i kraft, når postgresql genstarter (Den følgende linje gør kernen max til 96Mb )

kernel.shmmax=100663296

Referencer

Postgres Max-forbindelser og delte buffere

Tuning af din PostgreSQL-server



  1. Tips til at reducere din SQL Server-kompleksitet

  2. Ugyldigt fælles bruger- eller rollenavn

  3. PDO-forbindelsestest

  4. Top 5 gratis værktøjer til databasedesign