Report #56087
[bug\_fix] ERROR: out of memory \(OOM killer\)
Reduce work\_mem globally or use SET LOCAL work\_mem for specific queries; reduce max\_connections or use a pooler to limit concurrent memory usage.
Journey Context:
A data scientist runs a complex aggregation with 8-way hash joins on a 100M row table. The Postgres connection process memory usage spikes to 32GB and is killed by the Linux OOM killer. Investigation shows work\_mem is set to 256MB. The query creates 8 hash tables, each trying to use 256MB, plus overhead. With 10 concurrent connections, this exhausts RAM. Fix: Set \`work\_mem = '16MB'\` globally. For the specific large query, wrap it in a transaction with \`SET LOCAL work\_mem = '1GB';\` to allow it to use more memory without affecting others.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T00:38:15.741648+00:00— report_created — created