O quê é SWAP e configurando-a mais adequadamente
SWAP ou arquivo de troca é uma "extensão mais lenta" (normalmente criada em disco como partição) 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 e isso é agravado quando o disco é rígido (lentidão de acesso) ou mesmo SSD (aumenta o desgaste do dispositivo).
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 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 como a /etc/sysctl.d/. 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 mkdir -p /etc/sysctl.d
sudo nano /etc/sysctl.d/99-ramswap.conf
Coloque ali (ou procure pela linha):
vm.swappness = 20
Salve o arquivo e dê um " sudo sysctl --system " sem as aspas 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. O valor padrão sem arquivo de configuração fica em torno de 60 o que é adequado para a maioria das máquinas.
ZRAM SWAP é um bloco de memória RAM comprimida usada como SWAP, muito
mais rápida do que o disco já que esse bloco está na RAM da máquina.
Várias distribuições implementam a ZRAM como SWAP em vez da convencional
(em disco) justamente pela rapidez com que a manipulação dos dados é
feita: a RAM é muito mais rápida e como é um bloco comprimido (o
processador se encarrega de fazer o trabalho de compressão/descompressão
em tempo real), um bloco de 512MB pode chegar a 2GB de tamanho
"relativo" graças ao algoritmo de compressão que for escolhido,
normalmente o ZSTD ou LZ4.
Mas nem tudo é como deveria ser, já que essa compressão/descompressão
requer processamento e se a máquina tiver um processador mais "perereca"
podem ocorrer falhas nesse processo de compressão/descompressão de
dados, podendo fazer com que dados não sejam carregados de modo
adequado.
Vamos ver como instalar a ZRAM no Debian, abra o Terminal e instale o
recurso com o primeiro comando e habilite-o com os outros dois:
sudo apt install zram-tools
sudo systemctl enable zramswap
sudo systemctl start zramswap
O arquivo de configuração está em /etc/default/zramswap e vamos ver as linhas que interessam:
- ALGO=zstd - refere-se a qual algoritmo está sendo usado, pode ser o zstd, lz4, lzo e outros desde que estejam presentes no sistema. O zstd comprime mais mas é mais lento; o lz4 comprime menos mas é mais rápido;
- PERCENT=50 - refere-se à quantidade (%) de memória RAM total que vai ser usada como bloco dinâmico;
- #SIZE=512 - refere-se à quantidade em MB de memória RAM que vai ser usada como bloco dinâmico. Se usar essa não é para usar a de cima e vice-versa);
- PRIORITY=100 - a prioridade de uso da ZRAM em relação à outras swaps presentes no sistema.
Podem ser usados outros valores para PERCENT/SWAPPNESS como 20/30, 40/50 (sempre com percent maior do que a swappness) para ver o comportamento da máquina de modo a evitar erros nos processos de compressão/descompressão, como esses mostrados abaixo:
#################################################################
-- Estatísticas do ZRAM (/sys/block/zram0/mm_stat) --
Bytes originais (descomprimidos): 282 MB
Bytes comprimidos (armazenados): 56 MB
Taxa de compressão: 5,02 x
Páginas usadas: 64704512
Operações de compressão: 65581056
Operações de descompressão: 941
Falhas de compressão: 0
Falhas de descompressão: 305
-- Verificação rápida de erros de memória (dmesg) --
dmesg: leitura de buffer de kernel falhou: Operação não permitida
Nenhum erro crítico de memória ou zram encontrado no dmesg.
-- Recomendações --
Há falhas de descompressão! Recomenda-se testar a RAM com memtest86+
Diagnóstico finalizado.
####################################################################
Esses erros normalmente ocorrem por uso de processadores mais "pererecas" que podem não dar conta de ambos os processos de compressão e descompressão, além de eventuais problemas na memória RAM. Nessa configuração a ZRAM vai ser sempre a SWAP principal (prioridade 100); se o sistema também tiver uma SWAP em disco só quando a ZRAM estiver "no talo" é que a SWAP em disco passará a ser utilizada mas sempre com a prioridade de uso para a ZRAM.
Nenhum comentário:
Postar um comentário