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