Algumas semanas atrás eu postei
Depois de instalar o Raspberry Pi em seu
Ativando ZRAM no Raspberry Pi
O Raspberry Pi 4 vem com 1, 2, 4 ou 8 GB de RAM. Usarei o modelo de 1 GB, portanto ajuste as instruções com base no seu modelo. Com 1 GB de ZRAM, o arquivo de troca padrão (lento!) será usado com menos frequência. Eu usei esse script
As instruções são fornecidas no repositório vinculado acima. Instalação:
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh
Se você quiser editar a configuração:
vi /etc/default/zram-swap
Além disso, você pode ativar o ZRAM instalando zram-tools
. Se você usar este método, certifique-se de editar a configuração no arquivo /etc/default/zramswap
e instale cerca de 1 GB de ZRAM:
sudo apt install zram-tools
Após a instalação, você pode visualizar as estatísticas de armazenamento ZRAM com o seguinte comando:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $
Adicionando parâmetros de kernel para melhor uso do ZRAM
Agora vamos corrigir o comportamento do sistema quando o Raspberry Pi muda para troca no último momento, o que geralmente leva a travamentos. Vamos adicionar algumas linhas ao arquivo /etc/sysctl.conf e reinicie.
Estas linhas 1) atrasará o inevitável esgotamento da memória, aumentando a pressão no cache do kernel e 2) eles começam a se preparar para a exaustão da memória mais cedo, iniciando a troca com antecedência. Mas será muito mais eficiente trocar memória compactada por ZRAM!
Aqui estão as linhas para adicionar no final do arquivo /etc/sysctl.conf:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50
Em seguida, reinicializamos o sistema ou ativamos as alterações com o seguinte comando:
sudo sysctl --system
vm.vfs_cache_pression=500 aumenta a pressão do cache, o que aumenta a tendência do kernel de recuperar a memória usada para armazenar em cache diretórios e indexar objetos. Você usará menos memória por um longo período de tempo. A queda acentuada no desempenho é anulada pela troca anterior.
vm.swappiness = 100 aumenta o parâmetro com que agressividade o kernel irá trocar páginas de memória, já que estamos usando ZRAM primeiro.
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - os processos em segundo plano começarão a gravar imediatamente ao atingir o limite de 1%, mas o sistema não forçará a E/S síncrona até atingir dirty_ratio de 50%.
Estas quatro linhas (quando usadas com ZRAM) ajudarão a melhorar o desempenho se você tiver inevitavelmente A RAM acaba e começa a transição para swap, como a minha. Sabendo desse fato, e também levando em consideração a compactação de memória em ZRAM em três vezes, é melhor iniciar essa troca com antecedência.
Colocar pressão no cache ajuda porque estamos essencialmente dizendo ao kernel: "Ei, olhe, não tenho nenhuma memória extra para usar no cache, então, por favor, livre-se dele o mais rápido possível e armazene apenas os mais usados/importantes. dados."
Mesmo com o cache reduzido, se ao longo do tempo a maior parte da memória instalada estiver ocupada, o kernel iniciará a troca oportunista muito mais cedo, de modo que a CPU (compressão) e a E/S de troca não esperarão até o último minuto e usarão todos os recursos de uma vez quando é muito tarde. O ZRAM usa um pouco de CPU para compactação, mas na maioria dos sistemas com pequenas quantidades de memória ele tem um impacto muito menor no desempenho do que a troca sem ZRAM.
Em conclusão
Vejamos o resultado novamente:
pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi
pi@raspberrypi:~ $ sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5
264448 em ZRAM é quase um gigabyte de dados não compactados. Tudo foi para o ZRAM e nada foi para o arquivo de paginação muito mais lento. Experimente você mesmo essas configurações, elas funcionam em todos os modelos Raspberry Pi. Meu sistema de congelamento inutilizável se tornou funcional e estável.
Num futuro próximo, espero continuar e atualizar este artigo com alguns resultados de testes do sistema antes e depois da instalação do ZRAM. Agora simplesmente não tenho tempo para isso. Enquanto isso, fique à vontade para fazer seus próprios testes e me contar nos comentários. O Raspberry Pi 4 é uma fera com essas configurações. Aproveitar!
Sobre o assunto:
Fonte: habr.com