Back in Linux Behavior Without Swap, I noted that the modern Linux kernel will still let the system thrash. The OOM killer does not come out until it is extremely desperate, long after responsiveness is near zero.
It has been long enough since installing earlyoom on our clouds that I did another stupid thing. earlyoom was able to terminate the script, and the instance stayed responsive.
I also mentioned “swap on zram” in that post. It turns out, the ideal use case for
zram is when there is no other swap device. When there’s a disk-based swap area (file or partition), one should activate
zswap instead. zswap acts as a front-end buffer to swap, storing the compressible pages, or letting others go to the swap device.
One other note,
zswap is compiled into the default Ubuntu kernels, but
zram is part of the rather large
linux-modules-extra package set. If there’s no other need for the extra modules, uninstalling them saves a good amount of disk space.