O Zram cria um dispositivo de bloco suportado por memória ram compactada. Você pode usar esse dispositivo de bloco para swap. Normalmente, a pressão da memória primeiro resulta no cache sendo descartado, e somente após a maior parte do cache ter sido liberada e a memória ainda estar apertada, o sistema inicia a troca.
O CleanCache permite que páginas do cache de páginas sejam migradas para um back-end, como o xen tmem, que é a memória gerenciada pelo hipervisor e compartilhada entre vários convidados da VM. O objetivo disso é permitir que vários convidados da VM armazenem em cache os mesmos dados para fazer isso usando o mesmo RAM, em vez de cada um ter seu próprio cache com sua própria cópia dos mesmos dados.
O ZCache é outro back end do CleanCache. Em vez de passar a memória para o hypervisor para manter (o que só se aplica se você estiver usando um ambiente Xen VM), ele armazena as páginas de cache compactadas em memória RAM, semelhantes ao Zram. A diferença é que o ZCache armazena transparentemente as páginas de cache, mas o Zram cria um dispositivo de bloco que você pode usar para trocar.
Se você tiver aplicativos que consomem muita memória, precisará de espaço de troca para suportá-los, portanto, você ainda desejará usar o zram (provavelmente com um valor de swappiness muito alto). Isso ocorre porque o CleanCache apenas compacta as páginas de cache; a memória do aplicativo deve ser enviada para troca. Se você não estiver usando toda a sua memória em aplicativos, poderá usar o CleanCache com o back-end do ZCache para fazer um uso mais eficaz da memória restante para o cache de disco, compactando o cache de disco. Você pode até usar uma mistura das duas técnicas.