Pro velké instalace systému FlexiBee je nezbytné provést nastavení instance PostgreSQL na souboru postgresql.conf (přesné umístění v Umístění adresářů FlexiBee 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).

Dále je zapotřebí upravit nastavení systému FlexiBee (pro Linux) v souboru /etc/sysctl.conf:

 # nastavení kvůli velkému množství PostgreSQL
 kernel.shmall = 1134217728
 kernel.shmmax = 1134217728

 kernel.sem=250 32000 100 256
 fs.file-max=65536

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:

PostgreSQL wiki: Cannot run with more than about 125 connections

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í.

Našli jste odpověď?