O Raspberry Pi tem uma quantidade limitada de RAM e não pode ser adicionado mais, pois é um computador de placa única. O Pi 3 tem apenas 1 GB de RAM. O Pi 4, dependendo do modelo, tem até 8 GB de RAM. Às vezes, os aplicativos de software exigem mais memória. Na maioria das vezes, esse requisito de memória é um breve pico. Quando isso acontece, o Raspberry Pi "congela" ou "trava" devido à memória limitada. A falha também pode levar à corrupção do cartão SD, resultando em perda de dados.
Para evitar a possibilidade de uma falha, a memória virtual na forma de troca pode ser configurada no Pi. A quantidade certa precisa ser adicionada no dispositivo correto para tirar o melhor proveito dele. Todo o processo é explicado sistematicamente com instruções para vários sistemas operacionais.
Entendendo como o processo de memória funciona
RAM é a memória física. No Pi 4, está localizado ao lado do processador. No Pi 3, a RAM é colocada na parte inferior da placa de circuito impresso. Ao contrário das placas-mãe comuns, a RAM em um Raspberry Pi é soldada à placa, o que restringe a possibilidade de aumentar sua capacidade.
Quando um aplicativo de software é executado, ele usa uma parte da RAM para seu funcionamento. Pense em um navegador como um exemplo. Quando uma página da Web é carregada em uma guia, ela armazena os dados da página na RAM junto com a memória necessária para executar o programa do navegador. Quando mais guias são carregadas, a RAM também é preenchida. Sem memória virtual, em algum momento a RAM ficará sem capacidade e novas guias não poderão ser carregadas. A navegação nas guias existentes também diminuirá significativamente, pois não há memória livre para operações básicas. Neste ponto, o Pi parará de responder e a única maneira de trazê-lo de volta é através do ciclo de energia (desligando e ligando).
Esse desligamento aleatório pode causar sérios problemas, especialmente quando o sistema operacional está no cartão SD. O cartão pode ficar bloqueado para o estado “somente leitura” ou, na pior das hipóteses, ser totalmente corrompido. É quando ocorre a perda total de dados.
O impacto da condição de “falta de memória (OOM)” pode ser minimizado configurando a troca para ser usada como memória virtual. A troca pode ser configurada na forma de um arquivo ou partição no disco e funciona como uma extensão da RAM. Quando a RAM disponível se esgota, os dados raramente usados nela são movidos para troca em um processo chamado troca. No caso do exemplo do navegador, seriam dados de uma guia carregada que é menos usada. Quando a guia for ativada novamente, esses dados serão movidos de volta para a RAM para mostrar a página da web.
A troca trará estabilidade para operações com uso intensivo de memória. Se houver um breve pico no consumo de memória, a troca ajudará a absorver o pico e manter o sistema funcionando em vez de terminar em um congelamento total.
Escolhendo o dispositivo certo para configurar a troca
A troca é essencial, mas a localização e o tamanho da troca a ser configurada também são igualmente importantes. Idealmente, a troca deve estar em um dispositivo rápido. Ao lado dos caches no processador, a RAM é a segunda memória mais rápida. DDR4 no Pi tem uma largura de banda de 4,4 GBps (gigabytes por segundo). A troca precisa estar em um dos outros dispositivos de armazenamento disponíveis.
Se um cartão SD for usado para o sistema operacional, uma pequena área de troca é configurada nele por padrão. Você pode verificar seu tamanho usando o comando:
livre -m
99 MB não é uma quantidade significativa de swap. Vai encher bem rápido. Os cartões SD têm ciclos de gravação limitados, pois usam memória flash e a troca excessiva pode reduzir sua vida útil. Além disso, eles têm baixa largura de banda de cerca de 50 MBps com desempenho de leitura/gravação de arquivos de 4k muito menor, o que é essencial para a troca de arquivos menores.
Os discos rígidos têm discos giratórios neles. Embora confiáveis, eles têm tempos de busca mais altos e não são úteis para troca.
Um SSD barato para o sistema operacional é uma escolha razoavelmente melhor. Os algoritmos de nivelamento de desgaste reorganizam os dados de células flash desgastadas e prolongam sua vida útil. Em um Pi, a largura de banda do SSD é de cerca de 150 MBps e tem um desempenho de arquivo 4k muito melhor em comparação com cartões SD. A velocidade de busca também é boa. Mas usar o mesmo disco para operação simultânea de swap e OS gargalos. Como a troca faz gravações intensivas, o disco pode atingir o TBW (total de bytes gravados) mais cedo do que o esperado, especialmente em SSDs de baixa capacidade.
Idealmente, o Pi precisa que seu sistema operacional e swap estejam em unidades diferentes, um disco do sistema operacional e um SSD dedicado para troca. Isso daria longevidade para o disco do sistema operacional e velocidade para a troca. Além disso, a largura de banda estará disponível para ambos simultaneamente, pois são dispositivos diferentes.
Como configurar a troca em sistemas operacionais Raspberry Pi
A melhor forma de configurar isso depende de qual sistema operacional seu dispositivo está usando.
SO de desktop (Raspberry Pi OS, Ubuntu Desktop e Ubuntu Mate)
Conecte o SSD a ser usado como swap usando um Adaptador USB 3.0 para SATA III e inicie o Pi. O processo mostrado aqui é implementado no Raspberry Pi OS e deve funcionar igualmente bem nos outros sistemas operacionais. Em caso seu sistema operacional Raspberry Pi precisa ser atualizado, faça isso.
Instale a ferramenta necessária para gerenciar discos usando GUI
sudo apt instalar gnome-disk-utility
Abrir Discos a partir de Iniciar > Acessórios.
Você também pode usar este comando no terminal para abrir a ferramenta:
gnome-discos
Formate o SSD no menu.
Crie uma partição usando o controle com + símbolo
A partição inteira pode ser alocada para troca, mas um máximo de duas vezes a RAM seria suficiente.
Dê um nome ao volume e selecione Outro para o Tipo de partição.
Selecionar Trocar partição Linux e criá-lo.
Você pode montá-lo imediatamente clicando no botão de controle com o Toque símbolo. Ele será montado durante esta sessão, mas não permanecerá nas reinicializações. Ele deve ser configurado para ser montado automaticamente. Clique no Engrenagem controlar e selecionar Editar opções de montagem.
Alternar Padrões de sessão do usuário e clique OK. Authenticate e Disks adicionarão uma entrada ao /etc/fstab para montá-lo a cada inicialização.
Reinicie o Pi, abra o terminal e verifique o novo tamanho de troca:
livre -m
Configuração adicional apenas para Raspberry Pi OS
Agora que a troca está configurada em um SSD, a troca antiga não é necessária. Você pode desativá-lo editando:
sudo nano /etc/dphys-swapfile
Defina este parâmetro como zero:
CONF_SWAPSIZE=0
Sistema operacional do servidor (Ubuntu, sistema operacional Raspberry Pi)
Este processo é através do CLI. Para facilitar, você pode preparar a partição de troca usando a ferramenta Discos em outro computador, depois conectar o SSD ao Pi e inicializar o servidor. Conecte-se ao Pi usando SSH para prosseguir.
Encontre a partição swap:
lsblk
sda1 isso é. Encontre o UUID deste dispositivo: sda1
blkid
Copie o UUID (exclusivo para você) e edite o arquivo fstab para montá-lo automaticamente a cada inicialização:
sudo nano /etc/fstab
Adicione esta linha:
UUID=”SEU UUID” nenhum troca sw 0 0
Salve, reinicie e verifique o tamanho da troca:
livre -m
Otimizando o uso da memória virtual para operação à prova de falhas
A troca configurada deve ser bem utilizada. Isso é feito configurando um parâmetro chamado swappiness. Para encontrar o valor atual:
cat proc/sys/vm/swappiness
Definido como 60 por padrão, o valor define com que agressividade o kernel troca o conteúdo da RAM. Pode ser definido entre 1 e 100. O valor adequado depende de sua necessidade específica. Se você perceber que o Pi está ficando sem RAM consistentemente, defina-o como 100. Caso contrário, defina-o para um valor mais baixo. Edite este arquivo para configurá-lo:
sudo nano /etc/sysctl.conf
Adicione esta linha no final:
vm.swappiness=100
Advertências sobre sobrecarga de processamento e SSD TBW
A troca operacional requer poder de processamento, geralmente um dos quatro núcleos do Pi se dedica à troca quando a RAM está absolutamente cheia.
O conselho geral que circula por aí é não usar SSDs para troca, é verdade para o caso em que o sistema operacional (junto com os dados do usuário) e a troca estão no mesmo disco. Não se aplica neste caso quando a troca é configurada conforme explicado aqui. Embora o SSD usado acabe cruzando seu TBW e falhe, ele pode simplesmente ser substituído por um novo, pois não há dados importantes armazenados nele com esse processo.
Troque a vantagem pelo seu Pi
Configurar o swap certo é uma ótima maneira de tornar o Pi à prova de falhas. A estabilidade se deve ao fato de que a memória geral disponível é um fator mais significativo do que a velocidade da memória durante OOM. O Pi não congelará e, assim que o uso do pico cair, ele responderá mais rapidamente novamente.
Raspberry Pi é um computador minúsculo com grande flexibilidade. Ele pode ser usado para diferentes propósitos com vários sistemas operacionais leves. O Pi 4 serve bem como um substituto para computadores comuns e também um dispositivo embarcado para uso industrial que pode funcionar 24 horas por dia, 7 dias por semana.