Nesse tutorial irei mostra como usar zram como swap, já montei na minha distro e deu muito certo. Existem pacotes nos repositórios para isso, não sei se funcionam da mesma maneira que esse código, mas achei bem legal fazer na “unha”.
O módulo do kernel zram (anteriormente chamado de compcache ) fornece um dispositivo de bloco compactado na RAM. Se você usá-lo como dispositivo de swap, a RAM pode conter muito mais informações, mas usa mais CPU. Ainda assim, é muito mais rápido do que trocar para um disco rígido. Se um sistema costuma voltar a trocar, isso pode melhorar a capacidade de resposta. Usar o zram também é uma boa maneira de reduzir os ciclos de leitura/gravação de disco devido à troca em SSDs.
Carregando os Módulos zRam
Para começarmos a usar a zRam primeiros precisamos carregar os módulos do Kernel usando modprobe para que funcione corretamente.
O primeiro passo é digitar este comando no seu terminal: sudo modprobe zram
Configure o Algoritmo LZ4
Ativado os módulos do Kernel precisamos agora configurar um algoritmo extremamente rápido chamado LZ4. Para isso basta digitar o seguinte comando: sudo sh -c "echo 'lz4' > /sys/block/zram0/comp_algorithm"
Definindo o espaço em disco para a zRam
Feito o primeiro passo devemos criar um espaço para a zRam. Nesse tutorial irei usar 2G mas você pode usar o que for necessário para execução de seus apps sem travamentos. Lembrando que você deve ter esse espaço em disco para a criação do espaço da zRam, mesmo que não apareça esse espaço como utilizado, a zRam vai utiliza-lo quando necessário. Não é necessário fazer alterações nas partições de seus discos pois o processo é automatizado e não altera o disco. Digite o próximo comando para criar o espaço da zRam: sudo sh -c "echo '2G' > /sys/block/zram0/disksize"
Criando Blocos de Troca(SWAP)
Agora devemos informar ao sistema que a partição criada será uma partição de troca do sistema. Para isso basta usar o próximo comando: sudo mkswap --label zram0 /dev/zram0
Ativando a Prioridade da zRam
Este passo é muito importante pois sem ele a zram não irá iniciar junto do arranque do sistema e pode torna a inicialização do sistema um pouco lento. Digite o próximo comando para definir a prioridade da zram: sudo swapon --priority 100 /dev/zram0
Iniciando a zRam automaticamente na inicialização
Para ativar automaticamente o zRam na inicialização crie um serviço systemd ( zram.service ) usando um editor de texto, como nano: sudo nano /etc/systemd/system/zram.service
Adicione o seguinte ao zram.service:
[Unit]
Description=zRam block devices swapping
[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c "modprobe zram && echo lz4 > /sys/block/zram0/comp_algorithm && echo 2G > /sys/block/zram0/disksize && mkswap --label zram0 /dev/zram0 && swapon --priority 100 /dev/zram0"
ExecStop=/usr/bin/bash -c "swapoff /dev/zram0 && rmmod zram"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Obs.: no código acima você deve informar o tamanho do disco pois ele determinará o tamanho mesmo que a configuração anterior tenha um tamanho diferente. Após editar o código salve com CTRL+O e feche o arquivo com CTRL+X
Ative o zram.service para ser executado automaticamente na inicialização: sudo systemctl enable zram
Caso queira desativar o dispositivo de bloco zRam
Desativar dispositivo de bloco zRam: sudo swapoff /dev/zram0
Remover o módulo zRam do kernel: sudo rmmod zram
Desativar o zram.service no sysmtemd: sudo systemctl disable zram.service
Considerações Finais
Você acabou de configurar o módulo kernel zram. Com ele você poupa a vida de seus discos HDD ou SSD e garante uma melhor performance na sua distro. Este tutorial foi feito no Manjaro Linux mas pode ser reproduzido em qualquer distro Linux.
Você também pode criar outros módulos zram contando que os mesmos vão de 0 a 8 somente e qualquer acima desses não irá funcionar.
Diga-nos abaixo na sessão de comentários se você conseguiu ativar a zram e como está sendo sua experiência com a mesma.