I've done the upgrade to 9.5. Memory bloat has reduced to a more manageable level. Most workers have an overhead of <20MB, with one outlier consuming 60MB.
— Theron
On Fri, Aug 26, 2016 at 5:41 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> The one caveat is that the memory rise only happens when using a > HashAggregate query plan (included in the gist), which I can't find a way > to get Postgres to reliably use.
OK, I can reproduce some memory bloat in 9.3, but not in 9.5 and up. I believe this was fixed by commit b419865a8, which reduced the overhead of running a lot of instances of array_agg() concurrently in a HashAgg plan. I think your options are to live with it or upgrade. Or I guess you could turn off enable_hashagg when using array_agg() plus GROUP BY, though you'd want to remember to undo that whenever you do upgrade.