Stačí zvýšit max_connections
je špatný nápad. Musíte zvýšit shared_buffers
a kernel.shmmax
také.
Úvahy
max_connections
určuje maximální počet souběžných připojení k databázovému serveru. Výchozí hodnota je obvykle 100 připojení.
Než zvýšíte počet připojení, možná budete muset rozšířit své nasazení. Ale předtím byste měli zvážit, zda opravdu potřebujete zvýšený limit připojení.
Každé připojení PostgreSQL spotřebovává RAM pro správu připojení nebo klienta, který je používá. Čím více připojení máte, tím více paměti RAM budete používat, kterou lze místo toho použít ke spuštění databáze.
Dobře napsaná aplikace obvykle nepotřebuje velký počet připojení. Pokud máte aplikaci, která potřebuje velký počet připojení, zvažte použití nástroje, jako je pg_bouncer, který vám může sdružovat připojení. Protože každé připojení spotřebovává RAM, měli byste se snažit minimalizovat jejich využití.
Jak zvýšit maximální počet připojení
1. Zvyšte max_connection
a shared_buffers
v /var/lib/pgsql/{version_number}/data/postgresql.conf
změnit
max_connections = 100
shared_buffers = 24MB
do
max_connections = 300
shared_buffers = 80MB
shared_buffers
konfigurační parametr určuje, kolik paměti je zasvěcený do PostgreSQL k použití pro ukládání dat do mezipaměti .
- Pokud máte systém s 1 GB nebo více paměti RAM, rozumná počáteční hodnota pro shared_buffers je 1/4 paměti ve vašem systému.
- Je nepravděpodobné, že byste zjistili, že budete používat více než 40 % paměti RAM, aby fungovalo lépe než menší množství (např. 25 %)
- Uvědomte si, že pokud je váš systém nebo sestavení PostgreSQL 32bitové, nemusí být praktické nastavit shared_buffers nad 2 ~ 2,5 GB.
- Všimněte si, že v systému Windows nejsou velké hodnoty pro shared_buffers tak efektivní a můžete dosáhnout lepších výsledků, když je budete udržovat relativně nízko a místo toho budete více používat mezipaměť operačního systému. V systému Windows užitečný rozsah je 64 MB až 512 MB .
2. Změňte soubor kernel.shmmax
Budete muset zvětšit maximální velikost segmentu jádra, aby byl trochu větší než shared_buffers
.
V souboru /etc/sysctl.conf
nastavte parametr, jak je uvedeno níže. Vstoupí v platnost, když postgresql
restartuje (Následující řádek udává maximum jádra na 96Mb
)
kernel.shmmax=100663296
Odkazy
Připojení a sdílené vyrovnávací paměti Postgres Max
Vyladění vašeho PostgreSQL serveru