Remix.run Logo
prussian 6 hours ago

enabling != configuring. Are you saying this is all that's necessary, assuming an existing swap device exists? That should be made clearer.

Edit: To be extra clear. When I was researching this, I ended up going with zram only because:

* It is the default for Fedora.

* zramctl gives me live statistics of used and compressed size.

* The zswap doc didn't help my confusion on how backing devices work (I guess they're any swapon'd device?)

stdbrouw 3 hours ago | parent | next [-]

It doesn't really need any config on most distros, no.

That said, if you want it to behave at its best when OOM, it does help to tweak vm.swappiness, vm.watermark_scale_factor, vm.min_free_kbytes, vm.page-cluster and a couple of other parameters.

See e.g.

https://makedebianfunagainandlearnhowtodoothercoolstufftoo.c...

https://documentation.suse.com/sles/15-SP7/html/SLES-all/cha...

I don't know of any good statistics script for zswap, I use the script below as a custom waybar module:

  #!/bin/bash
  stored_pages="$(cat /sys/kernel/debug/zswap/stored_pages)"
  pool_total_size="$(cat /sys/kernel/debug/zswap/pool_total_size)"
  compressed_size_mib="$((pool_total_size / 1024 / 1024))"
  compressed_size_gib="$((pool_total_size / 1024 / 1024 / 1024))"
  compressed_size_mib_remainder="$((compressed_size_mib * 10 / 1024 - compressed_size_gib * 10))"
  uncompressed_size="$((stored_pages * 4096))"
  uncompressed_size_mib="$((uncompressed_size / 1024 / 1024))"
  uncompressed_size_gib="$((uncompressed_size / 1024 / 1024 / 1024))"
  uncompressed_size_mib_remainder="$((uncompressed_size_mib * 10 / 1024 - uncompressed_size_gib * 10))"
  ratio="$((100 * uncompressed_size / (pool_total_size + 1)))"
  echo "$compressed_size_gib.$compressed_size_mib_remainder"
5 hours ago | parent | prev [-]
[deleted]