Habilitando zSwap + zstd + z3fold

editado 11 de dezembro em Dicas e Truques

ZSWAP


zSwap é um recurso do kernel (introduzido na versão 3.11) que fornece um cache de swap compactado que basicamente troca ciclos de CPU por E/S de swap reduzida. 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 troca no cache 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 com poucos recursos – com um disco rígido lento ou pouca memória RAM.

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.

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.

Então, o zSwap está sendo usado, certo? Errado!
Parece que o zSwap está presente no kernel, mas só é usado se explicitamente habilitado no arranque do sistema.

Requisitos

É recomendado usar o Kernel 4.19 LTS ou versão superior.
O sistema precisa de um dispositivo de troca física: partição swap ou swapfile. (As versões 19.x do Linux Mint já trazem um dispositivo swapfile habilitado por padrão)

Avisos

zRam e zSwap nunca devem ser usados juntos para não degradar a performance do sistema.
Para maior eficácia de zSwap, use valores de Swappiness próximos do padrão (60).

Etapas para habilitar 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 root:
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=zstd zswap.zpool=z3fold"
Salve e feche o xed.

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

5. Habilitando o ZSTD e o Z3FOLD:
sudo su
apt install -y checkinstall build-essential
VERSION=1.3.7
cd /tmp
wget -nc https://github.com/facebook/zstd/releases/download/v1.3.7/zstd-1.3.7.tar.gz -O zstd.tar.gz
tar -xf zstd.tar.gz
cd zstd-$VERSION
make
echo y | checkinstall
echo zstd >> /etc/initramfs-tools/modules
echo z3fold >> /etc/initramfs-tools/modules
update-initramfs -u

6. Reinicie o seu PC.

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

8. Para verificar se ZSTD e Z3FOLD estão sendo usados, execute:
sudo dmesg | grep -i zswap:
Se o resultado disser: zswap: loaded using pool zstd/z3fold
Então você habilitou zSwap + zstd + z3fold com sucesso.

Referências:
https://www.phoronix.com/scan.php?page=news_item&px=MTI1MDM
https://en.wikipedia.org/wiki/Zram
https://ubunlog.com/mejorar-rendimiento-ubuntu-gracias-zswap/
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
https://events17.linuxfoundation.org/sites/events/files/slides/z3fold.pdf
https://facebook.github.io/zstd/
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.