O que Você Precisa Saber Sobre a Partição Swap no Linux

Quando você instala o Linux, o processo de configuração provavelmente adicionará uma partição swap ao disco rígido junto com as partições para o próprio Linux. Mas para que serve essa partição swap e ela é realmente necessária?
Leia também: Eu Preciso de Swap no Ubuntu? A Abordagem Realista
O que é swap?
Quando um sistema operacional multitarefa fica sem memória física, ele não consegue iniciar novos processos ou alocar mais memória para processos existentes. Para resolver esse problema, um bloco especial de espaço no armazenamento local (geralmente o disco rígido) é reservado para atuar como uma área de espera temporária para processos que não estão sendo executados no momento. O SO “troca” o processo inativo da memória para o disco rígido. Isso libera memória para novos trabalhos. Quando o processo inativo se torna ativo novamente, ele será trocado de volta do armazenamento local para a memória. Esse procedimento é conhecido como swapping.
O espaço swap é realmente necessário?
O espaço swap é tecnicamente necessário? Não. O Linux pode funcionar sem ele e em algumas situações, como soluções embarcadas, o Linux pode ser executado sem swap. Se o sistema operacional entrar em uma situação em que não tenha memória suficiente, ele entrará em pânico e parará. Se houver RAM física suficiente, a máquina funcionará sem problemas.
O espaço swap é praticamente necessário? Sim. Embora a troca desacelere um computador (já que ler e gravar em um disco rígido é muito mais lento do que acessar a RAM) e ter o máximo de memória física disponível seja a melhor solução para evitar swapping, há situações legítimas em que a troca é desejável. Por exemplo, durante a inicialização do sistema, pode haver processos que são executados (e, portanto, consomem memória do sistema), mas depois efetivamente ficam inativos por longos períodos de tempo. Ou memória que é alocada, gravada e depois nunca mais usada. Nessas situações, o algoritmo de swapping começará a migrar essa memória para o disco rígido, liberando assim valiosa memória do sistema. Isso garante que a quantidade máxima de RAM esteja disponível o tempo todo e, portanto, aumenta o desempenho.

Em máquinas que não têm RAM física suficiente para que tudo resida na memória, o uso do espaço swap é essencial!
Para complementar, vale a pena mencionar que o Linux também possui um subsistema chamado Out-Of-Memory Killer (OOM), que, em vez de parar o núcleo quando fica sem memória, começa a eliminar processos para liberar recursos. Suas ações são configuráveis.
Quanto espaço swap devo alocar?
Não há uma regra absoluta e, uma vez que o espaço em disco rígido é barato (dólar por Gigabyte), é melhor alocar espaço demais do que de menos. Como regra geral, você deve ter duas ou três vezes a quantidade de espaço swap em relação à memória física.
Adicionando swap sem expandir a partição swap
Existem duas maneiras de adicionar espaço swap a um sistema sem alterar a partição swap existente. Uma maneira é usar uma partição swap em outro disco, a outra é usar um arquivo swap.
Para usar outro disco rígido, crie uma partição do tipo “Linux swap” (código 82) e, em seguida, execute o comando “mkswap“ para preparar o espaço swap:
mkswap /dev/sdb2Onde /dev/sdb2 é o nome da partição que você criou. Para usar o espaço swap imediatamente, use o comando “swapon“:
swapon /dev/sdb2Use “swapon -s“ para obter uma lista dos espaços swap atualmente utilizados. Para adicionar permanentemente o espaço swap ao sistema, você precisará editar o arquivo /etc/fstab e adicionar uma linha semelhante a esta:
/dev/sdb2 none swap sw 00Se o seu sistema estiver usando identificadores únicos para nomear os discos, use o comando blkid para obter uma lista de ids para os dispositivos. A linha para montar o espaço swap no /etc/fstab ficaria assim:
UUID=036da155-1ea1-4392-b8d4-700f65aa1ead none swap sw 00Para usar um arquivo para swap, crie um arquivo em branco grande (usando dd) no sistema de arquivos que você deseja usar para swapping. Por exemplo, para criar um arquivo de 1GB, digite:
dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576Onde /store/swapfile é o caminho para o arquivo swap no sistema de arquivos desejado.
Assim como na partição swap adicional, o arquivo agora precisa ser preparado com mkswap e depois usado com swapon. Ele também precisa ser adicionado ao arquivo /etc/fstab. O procedimento é exatamente o mesmo que acima, mas você deve usar /store/swapfile em vez de /dev/sdb2 como parâmetro do espaço swap.
Swappiness
O núcleo do Linux pode ser ajustado para definir quão agressivamente ele deve tentar trocar processos da memória. Essa tendência é controlada por uma variável do núcleo chamada swappiness. Um valor de swappiness de 0 significa que o núcleo evitará a troca o máximo possível, enquanto 100 significa que o núcleo será agressivo em como usa o espaço swap. A configuração padrão para muitas distribuições do Linux é 60. É possível mudar o número dinamicamente usando este comando:
sudo sysctl vm.swappiness=10Para definir permanentemente um valor, você precisa alterar (ou adicionar, se não existir) a variável vm.swappiness no arquivo /etc/sysctl.conf.
Deixe-nos saber se você tiver perguntas sobre swap no Linux.
Este artigo foi publicado pela primeira vez em dez de 2013 e foi atualizado em ago de 2020.
Imagem de crédito: swap