Partição Linux Swap (Memória Virtual)

Este tipo de partição é usado para oferecer o suporte a memória virtual ao GNU/Linux em adição a memória RAM instalada no sistema. Este tipo de partição é identificado pelo tipo 82 nos programas de particionamento de disco para Linux. Para detalhes de como criar uma partição Linux Swap veja “Criando sistema de arquivos Swap em uma partição”.

Somente os dados na memória RAM são processados pelo processador, por ser mais rápida. Desta forma quando você está executando um programa e a memória RAM começa a encher, o GNU/Linux move automaticamente os dados que não estão sendo usados para a partição Swap e libera a memória RAM para a continuar carregando os dados necessários pelo. Quando os dados movidos para a partição Swap são solicitados, o GNU/Linux move os dados da partição Swap para a Memória. Por este motivo a partição Swap também é chamada de Troca ou memória virtual.

A partição swap é otimizada para permitir alta velocidade para mover dados da memória RAM para ela e vice versa. Note também que é possível criar o sistema de arquivos Swap em um arquivo ao invés de uma partição (veja “Criando um sistema de arquivos Swap em um arquivo”).

Criando sistema de arquivos Swap em uma partição

O programa usado para formatar uma partição Swap é o mkswap. Seu uso é simples:

mkswap /dev/sda?

Novamente veja “Identificação de discos e partições em sistemas Linux” caso não souber identificar seus discos e partições. O nome do dispositivo da partição Swap pode ser visualizado através de seu programa de particionamento, você pode usar o comando fdisk -l /dev/sda para listar as partições no primeiro disco rígido e assim verificar qual dispositivo corresponde a partição Swap.

A opção -c também pode ser usada com o mkswap para checar se existem agrupamentos danificados na partição. A opção -v1 permite a criação da swap usando mais de 128Mb (esta opção é a padrão).

Com a partição Swap formatada, use o comando: swapon /dev/sda? para ativar a partição Swap (lembre-se de substituir ? pelo número de sua partição Swap).

Observações:

Versões antigas do kernel do GNU/Linux 2.0.xx e anteriores somente suportavam partições Swap de até 128MB. Nos novos kernels foi introduzida uma nova versão da swap. Para converter a swap antiga para uma nova versão reformate-a usando mkswap -v1 /dev/sda? (onde /dev/sda? especifica sua partição swap, obtida com o fdisk -l /dev/sda).

Se utilizar mais que 1 partição Swap, pode ser útil o uso da opção -p NUM que especifica a prioridade em que a partição Swap será usada. Pode ser usado um valor de prioridade entre 0 e 32767, partições com número maior serão usadas primeiro, sendo que na montagem automática através de "mount -a" podem ser designados números negativos.

Procure usar o número maior para partições mais rápidas (elas serão acessadas primeiro) e números maiores para partições mais lentas. Caso precise desativar a partição Swap, use o comando: swapoff /dev/sda?.

Criando um sistema de arquivos Swap em um arquivo

Também é possível criar um arquivo que poderá ser usado como memória virtual. Veja passo a passo como fazer isso:

  1. Use o comando dd if=/dev/zero of=/tmp/troca bs=1024 count=64000 para criar um arquivo chamado troca vazio de 64Mb de tamanho em /tmp. Você pode modificar os parâmetros de of para escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de count.

  2. Execute mkswap /tmp/troca para formatar o arquivo. Após concluir este passo, o sistema de arquivos Swap estará criado e pronto para ser usado.

  3. Digite sync para sincronizar os buffers para o disco, assim você não terá problemas em um servidor com muito I/O.

  4. Ative o arquivo de troca com o comando swapon /tmp/troca.

  5. Confira se o tamanho da memória virtual foi modificado digitando cat /proc/meminfo ou free.

Observações:

  • Podem ser usadas partições de troca e arquivos de troca juntos, sem problemas.

  • Caso seu sistema já tenha uma partição de Swap, é recomendável deixar o acesso ao arquivo Swap com uma prioridade menor (usando a opção -p NUM com o comando swapon).

Partição Swap ou Arquivo?

Criar uma partição de Troca ou um arquivo de troca? Abaixo algumas vantagens e desvantagens:

  • A partição Swap é mais rápida que o arquivo Swap pois é acessada diretamente pelo Kernel. Se o seu computador tem pouca memória (menos que 512Mb) ou você tem certeza que o sistema recorre freqüentemente a memória virtual para executar seus programas, é recomendável usar uma partição Swap.

  • O arquivo de troca permite que você crie somente uma partição Linux Native e crie o arquivo de troca na partição EXT2.

  • Você pode alterar o tamanho do arquivo de troca facilmente apagando e criando um novo arquivo como descrito em “Criando um sistema de arquivos Swap em um arquivo”.

  • É possível criar um arquivo de troca em outros tipos de partições como FAT16, FAT32, NTFS, etc.

  • O arquivo de troca estará disponível somente após o sistema de arquivos que o armazena (ext2, fat32, etc) estar montado. Isto é um problema para sistemas com pouca memória que dependem do arquivo de troca desde sua inicialização.