We have set it to 512MB on machines with 128GB of memory, but this is specific to our workload so I wouldn’t recommend to uncritically adopt a similar setting. The reason is that it will allow the query planner to choose query plans that require more memory but perform better. E.g. Postgres is more like to chose fast GroupAggregate, HashAggregate or HashJoin nodes in its plan instead of slow Sort nodes (which may swap to disk) when enough work_mem is available. You should be able to find many blog real-world tales on the web and more detailed explanations online. E.g. http://patshaughnessy.net/2016/1/22/is-your-postgres-query-starved-for-memory .