One thing I obsess a little bit over is the fact that it’s 2026, we pretend that Linux is a serious OS, but we‘re still losing your data on a regular basis.

Out of memory conditions (OOM) are one of our biggest pain points, so I just did a quick experiment with macOS to see how they are handling OOM.

I loaded about 200 memory heavy tabs in Firefox and kept a close look at memory usage.

(1/4)

Once my 16 GB of memory were filled up, with a good extra amount saved thanks to compression, macOS just started creating swapfiles. Memory pressure went from the green to the yellow area, things got a little bit sluggish when switching to the oldest tabs, but no major slowdowns or freezes of multiple seconds.

The more tabs were open, the more swap files got created. At some point the disk would fill up though.

(2/4)

With about 200 MB of disk space left, Firefox froze completely, and at the same time a window popped up telling me that Firefox and a few other apps were frozen (not killed!!!) by the system.

The window prompted to either kill the app or resume it. Pressing resume, Firefox continued running smoothly for a few seconds, until it got frozen again. Pressing resume again, I could quickly close a few tabs, and things worked fine again.

(3/4)

All of this without one tab getting unloaded by Firefox, or one app getting killed without user consent.

So OOM conditions *can* be handled without losing people's data. Don't let kernel developers fool you into believing this is an impossible problem to solve.

(4/4)

@verdre the good news is: systemd-swap allows creating swapfiles on demand to increase available swap memory.

The bad news: no distribution enables it by default afaik.

@karolherbst systemd-swap is unmaintained though :/

It seems like in the kernel things are in motion when it comes to mm right now. zram just gained compressed writeback, and zram can also set a custom writeback device, so potentially that could be used as a "fake" swapfile.

@verdre @karolherbst There's also https://github.com/Tookmund/Swapspace, packaged in Debian as swapspace, also not installed by default.

It worked well enough to completely hide an xdg-desktop-portal-gnome memory leak from me, until I accidentally noticed I had 17 GB of swap files for some reason after running htop.

GitHub - Tookmund/Swapspace: A fork of Jeroen T. Vermeulen's excellent dynamic swap space manager

A fork of Jeroen T. Vermeulen's excellent dynamic swap space manager - Tookmund/Swapspace

GitHub