Cleancache vs zram?

9

Eu tenho um laptop antigo aqui com apenas 512 MB de RAM. Desde alguns lançamentos do kernel, estou usando o zram para converter 256 MB dele em um ramdisk compactado que é então usado como swap. Isto provou ser muito bem sucedido e o sistema é muito mais responsivo, o uso de swap (baseado em disco rígido) diminuiu consideravelmente, o que atrasou o sistema antes.

Desde o linux 3.0, o kernel também inclui cleancache que, usando algo como zram como um backend, deve compactar transparentemente as páginas do cache de páginas. Tanto quanto eu posso ver isso é diferente de zram .

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

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

    
por lytenyn 02.08.2011 / 10:53

2 respostas

9

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.

    
por 03.08.2011 / 16:22
7

Como complemento à resposta acima, consulte também o link para obter uma explicação detalhada sobre a tecnologia.

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

    
por 25.08.2011 / 09:56