Díky za názorný popis, hned jsem prošel nastavení na jednom ze serverů:
max_connections = 255
shared_buffers = 1GB
temp_buffers = 500MB
work_mem = 128MB
Paměť serveru je 8G. Moje hodnota max_connections je úlet, způsobený právě chybou v aplikaci (dávno opraveno, jenom max_connection zůstalo). Hodnota work_mem je asi o cosi větší, ale k databázi se připojuje jen jedna aplikace s poměrně jasným portfoliem dotazů a v praxi to nedělá potíže.
U části shared_buffers bych ještě zmínil nutnost nastavit velikost sdílené paměti v operačním systému. V konfiguračním souboru /etc/sysctl.conf jsou to hodnoty kernel.shmall a kernel.shmmax.