Konfigurace PostgreSQL pro velké instalace Flexi

Tento článek popisuje naše mnoholeté zkušenosti s provozem PostgreSQL pod velkou zátěží a s mnoha uživateli a slouží jako sada doporučení.

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než týdnem

Pro velké instalace systému Flexi je nezbytné provést nastavení instance PostgreSQL na souboru postgresql.conf (přesné umístění v Umístění adresářů Flexi na Vašem počítači):

  • zvýšení počtu spojení max_connections (cca 30 na jednoho možného klienta, při použití REST API či webového/mobilního přístupu ještě více). Pokud dáte hodnotu větší než 200, je potřeba také zkontrolovat hodnotu shared_buffers.

  • zvětšit počet zámků na transakci – minimálně na počet tabulek: [Lock Management] max_locks_per_transaction = 512

Je možné nastavit i více zámků (např. pokud firma dlouho nevytvářela aktualizace, nemusí množství 500 stačit; zatím ale nemáme zkušenost s nikým, komu by počet nestačil).

Upozornění: nezapomeňte nastavit automatické zálohování!

Vacuum

Standardně se automaticky pouští proces autovacuum. V některých případech, např. pokud databáze přeroste určitou mez, přestane ruční vacuum fungovat. Je tedy vhodné některé parametry zvednout.

MS Windows

V MS Windows se můžete setkats problémem s více jak 125 spojeními:

Zajímavé informace pro nastavení: http://postgres.cz/wiki/Desatero

Při větší zátěži disků pomáhá nastavení: checkpoint_segments. Optimální je nastavit ho na hodnotu 32. Nastavení je pak: checkpoint_segments = 32

Pokud používáte na serveru antivir ESET NOD32, můžete objevit další potíže. V tomto případě nepomůže z kontrol odstranit proces PostgreSQL, adresář, ani vypnutí NOD32. Funguje jen odinstalace, nebo použití nejnovější verze PostgreSQL.

PGTune

Pro konfiguraci postgresql se osvědčil nástroj pgtune z https://pgtune.leopard.in.ua/#/. Script dopočítává další hodnoty v konfiguraci jako shared_buffers, effective_cache_size atd. na základě nastaveného počtu připojení.

Dostali jste odpověď na svou otázku?