Tom,

One question that popped up in my head. hash_mem_multiplier is an upper-bound 
right: it doesn't reserve memory ahead of time correct? So there is no reason 
for me to spend undue amounts of time fine-tuning this parameter? If I have 
work_mem to 521MB, then I can set hash_mem_multiplier to 8 and should be OK. 
This doesn't mean that every query will consume 4GB of memory.

Thank you,
Laurent.


-----Original Message-----
From: Tom Lane <t...@sss.pgh.pa.us> 
Sent: Sunday, July 25, 2021 14:08
To: l...@laurent-hasson.com
Cc: Peter Geoghegan <p...@bowt.ie>; David Rowley <dgrowle...@gmail.com>; Justin 
Pryzby <pry...@telsasoft.com>; pgsql-performa...@postgresql.org
Subject: Re: Big performance slowdown from 11.2 to 13.3

"l...@laurent-hasson.com" <l...@laurent-hasson.com> writes:
> As a user of PG, we have taken pride in the last few years in tuning the heck 
> out of the system and getting great performance compared to alternatives like 
> SQLServer. The customers we work with typically have data centers and are 
> overwhelmingly Windows shops: we won the battle to deploy a complex 
> operational system on PG vs SQLServer, but Linux vs Windows was still a 
> bridge too far for many. I am surprised that this limitation introduced after 
> V11 hasn't caused issues elsewhere though.

Maybe it has, but you're the first to report the problem, or at least the first 
to report it with enough detail to trace the cause.

I've pushed a fix that removes the artificial restriction on work_mem times 
hash_mem_multiplier; it will be in next month's 13.4 release.
You'll still need to increase hash_mem_multiplier to get satisfactory 
performance on your workload, but at least it'll be possible to do that.

                        regards, tom lane


Reply via email to