sql >> Databáze >  >> RDS >> PostgreSQL

Jak zvýšit maximální počet připojení v postgresu?

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



  1. Jaký je nejvhodnější datový typ pro uložení IP adresy na SQL serveru?

  2. Vše, co potřebujete vědět o SQL CTE na jednom místě

  3. Resetujte hodnotu sekvence na 1

  4. SQL Server Převod celého čísla na binární řetězec