Criando Swap utilizando arquivo

Em algumas situações a memória da máquina não é suficiente para os processos que estão executando nela. Nessas situações é necessário o uso da memória secundária como extensão da memória RAM. Esse tipo de extensão é conhecido como Swap (ou área de troca).

Normalmente não é recomendado o uso da Swap por questões de desempenho da máquina, já que a memória secundária (como o HD) é lenta em comparação com a memória RAM, mas em casos onde aumentar a memória RAM não é possível, temos que partir para o uso da Swap. O comum é criação de Swap utilizando uma partição do HD, mas, se você não tiver uma partição disponível, existe a possibilidade de utilizar um arquivo como Swap, e o processo é bem simples.

Crie um arquivo vazio com o tamanho da Swap desejada:

dd  if=/dev/zero  of=/swapfile  bs=1024 count=1048576

O comando dd que é responsável por conversão e cópia de arquivo0s. Ele irá criar um arquivo vazio com o nome swapfile a partir da barra com o tamanho de 1GB (1048576).

Transforme o arquivo no formato de Swap:

mkswap /swapfile

Verifique a quantidade de memória antes de habilitar a Swap com o comando free:

free -m

É interessante também alterar as permissões por questões de segurança:

chmod 0600 /swapfile

Habilite a Swap:

swapon /swapfile

Verifique novamente o total de memória com o comando free ou digite o seguinte comando:

cat /proc/swaps

Para não perder a Swap ao reiniciar o computador acrescente a seguinte linha no arquivo /etc/fstab:

/swapfile          swap            swap    defaults        0 0

Agora é só utilizar. Lembrando que essa "memória" é extremamente lenta e só é recomendado quando não há memória RAM disponível.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6