How can I enable zswap?

Ubuntu 13.10's release notes mention that it includes Linux 3.11, which supports something called zswap:

Zswap is a lightweight, write-behind compressed cache for swap pages. It takes pages that are in the process of being swapped out and attempts to compress them into a dynamically allocated RAM-based memory pool. If this process is successful, the writeback to the swap device is deferred and, in many cases, avoided completely. This results in a significant I/O reduction and performance gains for systems that are swapping

That sounds cool. How can I try it out?


Solution 1:

Note: Some releases of the kernel aren't capable of using zswap. See bug #1315203.

According to the kernel documentation, zswap can be enabled by setting zswap.enabled=1 at boot time. Zswap is is still an experimental technology,

NOTE: Zswap is a new feature as of v3.11 and interacts heavily with memory reclaim. This interaction has not be fully explored on the large set of potential configurations and workloads that exist. For this reason, zswap is a work in progress and should be considered experimental.

so it would be wise to only enable it temporarily at first:

  1. Hold down Shift at boot to enter GRUB's menu.
  2. Edit the commands for Ubuntu to include zswap.enabled=1 at the end of the linux line.
  3. Press F10 to boot.

If you want to enable zswap permanently, edit the GRUB configuration file to include zswap.enabled=1 at the end of the GRUB_CMDLINE_LINUX_DEFAULT entry.

Solution 2:

Kernel 3.13.0-24-generic does not support zswap:

$ cat /boot/config-3.13.0-24-generic | grep ZSWAP
#CONFIG_ZSWAP is not set