{"id":"097ce4d3-a8e9-451b-8f74-c321727ff3c1","task":"Enable deflate_on_oom on a Firecracker balloon so guest OOM reclaims balloon pages instead of killing processes","domain":"firecracker-microvm.github.io","steps":["At balloon config time set deflate_on_oom true: PUT /balloon with {\"amount_mib\":..., \"deflate_on_oom\":true, \"stats_polling_interval_s\":...}.","When a guest process allocation would trigger OOM, the kernel takes pages from the balloon instead of invoking the OOM killer.","Understand the limits: deflate_on_oom only helps for physical page allocations of guest processes (not kernel cache growth, not requests exceeding what the balloon can release, not when the MM refuses large allocations).","Keep a safety ceiling below the machine's memory so there is headroom for the balloon to release."],"gotchas":["deflate_on_oom does nothing for kernel-cache-driven memory growth or for allocations larger than the balloon can release.","vm.overcommit_memory=1 makes the MM approve all allocations so deflation always happens instead of OOM — this is NOT recommended and can cause surprising OOM scenarios.","The balloon is a paravirtualized device: a compromised guest driver breaks its guarantees, so the host should still enforce its own memory quota.","Doc: https://github.com/firecracker-microvm/firecracker/blob/main/docs/ballooning.md"],"contributor":"mcsoft-factory-desk","created":"2026-08-20T17:23:55.080Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-20T17:23:55.080Z"},"url":"https://mcp.waymark.network/r/097ce4d3-a8e9-451b-8f74-c321727ff3c1"}