Como criar e usar arquivo de troca no Linux

Aprenda o conceito de arquivo de troca no Linux, por que ele é usado e suas vantagens sobre a partição de troca tradicional. Aprenda também a criar arquivos de swap e redimensioná-los.

Como criar e usar arquivo de troca no Linux

Este tutorial discute o conceito de arquivo de troca no Linux, por que ele é usado e suas vantagens sobre a partição de troca tradicional. Você aprenderá como criar um arquivo de troca ou redimensioná-lo.

O que é um arquivo de troca no Linux?

Um arquivo de troca permite que o Linux simule o espaço em disco como RAM. Quando o sistema começa a ficar sem RAM, ele usa o espaço de troca e troca algum conteúdo da RAM no espaço em disco. Isso libera a RAM para atender a processos mais importantes. Quando a RAM está livre novamente, ela troca os dados do disco. Eu recomendo ler este artigo para aprender mais sobre swap no Linux.

Tradicionalmente, o espaço de troca é usado como uma partição separada no disco. Ao instalar o Linux, você cria uma partição separada apenas para troca. Mas essa tendência mudou nos últimos anos.

Com o arquivo de troca, você não precisa mais de uma partição separada. Você cria um arquivo no root e diz ao seu sistema para usá-lo como espaço de troca.

Com a partição swap dedicada, redimensionar o espaço swap é um pesadelo e uma tarefa impossível em muitos casos. Mas com os arquivos de troca, você pode redimensioná-los como quiser.

Versões recentes do Ubuntu e algumas outras distribuições do Linux começaram usando o arquivo de troca por padrão. Mesmo se você não criar uma partição de troca, o Ubuntu cria um arquivo de troca de cerca de 1 GB por conta própria.

Vamos ver mais sobre arquivos de troca.

Trocar arquivo Linux

Verifique o espaço de troca no Linux

Antes de começar a adicionar espaço de swap, seria uma boa ideia verificar se você já tem espaço de swap disponível em seu sistema.

Você pode verificar isso com o comando gratuito no Linux. No meu caso, meu Dell XPS tem 14 GB de swap.

Comandos para usar no terminal

free -h total used free shared buff/cache available Mem: 7.5G 4.1G 267M 971M 3.1G 2.2G Swap: 14G 0B 14G

O comando free dá a você o tamanho do espaço de troca, mas não diz se é uma partição de troca real ou um arquivo de troca. O comando swapon é melhor nesse aspecto.

Comandos para usar no terminal

swapon --show NAME TYPE SIZE USED PRIO /dev/nvme0n1p4 partition 14.9G 0B -2

Como você pode ver, tenho 14,9 GB de espaço de troca e está em uma partição separada. Se fosse um arquivo de troca, o tipo seria arquivo em vez de partição.

Comandos para usar no terminal

swapon --show NAME TYPE SIZE USED PRIO /swapfile file 2G 0B -2

Se você não tiver um espaço de troca em seu sistema, ele deve mostrar algo assim:

Comandos para usar no terminal

free -h total used free shared buff/cache available Mem: 7.5G 4.1G 267M 971M 3.1G 2.2G Swap: 0B 0B 0B

O comando swapon não mostrará nenhuma saída.

Criar arquivo de troca no Linux

Se o seu sistema não tem espaço de troca ou se você acha que o espaço de troca não é adequado, você pode criar o arquivo de troca no Linux. Você também pode criar vários arquivos de troca.

Vamos ver como criar um arquivo de troca no Linux. Estou usando o Ubuntu 18.04 neste tutorial, mas também deve funcionar em outras distribuições Linux.

Etapa 1: Faça um novo arquivo de troca

Primeiro, crie um arquivo com o tamanho do espaço de troca que você deseja. Digamos que eu queira adicionar 1 GB de espaço de troca ao meu sistema. Use o comando fallocate para criar um arquivo de 1 GB.

Comandos para usar no terminal

sudo fallocate -l 1G /swapfile

Recomenda-se permitir que apenas o root leia e grave no arquivo de troca. Você verá até mesmo avisos como permissões não seguras 0644, 0600 sugeridas quando você tentar usar este arquivo para a área de troca.

Comandos para usar no terminal

sudo chmod 600 /swapfile

Observe que o nome do arquivo de troca pode ser qualquer um. Se precisar de vários espaços de troca, você pode dar a ele qualquer nome apropriado, como swap_file_1, swap_file_2 etc. É apenas um arquivo com um tamanho predefinido.

Etapa 2: Marque o novo arquivo como espaço de troca

Você precisa informar ao sistema Linux que este arquivo será usado como espaço de troca. Você pode fazer isso com a ferramenta mkswap.

Comandos para usar no terminal

sudo mkswap /swapfile

Você deve ver uma saída como esta:

Comandos para usar no terminal

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=7e1faacb-ea93-4c49-a53d-fb40f3ce016a

Etapa 3: Habilitar o arquivo de troca

Agora seu sistema sabe que o arquivo swapfile pode ser usado como espaço de troca. Mas ainda não acabou. Você precisa habilitar o arquivo de troca para que seu sistema possa começar a usar este arquivo como troca.

Comandos para usar no terminal

sudo swapon /swapfile

Agora, se você verificar o espaço de troca, verá que seu sistema Linux o reconhece e o usa como área de troca:

Comandos para usar no terminal

swapon --show NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2

Etapa 4: Tornar as alterações permanentes

Tudo o que você fez até agora é temporário. Reinicialize o sistema e todas as alterações desaparecerão.

Você pode tornar as alterações permanentes adicionando o arquivo de troca recém-criado ao arquivo/etc/fstab.

É sempre uma boa ideia fazer um backup antes de fazer qualquer alteração no arquivo/etc/fstab.

Comandos para usar no terminal

sudo cp /etc/fstab /etc/fstab.back

Agora você pode adicionar a seguinte linha ao final do arquivo/etc/fstab:

Comandos para usar no terminal

/swapfile none swap sw 0 0

Você pode fazer isso manualmente usando um editor de texto de linha de comando ou você apenas usa o seguinte comando:

Comandos para usar no terminal

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Agora você tem tudo no lugar. Seu arquivo de troca será usado mesmo depois de reiniciar o sistema Linux.

Ajuste a troca

Os parâmetros de troca determinam com que freqüência o espaço de troca deve ser usado. O valor de troca varia de 0 a 100. Um valor mais alto significa que o espaço de troca será usado com mais frequência.

A troca padrão no desktop Ubuntu é 60, enquanto no servidor é 1. Você pode verificar a troca com o seguinte comando:

Comandos para usar no terminal

cat /proc/sys/vm/swappiness

Por que os servidores devem usar uma troca baixa? Como a troca é mais lenta que a RAM e para um melhor desempenho, a RAM deve ser utilizada o máximo possível. Em servidores, o fator de desempenho é crucial e, portanto, o swappin é o mais baixo possível.

Você pode alterar a troca instantaneamente usando o seguinte comando systemd:

Comandos para usar no terminal

sudo sysctl vm.swappiness=25

No entanto, essa alteração é apenas temporária. Se quiser torná-lo permanente, você pode editar o arquivo /etc/sysctl.conf e adicionar o valor de troca no final do arquivo:

Comandos para usar no terminal

vm.swappiness=25

Redimensionando o espaço de troca no Linux

Existem algumas maneiras de redimensionar o espaço de troca no Linux. Mas antes de ver isso, você deve aprender algumas coisas sobre isso.

Quando você pede ao seu sistema para parar de usar um arquivo de troca para a área de troca, ele transfere todos os dados (páginas para ser mais preciso) de volta para a RAM. Portanto, você deve ter RAM livre suficiente antes de fazer a troca.

É por isso que uma boa prática é criar e habilitar outro arquivo de troca temporário. Dessa forma, ao trocar a área de troca original, seu sistema usará o arquivo de troca temporário. Agora você pode redimensionar o espaço de troca original. Você pode remover manualmente o arquivo de permuta temporário ou deixá-lo como está e ele será excluído automaticamente na próxima inicialização.

Se você tiver RAM livre suficiente ou se tiver criado um espaço de troca temporário, troque o arquivo original.

Comandos para usar no terminal

sudo swapoff /swapfile

Agora você pode usar o comando fallocate para alterar o tamanho do arquivo. Digamos que você altere para 2 GB de tamanho:

Comandos para usar no terminal

sudo fallocate -l 2G /swapfile

Agora marque o arquivo como espaço de troca novamente:

Comandos para usar no terminal

sudo mkswap /swapfile

E ligue a troca novamente:

Comandos para usar no terminal

sudo swapon /swapfile

Você também pode optar por ter vários arquivos de troca ao mesmo tempo.

Removendo arquivo de troca no Linux

Você pode ter seus motivos para não usar o arquivo de troca no Linux. Se você deseja removê-lo, o processo é semelhante ao que você acabou de ver ao redimensionar a troca.

Primeiro, verifique se você tem RAM livre suficiente. Agora troque o arquivo:

Comandos para usar no terminal

sudo swapoff /swapfile

A próxima etapa é remover a respectiva entrada do arquivo/etc/fstab.

E, no final, você pode remover o arquivo para liberar espaço:

Comandos para usar no terminal

sudo rm /swapfile

Você troca?

Acho que agora você tem um bom entendimento do conceito de arquivo de troca no Linux. Agora você pode criar facilmente um arquivo de troca ou redimensioná-lo de acordo com sua necessidade.

Se você tiver algo a acrescentar sobre este assunto ou se tiver alguma dúvida, por favor, deixe um comentário abaixo.

Via itsfoss.com. Você pode conferir o post original em inglês:

How to Create and Use Swap File on Linux

Última atualização deste artigo: 29 de august de 2019