Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Nesse artigo vou explicar o que é ZRAM e como habilitá-la no seu sistema e como conciliar o uso da ZRAM com a SWAP em disco.
O quê é SWAP em disco e configurando-a mais adequadamente
SWAP ou arquivo de troca é uma "extensão mais lenta" da memória RAM para onde os dados são enviados quando a RAM do sistema está cheia; é como se fosse "mais memória RAM" disponível só que no disco, seja em partição ou arquivo. No entanto o uso da SWAP em disco é muito mais lenta do que a memória RAM e quando ela começa a ser utilizada nota-se uma maior atividade de disco justamente pela escrita/leitura de dados que o sistema está fazendo.
A SWAP é criada normalmente na instalação do sistema mas há distribuições - como o Arch - que implementam a ZRAM SWAP em vez dela em disco (trataremos mais à frente) e normalmente essa SWAP em disco costuma ter ou o dobro ou a mesma quantidade da RAM total do sistema. O sistema em si está bem configurado para dar as devidas prioridades de uso entre a RAM e a SWAP mas podemos dar uma ajudinha aqui.
O arquivo de configuração de como o sistema lida com a prioridade de uso entre RAM e SWAP é /etc/sysctl.conf ou dentro de alguma outra pasta que possua essa configuração. O parâmetro é o vm.swappness e vamos então configurá-lo de forma mais adequada. Veja se o arquivo /etc/sysctl.conf existe na sua máquina; se não existir, crie o seguinte arquivo na pasta /etc/sysctl.d/ se lá já não houver um sysctl.conf:
sudo nano /etc/sysctl.d/99-ramswap.conf
Coloque ali:
Salve o arquivo e dê um "sudo sysctl --system" para carregar as novas configurações. Essa configuração diz "mais ou menos" ao sistema que quando a memória RAM estiver 80% usada é para começar a usar a SWAP - no caso, em disco. Outros valores podem ser testados, como 10 ou 30, tudo vai depender de como se comporta a sua máquina. Essa configuração posterga o uso da SWAP - no caso, em disco - para que o sistema tenha mais responsividade.
A SWAP é criada normalmente na instalação do sistema mas há distribuições - como o Arch - que implementam a ZRAM SWAP em vez dela em disco (trataremos mais à frente) e normalmente essa SWAP em disco costuma ter ou o dobro ou a mesma quantidade da RAM total do sistema. O sistema em si está bem configurado para dar as devidas prioridades de uso entre a RAM e a SWAP mas podemos dar uma ajudinha aqui.
O arquivo de configuração de como o sistema lida com a prioridade de uso entre RAM e SWAP é /etc/sysctl.conf ou dentro de alguma outra pasta que possua essa configuração. O parâmetro é o vm.swappness e vamos então configurá-lo de forma mais adequada. Veja se o arquivo /etc/sysctl.conf existe na sua máquina; se não existir, crie o seguinte arquivo na pasta /etc/sysctl.d/ se lá já não houver um sysctl.conf:
sudo nano /etc/sysctl.d/99-ramswap.conf
Coloque ali:
vm.swappness = 20
Salve o arquivo e dê um "sudo sysctl --system" para carregar as novas configurações. Essa configuração diz "mais ou menos" ao sistema que quando a memória RAM estiver 80% usada é para começar a usar a SWAP - no caso, em disco. Outros valores podem ser testados, como 10 ou 30, tudo vai depender de como se comporta a sua máquina. Essa configuração posterga o uso da SWAP - no caso, em disco - para que o sistema tenha mais responsividade.
'dnf remove zram-generator zram-generator-defaults' e reiniciar.
Como meu Swap é totalmente sobre SSD, dupliquei o tamanho da partição a ele destinada, vez que o tempo de acesso, comparando com dispositivos de estado móvel, é bem mais vantajoso.
Ao desabilitar a ZRam, além do ganho geral, percebi uma melhora substancial no acesso ao cache (para terem uma ideia: tenho WhatsApp corporativo; centenas de hits diários; o WA conseguiu rever os caches visivelmente mais rápido).
Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.