Hi guys! I'm a bit tired that my system sometimes completely becomes unresponsive while running things that could fill up the memory. I have 32GB of RAM, a bit of a swap file in my SSD (I think something like 5GB swap), but this clearly isn't cutting it. I was having a few browser windows opened, a handbrake encoding that was paused and decided to open Death Stranding 2, which is optimized to take around 5-6GB of RAM. And the system became once more so unresponsive that I had to literally reset it, after 5mins of nothing. I'd like to implement in my Ubuntu-based distro what they have in CachyOS. I'm not exactly sure, but I think it's a ZRAM-based swap partition? Something like 1 or 2GB commited to compressed virtual memory in RAM? Seems this works much better when things are close to getting dicey...how would I go about doing what they use in CachyOS? Is there any easy to follow guide?
Use systemd-zram-generator. The process is explain in the DebianWiki and the ArchWiki and this random blog, but it boils down to just a few commands you need to run:
$ apt install systemd-zram-generator
$ sudoedit /etc/systemd/zram-generator.conf
[zram0]
zram-size = min(ram, 8192)
compression-algorithm = zstd
$ sudo systemctl daemon-reload && sudo systemctl start systemd-zram-setup@zram0.service
You can tweak the settings above. Fedora recommends using zram-size = min(ram, 8192), which would correspond to 8GB ZRAM in your case. CachyOS uses a less conservative config with zram-size = ram.
To confirm that zram is working, run zramctl. It should print something like
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 zstd 8G 430.8M 137.6M 142.9M [SWAP]
See also Improving system responsiveness under low-memory conditions.