swapon não tem efeito, / proc / swaps permanece vazio

9

Meu servidor Ubuntu não possui mais de 512 MB de memória. Não é suficiente para executar o Node.js + MongoDB.

Por isso, decidi adicionar um arquivo de troca:

# dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.69263 s, 229 MB/s
# mkswap /root/myswapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=3c64da32-d0b4-49e5-92db-fba961b8ae28
# swapon /root/myswapfile

Nenhuma mensagem de erro = > bem sucedido!

O novo arquivo de troca agora deve estar listado, mas não é :

# swapon -s
Filename                Type        Size    Used    Priority

(lista vazia)

Como posso fazer isso funcionar? Qual pode ser a razão da troca perdida?

    
por user22611 30.07.2015 / 20:04

4 respostas

4

Primeiro, apague seu arquivo de troca original:

sudo rm /myswapfile

Em seguida, execute os seguintes comandos, um por um:

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
ls -lh /swapfile

A saída deve ser semelhante à seguinte:

-rw------- 1 root root 1.0G Aug  3 18:20 /swapfile

Agora, execute os seguintes comandos:

sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s

Agora, edite o / etc / fstab para tornar as alterações permanentes:

sudo nano /etc/fstab

e adicione a seguinte linha ao final do arquivo:

/swapfile    none            swap    sw              0       0

Pressione CTRL + o e depois pressione ENTER para salvar o arquivo.

Pressione CTRL + x para sair do nano.

fonte: link

Se isso ainda não funcionar, você pode querer verificar o swappiness:

cat /proc/sys/vm/swappiness

Este comando deve retornar um número. O padrão deve ser 60.

Se não houver saída, execute os seguintes comandos, um por um:

sudo sysctl vm.swappiness=60
echo "vm.swappiness = 60" | tee -a /etc/sysctl.conf

O -a é importante após tee ou você sobrescreverá o arquivo inteiro !!!

    
por mchid 04.08.2015 / 00:41
1

Use fdisk para criar uma troca. Adicione uma nova partição, selecione Linux swap, escreva as alterações. %código% Você precisa adicioná-lo ao seu mkswap /dev/sd? . Mude XXX para o UUID de troca.

UUID=XXX none            swap    sw              0       0

Execute /etc/fstab/ para disponibilizá-lo em swapon -a .

    
por nicoX 03.08.2015 / 16:21
1

O arquivo de troca deve estar no / swapfile com 600 direitos.

#moving file and changing rights
sudo mv /root/myswapfile /myswapfile
sudo chmod 600 /myswapfile

sudo mkswap /myswapfile

adicione o arquivo de troca. Eu acho que você esqueceu esse comando

sudo swapon /myswapfile
#check swap is working
sudo swapon -s
    
por UNIm95 02.08.2015 / 23:16
-1

você pode fazer isso:

sudo umount -a
gedit /etc/fstab

e escreva onde swap é isso:

/proc/swap     proc   default  errors=noremount     1

e depois isto:

sudo mount -a

e, em seguida, execute o gpart e defina a unidade de troca como swap e monte-a na unidade de desenvolvimento da raiz e ela pode funcionar dessa maneira.

    
por Michael 02.08.2015 / 16:06

Tags