Something I just noticed is that you appear to be running zram & zswap at the same time. This is not advised:
However, as I’ve mentioned previously, my recommendation would be for you to keep zswap, and remove/disable zram instead. zswap uses the RAM just like zram, but as it is built into the kernel, it is much better than zram at removing stale pages from swap, and shifting old/inactive pages from RAM to the disk.
You could probably set your swappiness back to the default value of 60 too. Having a low swappiness value can result in inactive/old pages staying in RAM when they should be shifted to the disk so that RAM is freed up for current pages such as newly opened files.
Regarding your RAM being full:
An almost full RAM is usually a sign that your system is working well, as Linux uses the RAM as a cache. If you run the following command:
free -h
you will get an output something like this:
total used free shared buff/cache available
Mem: 28Gi 6.1Gi 3.5Gi 475Mi 17Gi 22Gi
Swap: 8.0Gi 12Mi 8.0Gi
Notice that mine says that I only have 3.5Gi of RAM free? However, I’m only using a little over 6Gi. Another 17Gi of RAM is being used as a cache. Items in the RAM cache will be discarded automatically if more RAM is required for a running application. This is why the last field: “available” is important. I only have 3.5Gi of empty RAM, but another 17Gi can be freed up immediately if and when required.
But you should also be aware that, as your system only has 4GB of RAM, most of the RAM will be taken up by running applications. This is also why zswap might be better for your system. You can’t really store a lot of swap in the RAM, so you want to be using the most efficient & effective swap manager to be moving pages between the RAM & disk, and deleting expired pages from swap.