Recentemente postamos dois artigos a respeito de Swap em Linux.
-
smem: Como Ver Os Programass/Processos Que Estão Usando Swap no Linux
-
Swap no Linux, Verificando Tamanho e Espaço Usado
Parece que isso me empolgou um pouco. Nesses dias modernos lidar com swap parece ser tão antiquado, não é mesmo? Bom, como dito anteriormente swap ainda é algo muito importante no Linux e em outros Sistemas Operacionais.
“Ah! mas memória ram hoje é muito barata para que usar swap?”, você pode está se questionando, já que a função de swap é servir como auxiliar de memória ram. Hoje a maioria dos computadores vêm com 4 ou 8GB de ram . Swap seria ainda necessário? Particularmente e de acordo com minha experiência afirmo que sim. Primeiramente porque nem todo mundo possui grana para dar um upgrade em seu antigo e velho amigo PC, e em segundo lugar porque mesmo pc com 8GB pode precisar de swap para não travar. Esse último ponto foi meu caso, tenho um pc com 8GB e ele trava porque tenho programas que gosto muito e estão consumindo muita memória RAM e… sim, meu PC travava. Percebi que o Xubuntu só estava com 2GB de swap e quando aumentei para 8GB os travamentos pararam.
Mas vamos ao que interessa?
O que Usamos para Criar Swap?
Esse tema é importante para sabermos que podemos usar como swap:
- uma partição(uma parte ou porção do espaço) de um HD ou SSD
- um arquivo
À primeira vista um arquivo como swap pode até parecer amador, mas não! Até a Canonical usa arquivo como swap no Ubuntu.
para saber se seu pc está usando uma partição ou arquivo podemos usar o comando “swapon show”
elder@server01:~$ sudo swapon --show NAME TYPE SIZE USED PRIO /dev/sdb1 partition 200M 0B -2
O pc acima está usando uma partição do disco /dev/sdb1
Vamos ver outro caso.
elder@ti:~$ sudo swapon --show [sudo] senha para elder: NAME TYPE SIZE USED PRIO /swapfile2 file 8G 2,4G -2
File em inglês é arquivo. Nesse caso está sendo usado o arquivo /swapfile2 como swap.
Criando Swap a Partir de uma Partição
Criando Swap da Partição
O disco que usarei será a /dev/sdc que possui 1GB. Não usarei partição sdc1, sdc2….
- Defina/transforme o espaço de /dev/sdc em swap. Use o comando “mkswap /dev/sdc”
elder@server01:~$ sudo mkswap /dev/sdc [sudo] senha para elder: mkswap: /dev/sdc: aviso: não apague os setores de bits de inicialização (tabela de partição dos detectada). Use -f para forçar. Configurando espaço de swap versão 1, tamanho = 1024 MiB (1073737728 bytes) nenhum rótulo, UUID=4616a3dc-f632-43aa-bad2-087e63165786
- Execute “swapon /dev/sdc” para usarmos ativarmos /dev/sdc
elder@server01:~$ sudo swapon /dev/sdc
- Veja o resultado com “sudo swapon show”
elder@server01:~$ sudo swapon --show NAME TYPE SIZE USED PRIO /dev/sdb1 partition 200M 0B -2 /dev/sdc partition 1024M 0B -3
Removendo a Partição Swap Antiga
Vamos destruir a partição swap. Poderíamos usar fdisk para excluir a partição, mas preferi usar dd.
Antes, Desative a partição swap sdb1 com o comando swapoff.
elder@server01:~$ sudo swapoff /dev/sdb1
Agora zeraremos o sdb1 para que não conste assinatura swap. Cuidado para não destruir a partição errada. No meu caso tenho que zerar a sdb1.
elder@server01:~$ sudo dd if=/dev/zero of=/dev/sdb1
Isso pode demorar. Usar fdisk seria mais rápido.
Veja o resultado
elder@server01:~$ sudo dd if=/dev/zero of=/dev/sdb1 dd: escrevendo em '/dev/sdb1': Não há espaço disponível no dispositivo 1021953+0 registros de entrada 1021952+0 registros de saída 523239424 bytes (523 MB, 499 MiB) copiados, 40,5725 s, 12,9 MB/s
Editando o Arquivo /etc/fstab
A partição(sdb1) já excluída ainda consta configurada dentro de /etc/fstab e isso gerará um erro ao iniciarmos o Sistema Operacional.
Como acima criarmos uma partição swap usando /dev/sdc o que temos que fazer é apenas trocar dentro de /etc/fstab o “/dev/sdb1” por “/dev/sdc”
- Acesse o arquivo com seu editor de texto. Usarei o vim.
elder@server01:~$ sudo vim /etc/fstab
- Tecle seta pra baixo até a linha referente ao “/dev/sdb1” e altere para
/dev/sdb1 none swap sw 0 0
para
/dev/sdc none swap sw 0 0
Obs.: precisa somente altear /dev/sdb1 para /dev/sdc e nada mais.
Ativando o Swap
Se executar o comando “free -h” verá que não temos swap ativado
elder@server01:~$ free -h total used free shared buff/cache available Mem: 987Mi 122Mi 706Mi 3,0Mi 158Mi 723Mi Swap: 0B 0B 0B
Ative com “swapon /dev/sdc”
elder@server01:~$ sudo swapon /dev/sdc
Veja novamente usando “free -h” ou “swapon show”
elder@server01:~$ free -h total used free shared buff/cache available Mem: 987Mi 149Mi 679Mi 3,0Mi 158Mi 696Mi Swap: 1,0Gi 0B 1,0Gi
Criando Swap a Partir de um Arquivo
Se já houver algum aquivo swap recomendo excluí-lo. O intuito aqui então será excluir um arquivo com espaço menor e criar um maior.
Removendo o Antigo Arquivo Swap
O ubuntu geralmente usa o arquivo /swapfile como swap. Se for o seu caso exclua com:
Desabilite o swap
elder@server01:~$ sudo swapoff /swapfile
Remova o arquivo
elder@server01:~$ sudo rm /swapfile
Criando um Novo Arquivo para Swap
Vamos criar o arquivo /swapfile com 1 Giga Byte. Para isso usaremos dd.
elder@server01:~$ sudo dd if=/dev/zero of=/swapfile bs=1G count=1
No comando acima falamos para:
- if=/dev/zero of=/swapfile: copia valores nulos(zeros) criando o arquivo /swapfile limpo
- bs=1GB: A base a contagem é 1 Giga Byte
- count=1: vai contar uma vez. Aqui, se colocássemos “count=3” iria ser criado um arquivo de 3 Giga Bytes. Pois seria 3 multiplicado por 1.
Se você tiver pouca memória ram talvez seja necessário diminuir o valor em bs ou terá o erro abaixo
dd: memória esgotada pelo buffer de entrada de tamanho 1000000000 bytes (954 MiB)
então pode fazer assim
..... bs=512M count=2
para criamos um arquivo de 1GB mas em duas etapas.
Transformando o Arquivo em Swap
Use “mkswap /swapfile” para avisarmos ao sistema que esse será um arquivo swap
elder@server01:/$ sudo mkswap /swapfile mkswap: /swapfile: permissões inseguras 0644, sugere-se 0600. Configurando espaço de swap versão 1, tamanho = 1024 MiB (1073737728 bytes) nenhum rótulo, UUID=acabb9f3-f74e-4231-bb6c-f24dfeb9607e
Ativando o Swap
Conforme acima, vamos ativar usando “swapon /swapfile”
elder@server01:/$ sudo swapon /swapfile swapon: /home/elder/swapfile: permissões inseguras 0644, sugere-se 0600.
O arquivo está sendo usado como swap
elder@server01:/$ free -h total used free shared buff/cache available Mem: 987Mi 123Mi 544Mi 3,0Mi 320Mi 714Mi Swap: 1,0Gi 0B 1,0Gi
Mas acima marquei de vermelho o alerta sobre as permissões. Dê as permissões conforme alertado:
elder@server01:/$ sudo chmod 0600 /swapfile
Verificando o Swap
elder@server01:/$ free -h total used free shared buff/cache available Mem: 987Mi 122Mi 541Mi 3,0Mi 323Mi 714Mi Swap: 1,0Gi 0B 1,0Gi
Use “swapon show” para certificar sobre o arquivo sendo usado
elder@server01:/$ sudo swapon --show NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2