Re:The Linux kernel's inability to gracefully handle low mem...
by floatboth on Tuesday August 06, 2019 @08:49AM
(#20624629)
> FreeBSD solution to this, which is to not overcommit
Where did this myth come from? Did y'all just assume that the vm.overcommit sysctl actually makes sense and zero means "no overcommit"? :)
https://news.ycombinator.com/item?id=20623919
But indeed, OOM killer kills the largest process, which makes more sense in most scenarios than Linux's "badness" scoring.
While in general I think this is vastly better than the somewhat insane Linux OOM killer, you can get in awkward situations where you can't start any processes (including a root shell) because you're out of memory.
I rather like the FreeBSD solution to this, which is to not overcommit, but after a certain number of allocation failures it kills the process using the most memory. This prevents situations where you can't start any processes.
There's no one-size-fits-all solution to handling low memory conditions, but the Linux solution manages to almost never do what you want which is kind of impressive in a way.
¹ I seem to recall hearing somewhere that you can allow allocations to overcommit on a per-application basis on later versions of Solaris, but don't quote me on this.