Cleancache vs zram?

9

Eu tenho um laptop antigo aqui com apenas 512 MB de RAM. Desde algumas versões do kernel, estou usando o zram para converter 256 MB em um ramdisk compactado que é usado como swap. Isso provou ser muito bem-sucedido e o sistema é muito mais responsivo, o uso de troca (suportado pelo disco rígido) diminuiu consideravelmente, o que atrasou o sistema antes.

Desde o linux 3.0, o kernel também inclui o cleancache que, usando algo como o zram como back-end, deve compactar transparentemente as páginas do cache da página. Tanto quanto posso ver, isso é diferente do zram .

Devo ativar os dois no meu laptop? Ou o cleancache realmente substitui a solução zram ?

Edit: Eu encontrei este link do fórum do gentoo , onde parece que eu também tenho que habilitar o CONFIG_ZCACHEque faz com que o cleancache use o zram para obter algo semelhante ao que eu tinha antes. Parece que eu habilito tudo isso e não uso o zram explicitamente depois. Alguém pode confirmar isso?

lytenyn
fonte

Respostas:

9

O Zram cria um dispositivo de bloco suportado por memória ram compactada. Você pode usar esse dispositivo de bloco para troca. Normalmente, a pressão da memória resulta primeiro no descarte do cache, e somente depois que a maior parte do cache foi liberada e a memória ainda está fraca o sistema começa a trocar.

O CleanCache permite que as páginas do cache da página sejam migradas para um backend, como o xen tmem, que é gerenciado pela memória pelo hipervisor e compartilhado entre vários convidados da VM. O objetivo é permitir que vários convidados da VM armazenem em cache os mesmos dados usando a mesma ram, em vez de cada um ter seu próprio cache com sua própria cópia dos mesmos dados.

O ZCache é outro backend do CleanCache. Em vez de passar a memória para o hipervisor a ser retido (que só se aplica se você estiver usando um ambiente de VM Xen), ele armazena as páginas de cache compactadas em memória ram, semelhante ao Zram. A diferença é que o ZCache armazena páginas de cache de forma transparente, mas o Zram cria um dispositivo de bloco que você pode usar para troca.

Se você tiver aplicativos com fome de memória, precisará de espaço de troca para suportá-los, portanto ainda desejará usar o zram (provavelmente com um valor de swappiness muito alto). Isso ocorre porque o CleanCache compacta apenas 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 efetivo da memória restante para o cache do disco, compactando o cache do disco. Você pode até usar uma mistura das duas técnicas.

psusi
fonte
OK, obrigado. Portanto, as páginas de cache são apenas para cache de disco, não para memória de aplicativo. Isso não estava claro para mim.
lytenyn
7

Como complemento à resposta acima, consulte também https://lwn.net/Articles/454795 para obter uma explicação detalhada da tecnologia.

Pelo que entendi, o zram será substituído pelo frontswap , que ainda não está no kernel da linha principal, mas que tem a vantagem de que nenhum tamanho fixo de troca precisa ser configurado. Isso facilitará a ativação do cleancache e do frontswap (em vez do zram e do cleancache , onde a memória usada para o zram não pode ser usada para o cleancache ).

lytenyn
fonte