← Back to context

Comment by epistasis

20 hours ago

My primary issue is that a system that did an OK job at dealing with low memory situations has been replaced with a completely inadequate system.

If your solution is "don't ever run out of memory" my solution is "I won't ever use your OS unless forced to."

Every other OS handles this better, and my work literally requires pushing the bounds of memory on the box, whether it's 64GB or 1TB of RAM. Killing an entire cgroup is never an acceptable solution, except for the long-running servers that systemd is meant to run.

As far as I know, Windows just grinds to a halt entirely, system processes start crashing, or you get a BSOD, and mobile OSes kill the app without any trace. I never had an OOM situation on Macs so I don't know about macOS.

Windows is unstable even if you have more than enough memory but your swap is disabled, due to how its virtual memory works. It generally behaves much worse than others under heavy load and when various system resources are nearly exhausted.

There are several advanced and very flexible OOM killers available for Linux, you can use them if it really bothers you (honestly you're the first I've seen complaining about it). Some gaming/realtime distros are using them by default.

  • Even NT4 handled OOM scenarios better than modern Linux. No, it didn't grind to a halt, it would grind the rust off of the spinning platters. But it would continue to run your applications until the application was finished or you intervened.

The kernel OOM killer has never done an adequate job for me. It tends to hesitate to kill anything until the system has literally been completely 100% unresponsive for over half an hour. That's completely unacceptable. Killing a cgroup before the system becomes unresponsive is a million times more desirable default behaviour for a normal desktop system (which Ubuntu Desktop is).

Of course, if it's absolutely not compatible with your work, you can just disable systemd-oomd. I'm wondering though, what sort of work are you doing where you can't tune stuff to use 95% of your 1TB of memory instead of 105% of it?