Ativando ZSWAP + LZ4

editado 16 de outubro em Dicas e Truques

ZSWAP


ZSwap é um recurso de kernel (introduzido na versão 3.11) que fornece um cache de RAM comprimido para páginas de troca (chamadas também páginas de swap). As páginas que de outra forma seriam trocadas para o disco são, em vez disso, comprimidas e armazenadas em um espaço de memória na RAM. Uma vez que o espaço está cheio ou a RAM está esgotada, a página menos usada recentemente é descomprimida e escrita no disco.

ZSwap (como ZRam também) permite ao Linux fazer um uso mais eficiente da RAM, uma vez que o sistema operacional pode armazenar mais páginas de memória no swap comprimido do que se a mesma quantidade de RAM tivesse sido usada como memória de aplicativo ou cache de disco. Isso é particularmente eficaz em máquinas que não possuem muita memória.

A diferença em relação a ZRam é que ZSwap funciona em conjunto com um dispositivo de swap, enquanto ZRam é um dispositivo de swap na RAM que não requer um dispositivo de swap de suporte.

A redução do uso do swap como resultado do uso de ZSwap (como ZRam também) efetivamente reduz a quantidade de desgaste colocada sobre armazenamento baseado em flash, resultando no prolongamento de sua vida útil. Além disso, o uso de ZSwap resulta em E/S significativamente reduzida para sistemas Linux que requerem swap.

Então ZSwap está sendo usado, certo? Errado!
Parece que o ZSwap é sempre carregado pelo kernel, mas não é usado a menos que ativado manualmente no arranque do sistema.

Algoritmo de compressão


Para compressão de página, o ZSwap usa módulos de compressor fornecidos pela API criptográfica do kernel. Ele usa, por padrão, o algoritmo de compressão LZO, mas isso pode ser alterado com o parâmetro zswap.compressor. LZ4 pode ser usado em vez de LZO para compressão e descompressão mais rápidas para uma taxa de compressão ligeiramente mais baixa.

Alertas

ZSwap e ZRam não devem ser usados juntos! A consequência seria a degradação da performance do sistema.
Para maior eficácia de ZSwap, sempre use valores de Swappiness próximos do padrão (60).

Pré-requisito

O sistema precisa de um dispositivo de troca física (partição swap ou swapfile).

Ativando ZSWAP

1. Verifique se o seu Kernel do sistema operacional vem com ZSWAP, executando:
cat /boot/config-`uname -r` | grep -i zswap
Se a resposta for CONFIG_ZSWAP=y, você está pronto para prosseguir.

2. Abra o grub como admin:
sudo xed /etc/default/grub

3. Mude a linha GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" para:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1 zswap.compressor=lz4"
Salve, feche o xed.

4. Atualize o Grub, executando:
sudo update-grub

5. Instale e habilite o LZ4:
sudo su
apt install -y checkinstall build-essential
VERSION=1.8.3
cd /tmp
wget -nc https://github.com/lz4/lz4/archive/v1.8.3.tar.gz -O lz4.tar.gz
tar -xf lz4.tar.gz
cd lz4-$VERSION
make
echo y | checkinstall
echo lz4 >> /etc/initramfs-tools/modules
echo lz4_compress >> /etc/initramfs-tools/modules
update-initramfs -u

6. Reinicie o seu PC.

7. Verifique se ZSWAP está ativado, executando:
cat /sys/module/zswap/parameters/enabled
Se ZSWAP estiver ativado, você deve ver Y na resposta.

8. Para verificar se o compressor LZ4 está sendo usado, execute:
sudo dmesg | grep -i zswap
Verifique a última linha da resposta. Se o resultado disser: zswap: loaded using pool lz4/zbud
Então você ativou o ZSWAP com sucesso.

Referências:
https://en.wikipedia.org/wiki/Zram
https://ubunlog.com/mejorar-rendimiento-ubuntu-gracias-zswap/
https://lz4.github.io/lz4/
https://forum.doozan.com/read.php?2,44269,44279
https://ubuntu-mate.community/t/enable-zswap-to-increase-performance/11302
https://fedoraproject.org/wiki/Zswap
Post edited by dougpess on
·

Comentários

  • dougpess disse:



    VERSION=1.8.1.2
    cd /tmp
    wget -nc https://github.com/lz4/lz4/archive/v1.8.1.2.tar.gz -O lz4.tar.gz
    tar -xf lz4.tar.gz
    cd lz4-$VERSION
    make
    echo y | sudo checkinstall
    echo lz4 | sudo tee -a /etc/initramfs-tools/modules
    echo lz4_compress | sudo tee -a /etc/initramfs-tools/modules
    sudo update-initramfs -u
    Só não entendi essa parte.
    ·
  • @Francis
    Essa parte serve para baixar e instalar a versão mais recente da biblioteca LZ4
    VERSION=1.8.1.2
    cd /tmp
    wget -nc https://github.com/lz4/lz4/archive/v1.8.1.2.tar.gz -O lz4.tar.gz
    tar -xf lz4.tar.gz
    cd lz4-$VERSION
    make
    echo y | sudo checkinstall
    Essa parte faz com que os módulos lz4 e lz4_compress sejam carregados na inicialização do sistema
    echo lz4 | sudo tee -a /etc/initramfs-tools/modules
    echo lz4_compress | sudo tee -a /etc/initramfs-tools/modules
    sudo update-initramfs -u
    ·
  • dougpess disse:

    @Francis
    Essa parte serve para baixar e instalar a versão mais recente da biblioteca LZ4

    VERSION=1.8.1.2
    cd /tmp
    wget -nc https://github.com/lz4/lz4/archive/v1.8.1.2.tar.gz -O lz4.tar.gz
    tar -xf lz4.tar.gz
    cd lz4-$VERSION
    make
    echo y | sudo checkinstall
    Essa parte faz com que os módulos lz4 e lz4_compress sejam carregados na inicialização do sistema
    echo lz4 | sudo tee -a /etc/initramfs-tools/modules
    echo lz4_compress | sudo tee -a /etc/initramfs-tools/modules
    sudo update-initramfs -u
    Beleza, mas quando chego nessa parte cd lz4-$VERSION da erro.
    :/tmp$ cd lz4-$VERSION
    bash: cd: lz4-: Arquivo ou diretório não encontrado



    ·
  • editado 27 de março
    Francis disse:

    Beleza, mas quando chego nessa parte cd lz4-$VERSION da erro.

    :/tmp$ cd lz4-$VERSION
    bash: cd: lz4-: Arquivo ou diretório não encontrado
    Antes você precisa rodar o comando VERSION=1.8.1.2 para que essa linha funcione.
    Post edited by dougpess on
    ·
  • dougpess disse:

    Francis disse:

    Beleza, mas quando chego nessa parte cd lz4-$VERSION da erro.

    :/tmp$ cd lz4-$VERSION
    bash: cd: lz4-: Arquivo ou diretório não encontrado
    Antes você precisa rodar o comando VERSION=1.8.1.2 para que essa linha funcione.
    Já tinha testado antes de posta, mas da a mesma mensagem.

    ·
Entre ou Registre-se para fazer um comentário.