Why I Switched from ZRAM to Zswap for Hibernate on NixOS

Swap, ZRAM, Zswap and Hibernate on NixOS

I use swap on my NixOS desktop and laptop to enable suspend-then-hibernate, which first suspends to RAM and then hibernates to disk after a delay. After mistakenly using zramSwap, I switched to boot.zswap.enable with vm.swappiness = 100. I also settled on zstd compression instead of lz4, since a better compression ratio lets more pages stay in memory and reduces disk usage. My final config is just two lines.

So to clarify, zramSwap is what is normally just referred to as zram. It is likely not what you want when using disk based swap.
  1. correct_horse

    Not on nixOS, but I thought I would weigh in on my preferred value for swappiness. 0. For some reason when I have a month of uptime (and I suspend once a day), doing anything with the desktop environment for the first time in a few hours causes a micro stutter for maybe 100ms, as if having to swap out from disk. Turning swap off and on again (meaning no pages are swapped to disk anymore) immediately fixes it. Opening a new tab, pressing the super key even performing certain actions in a video game cause the stutter. I know the internet tells me that 0 isn't a good value, but my computer becomes noticeably worse to use even with a swappiness of 5. I have enough RAM for anything I want to use this computer for, so swap is just for suspend for me.

  2. linsomniac

    I also just recently enabled zswap on my NixOS setup, it's been working fine. I have 32GB of RAM and 64GB of swap, so I really don't need it, but it hasn't hurt.

    I was expecting some problems with my switch to NixOS back in June, but it's been just superb. Even things like building deb packages for my Ubuntu 26.04 machines at work have not been a problem at all.

    I had dabbled with NixOS for a year or two before making the switch and had some familiarity with the nixlang and various concepts (SOPS, age, flakes). But, what really smoothed out the switch was using Claude Code to develop the NixOS configs. Everything is easy to do that way, and any issues are easy to back out.

  3. seabrookmx

    I've had good luck using zswap+zstd on Ubuntu 26.04. I have a Framework 13 (AMD) with 16GB, and have a 16GB swap file configured (ext4 root partition).

    I had planned to upgrade the machine to 32GB of RAM but I don't really feel it's necessary at this point. Which is obviously great given the current RAM costs!

More from this day

2026-09-23