sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur ökar man maxanslutningarna i postgres?

Bara att öka max_connections är en dålig idé. Du måste öka shared_buffers och kernel.shmmax likaså.

Överväganden

max_connections bestämmer det maximala antalet samtidiga anslutningar till databasservern. Standardinställningen är vanligtvis 100 anslutningar.

Innan du ökar antalet anslutningar kan du behöva skala upp din distribution. Men innan dess bör du fundera på om du verkligen behöver en ökad anslutningsgräns.

Varje PostgreSQL-anslutning förbrukar RAM-minne för att hantera anslutningen eller klienten som använder den. Ju fler anslutningar du har, desto mer RAM kommer du att använda som istället kan användas för att köra databasen.

En välskriven app behöver vanligtvis inte ett stort antal anslutningar. Om du har en app som behöver ett stort antal anslutningar, överväg att använda ett verktyg som pg_bouncer som kan poola anslutningar åt dig. Eftersom varje anslutning förbrukar RAM bör du försöka minimera deras användning.

Hur man ökar antalet anslutningar

1. Öka max_connection och shared_buffers

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

ändra

max_connections = 100
shared_buffers = 24MB

till

max_connections = 300
shared_buffers = 80MB

shared_buffers konfigurationsparametern avgör hur mycket minne är dedikerad till PostgreSQL för att använda för cachelagring av data .

  • Om du har ett system med 1 GB eller mer RAM, är ett rimligt startvärde för shared_buffers 1/4 av minnet i ditt system.
  • det är osannolikt att du kommer att använda mer än 40 % av RAM-minnet för att fungera bättre än en mindre mängd (som 25 %)
  • Tänk på att om ditt system eller PostgreSQL-byggd är 32-bitars, kanske det inte är praktiskt att ställa in shared_buffers över 2 ~ 2,5 GB.
  • Observera att på Windows är stora värden för shared_buffers inte lika effektiva, och du kan få bättre resultat genom att hålla den relativt låg och använda OS-cachen mer istället. På Windows är det användbara intervallet 64 MB till 512 MB .

2. Ändra kernel.shmmax

Du skulle behöva öka kärnans maximala segmentstorlek för att vara något större än shared_buffers .

I filen /etc/sysctl.conf ställ in parametern enligt nedan. Det kommer att träda i kraft när postgresql startar om (Följande rad gör kärnan max till 96Mb )

kernel.shmmax=100663296

Referenser

Postgres Max-anslutningar och delade buffertar

Justera din PostgreSQL-server



  1. Hur man filtrerar objekt i SQL Server Management Studio (SSMS) - SQL Server / TSQL självstudie del 19

  2. Hur CONCAT() fungerar i MariaDB

  3. Bulk Infoga till Oracle med .NET

  4. En introduktion till SQL-index