Enxergando com o Linux!
28 jun 2009
A memória virtual é um recurso utilizado pelos sistemas operacionais para aumentar a quantidade de memória disponível no seu computador.
Ela é usada quando a memória RAM está totalmente utilizada pelos aplicativos em execução. Quando um aplicativo precisa de uma área de memória e não existe na memória ram espaço suficiente para atender a essa demanda, o sistema salva na memória virtual partes de outros programas que ocupam a memória ram, liberando espaço para atender a demanda. As partes salvas na memória virtual voltarão para a memória ram quando necessário.
Quando se instala o linux é normalmente reservado uma partição para a memória virtual. Essa partição é conhecida como área de swap.
Existe uma regrinha que geralmente a gente não segue, pela qual deveriamos reservar um espaço equivalente ao dobro da memória ram para a memória virtual. Por essa regra, se a memória ram é de 1MB, deveriamos reservar 2MB para a memória virtual.
No linux o comando swapon -s mostra a o tamanho total da memória virtual e a quantidade utilizada.
A memória virtual também é finita, e acaba como a memória ram.
Felizmente á possível aumenta-la desde que você tenha área em disco disponível.
Pode-se aumentar o tamanho da partição atualmente utilizada para a área de swap.
Pode-se criar uma nova partição para a área de swap e o sistema passa a trabalhar com duas partições.
Pode-se ainda trabalhar com um arquivo comum, o que facilita bastante o processo. nesse caso o sistema vai utilizar a partição já existente e um arquivo comum.
Até o kernel 2.6, o uso de arquivos como área de swap não era recomendado pois existiam problemas de performance. Isso foi resolvido no kernel 2.6.
Chega de conversa fiada e vamos aos passos para extendermos a memória virtual utilizando um arquivo.
Nesse exemplo vou adicionar mais 1 giga na memória já existente.
1) Crie um arquivo com o tamanho de 1 giga utilizando o seguinte comando:
sudo dd if=/dev/zero of=/var/swapfile1 bs=1M count=1024
Atenção pois o M que vem depois do número 1 é maiusculo.
/var/swapfile1 é um nome qualquer, você pode utilizar outro nome e o arquivo pode ser colocado em qualquer diretório.
2) Informe ao sistema que o arquivo criado no passo anterior será um arquivo utilizado para swap. Para tal utilize o seguinte comando:
sudo mkswap /var/swapfile1
3) Instrua o sistema para que ele utilize o arquivo criado nos passos 1 e 2 utilizando o seguinte comando:
swapon /var/swapfile1
Se tudo correu como deveria, você acaba de adicionar mais um giga de memória na área de swap do seu sistema. Com pouco trabalho e sem precisar tirar o sistema do ar.
Para confirmar se tudo está ok, utilize o seguinte comando:
swapon -s
Falta ainda um pequeno detalhe, pois quando você fizer um reboot o que foi feito no passo 3 será perdido.
Para evitar esse transtorno, inclua no arquivo /etc/fstab a seguinte linha:
/var/swapfile1 swap swap defaults 0 0
Troque /var/swapfile1 pelo nome do arquivo que você criou no passo 1.
Bastante atenção ao editar o arquivo /etc/fstab, faça uma salva antes.
Alguns comentários:
Na minha mãquina eu não tenho partição para a área de swap, só arquivos. Quando fui instalar o 9.04 eu já tinha 4 partições criadas no hd. Instalei sem área de swap e depois adicionei um arquivo.
Você pode criar mais de 1 arquivo e misturar o uso de arquivos e partições para a área de swap.
Caso você não queira mais utilizar um arquivo ou partição como área de swap, utilize o comando swapoff da seguinte forma:
swapoff /var/swapfile1
Naturalmente você deve trocar /var/swapfiel1 pelo nome do arquivo ou partição e remover a entrada equivalente no /etc/fstab.
Escreva um comentário