Como criar arquivo de memória Swap e ativar no Linux sem fazer logoff!

Nesse tutorial, veremos como criar arquivo de memória Swap e ativar no sistema.  Deste modo, você não irá precisar fazer logoff. Assim, já utilizará o sistema com mais folga com os processos ativos. O uso de memória swap já foi essencial no passado, quando não tínhamos os grandes volumes de memória RAM.

No caso de desktops, quando o usuário possui um bom tamanho de RAM livre, não é preciso criar memória Swap. Todos os sistemas Linux, hoje em dia, são bastante otimizados. No entanto, se você costuma estourar a sua memória RAM, então saiba que é mais que recomendado ter uma área de troca, ou melhor, swap.

O que é a memória Swap

A palavra SWAP pode ter o significado pela tradução do inglês, troca. Por outro lado temos o acrônimo de Space (espaço físico), WAttage (potência), Perfomance (desempenho). Com isso, este anagrama explica a possibilidade de um processo utilizar mais memória virtual do que a fisicamente existente.

A memória Swap (troca de memória) é uma técnica criada na tentativa de melhorar o problema da insuficiência de memória durante a execução de alguns processos em ambientes multitarefas. Essa técnica consiste em transferir automaticamente um processo da memória principal para discos (swap out) e vice-versa.

Um dos problemas gerados pela memória Swap é a relocação dos programas, como no caso de um programa que saia e volte muitas vezes para a memória, onde é necessária que a realocação da mesma seja realizada automaticamente pelo loader a cada operação de carregamento. A melhor solução para esta relocação é realizada através do registrador base ou registrador de relocação. Toda vez que um programa é carregado na memória, o seu registrador base é carregado com o endereço inicial da região de memória onde o programa será carregado.

Vantagem e Desvantagem da memória swap no Linux

A princípio, a vantagem de ter memória Swap é poder ter essa troca sem afetar o sistema operacional. Logo, caso a aplicação necessite de mais memória e não tendo toda essa memória física (RAM) suficiente, o sistema operacional automaticamente gerencia da melhor forma possível distribuindo os processos para a memória Swap.

O sistema operacional pode procurar um processo não ativo e movê-lo para a área de troca (partição do disco rígido ou arquivo) e, dessa maneira, liberar a memória principal para carregar outros processos. Embora não seja necessário, o processo extraído da memória pode permanecer no disco, uma vez que não usa memória física. Quando necessário, o sistema faz uma troca novamente, passando-o do disco para a RAM. Consequentemente o processo é lento quando comparado o uso de RAM com discos, porém dá a impressão de que há mais memória disponível.

Como criar arquivo de memória Swap no Linux

Geralmente ao instalar qualquer distribuição GNU/Linux, na opção automático da partição do disco onde será instalado o sistema, também temos a criação automática da partição Swap. No entanto, se for fazer uma instalação personalizada, deverá se atentar a criar uma partição e marcá-la como Swap.

O arquivo de memória Swap é necessário quando não temos partição livre ou não temos espaço para criação da memória virtual e o sistema operacional necessita de memória de troca para o melhor desempenho dos processos.

1. Criar arquivo de memória Swap

Provavelmente seu sistema já possua a Swap. Portanto, para verificar se seu sistema tem memória Swap e saber o tamanho da mesma, execute no terminal o comando abaixo:

A primeira etapa que precisamos fazer antes de criar a memória swap é verificar se o sistema possui ou não a swap criada:

Terminal
free -m
Criar arquivo de memória Swap e ativar no sistema – free -m

Criando memória swap no Linux

Com isso vemos que não há nenhuma memória Swap disponível, sendo assim, como estamos em um sistema de produção, faremos todo o processo com o sistema ativo sem precisar reiniciar o mesmo.

Assim sendo, devemos executar os comandos para criação de um diretório onde vai ficar armazenado o arquivo que será utilizado para memória Swap. Apesar de ser um simples arquivo, escolha bem o caminho pois precisaremos nos passos seguintes. Em seguida será criado o arquivo com o comando dd.

Executaremos os comandos seguintes com o privilégio de root.

Comando para criar a memória swap no Linux

Não esqueça, execute os comandos abaixo como root ou sudo, ou então o comando para criar memória swap no Linux não vai funcionar:

Terminal
mkdir /media/Swap
cd /media/Swap
dd if=/dev/zero of=/media/Swap/memoria_swap bs=1024 count=1048576 status=progress

Confira na imagem abaixo as saídas do comando dd no Terminal Linux:

Criar arquivo de memória Swap e ativar no sistema – mkdir, cd e dd

Explicando o comando dd para criar swap no Linux

  • if=/dev/zero : Lê o arquivo /dev/zero, um arquivo especial que provê todos caracteres null necessários para construir o arquivo memoria_swap.
  • of=/media/Swap/memoria_swap : Cria o arquivo memoria_swap e grava nele o conteúdo de /dev/zero.
  • bs=1024: O parâmetro bs indica que 1024 blocos deverão ser gravados/lidos por vez.
  • count=1048576: O parâmetro count limita a quantidade de blocos gravados a este número.
  • status=progress: O status=progress exibe o progresso da criação do arquivo.

2. Configurar arquivo de memória swap no Linux

Então para podermos usar o arquivo criado e compartilhar a memória Swap de 1 GB com o sistema, vamos ter que preparar o arquivo memoria_swap com o comando mkswap.

Comando para compartilhar memória swap recém criada com o sistema

Terminal
mkswap memoria_swap

Confira a imagem abaixo, nela o comando já compartilhou a memória swap com o nosso sistema Linux.

Criar arquivo de memória Swap e ativar no sistema – mkswap

Agora, na sugestão dado pelo retorno do comando, vamos alterar as permissões do arquivo para uma maior segurança.

Comando para alterar as permissões do arquivo na memória swap no Linux

Terminal
chmod 0600 memoria_swap

Assim as permissões 0600 atribuídas ao arquivo indicam que terá permissão apenas de leitura e escrita pelo dono do arquivo, ou seja, apenas o root, ficando descartado qualquer tipo de permissão para grupos e outros usuários.

Criar arquivo de memória Swap e ativar no sistema – ls -l

3. Ativar memória Swap no sistema

Após criar e mudar as permissões do arquivo memoria_swap, vamos ativar a memória Swap criada para que o sistema possa utilizá-la de acordo com as necessidades dos processos.

A princípio, vamos ver como está nossa memória Swap com o comando free -mh.

Comando para ativar a memória Swap no Terminal Linux:
Terminal
free -mh
Criar arquivo de memória Swap e ativar no sistema – free -mh

Vemos que ainda não temos a memória Swap ativa no sistema e para ativarmos, vamos executar o comando swapon, assim sendo, para desativá-la execute o comando swapoff.

Comando para ativar memória swap no sistema

Terminal
swapon memoria_swap
Criar arquivo de memória Swap e ativar no sistema – swapon

Conforme a ativação da memória Swap, vemos com o comando free -mh que a memória já esta ativa no sistema.

4. Carregar memória Swap no boot do Linux

Apesar de termos criado e configurado o uso da Swap ela ainda não será ativada ao iniciar o sistema. Dessa forma para que no próximo boot do sistema a memória Swap seja ativada, adicionamos a linha referente a memória no arquivo /etc/fstab.

Abra um editor de texto de sua preferência como usuário root. No nosso exemplo vamos utilizar o nano pelo terminal.

Terminal
nano /etc/fstab

Sem dúvida que o conteúdo de seu arquivo difere, focaremos apenas na linha referente a Swap. Assim, com o arquivo aberto vamos adicionar a seguinte linha abaixo:

Terminal
/media/Swap/memoria_swap swap swap defaults 0 0
Criar arquivo de memória Swap e ativar no sistema – nano

Enfim após adicionar a linha, salve o arquivo e feche-o. Temos certeza que o tutorial ajudou você a criar memória swap no Linux, e o melhor, sem precisar desligar ou reiniciar.

Pronto! Memória Swap ativa no sistema. Inclusive quando seu sistema iniciar ela já deverá estar ativa. Então, se gostou do tutorial, compartilhe. Faça parte do nosso grupo no Telegram. Da mesma forma, para receber atualizações de nosso blog, siga-nos no Twitter.

Share This Article
Usuário do GNU/Linux desde 2004, graduado em Sistemas de Informação, entusiasta na cultura DevOps.
Sair da versão mobile