Alvaro Herrera wrote:
> That's not a problem because it's just a limit. It won't cause out of
> memory or anything.
Ah, I see. Well, it's nice to have caught that anyway, I suppose.
> The problem with work_mem is that the system may request that much
> memory for every Sort step. Each query may have more than one of those,
> and each backend can be serving more than one query at a time. So those
> 200000 you have quickly turn into the gigabytes and consume the whole of
> your RAM.
>
> If a Sort step requires more than work_mem for its work, it will go to
> disk -- but in a much faster way than what the kernel is able to do with
> swap. So whenever you are trading work_mem for swap, you are losing big
> time. You should decrease that figure.
Thanks for that bit of advice, Alvaro. I did not know that a work_mem
is allocated for each sort step. I will try lowering work_mem gradually
until it impacts performance.
Though even if this fixes my problem, I'm still bothered by swap never
being used. (Not that I expect you to come up with a magic answer for
me.)
Thank you,
Mark