On Mon, Nov 5, 2018 at 9:37 PM Austin S. Hemmelgarn <ahferroin7@xxxxxxxxx> wrote: > > On 11/5/2018 10:58 AM, Adam Borowski wrote: > > On Mon, Nov 05, 2018 at 08:31:46PM +0530, Pintu Agarwal wrote: > >> Hi, > >> > >> I have one requirement: > >> I wanted to have a swapfile (64MB to 256MB) on my system. > >> But I wanted the data to be compressed and stored on the disk in my swapfile. > >> [Similar to zram, but compressed data should be moved to disk, instead of RAM]. > >> > >> Note: I wanted to optimize RAM space, so performance is not important > >> right now for our requirement. > >> > >> So, what are the options available, to perform this in 4.x kernel version. > >> My Kernel: 4.9.x > >> Board: any - (arm64 mostly). > >> > >> As I know, following are the choices: > >> 1) ZRAM: But it compresses and store data in RAM itself > >> 2) frontswap + zswap : Didn't explore much on this, not sure if this > >> is helpful for our case. > >> 3) Manually creating swapfile: but how to compress it ? > >> 4) Any other options ? > > > > Loop device on any filesystem that can compress (such as btrfs)? The > > performance would suck, though -- besides the indirection of loop, btrfs > > compresses in blocks of 128KB while swap wants 4KB writes. Other similar > > option is qemu-nbd -- it can use compressed disk images and expose them to a > > (local) nbd client. > > Swap on any type of a networked storage device (NBD, iSCSI, ATAoE, etc) > served from the local system is _really_ risky. The moment the local > server process for the storage device gets forced out to swap, you deadlock. > > Performance isn't _too_ bad for the BTRFS case though (I've actually > tested this before), just make sure you disable direct I/O mode on the > loop device, otherwise you run the risk of data corruption. Sorry, btrfs is not an option for us. We want something more lighter weight as our requirement is just < 200 MBs.