For Linux zswap (lz4+z3fold) works quite well as a tier between RAM and direct swapping to disk. When RAM use hits a threshold it compresses pages and stores them back in memory (as opposed to writing them to disk). I've had pretty good performance with it provided there is enough CPU capacity for the compression and decompression. At the very least the slowdown when you begin swapping is much more gradual, especially on low memory machines.