I figured I'd post this since I seem to keep mentioning enabling Zswap in topics and I don't believe there are any guides on Solus for enabling it.
Zswap is a compressed memory buffer like Zram but unlike Zram it's designed to work with a physical swap device (in fact it's useless without "real" swap). Zswap is generally a better option if you have a swap file or partition as it is smart enough to keep more actively used memory pages in the zswap buffer while moving inactive pages to the backing physical swap. Zram doesn't do this which can lead to inefficient behavior where the physical swap will start being used once the zram device is full even if the zram device is full of rarely used memory pages.
To enable zswap you first need to disable zram (otherwise they'll interact together and be really inefficient). Disabling Zram is as simple as creating an empty zram-generator configuration which will tell zram-generator to do nothing when you boot.
sudo touch /etc/systemd/zram-generator.conf
Then you can enable Zswap. The easiest way to enable Zswap is to do it by adding a argument to the kernel command line:
# Make sure the folder exists
sudo mkdir -p /etc/kernel/cmdline.d
# Create the file
echo "zswap.enabled=1" | sudo tee /etc/kernel/cmdline.d/20_zswap.conf
# Update the boot configuration so the new argument is applied
sudo clr-boot-manager update
Then reboot and it should be working! You can do both steps of disabling Zram and enabling Zswap in the same boot, you don't need to reboot between them.
After you boot you can make sure that it's working by running dmesg | grep zswap
. If you see zswap: loaded using pool zstd/z3fold
then it's working. You can see if Zram is running by doing dmesg | grep zram
, which should display nothing if zram is disabled.
More information on Zswap available on the Arch wiki on the topic: https://wiki.archlinux.org/title/zswap