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

10

Meu servidor Ubuntu não tem mais que 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-sucedida!

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 o motivo da troca ausente?

user22611
fonte
11
Tente mover arquivo de troca de raiz da partição aka/
2707974
11
Quando tentei pela primeira vez, tentei com / swapfile #
user22611
2
Altere a chmod 600 /root/myswapfileswapon /root/myswapfile
permissão
11
Isso não ajudou ... Aviso interessante: preciso trocar antes de trocar, mesmo que a troca nunca apareça na lista.
user22611
3
não freemostrar qualquer uso swap?
Mdd 2/08

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+ oe, em seguida, pressione ENTERpara salvar o arquivo.

Pressione CTRL+ xpara sair do nano.

fonte: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04


Se isso ainda não funcionar, convém verificar a 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 depois teeou você substituirá o arquivo inteiro !!!

mchid
fonte
1

Use fdiskpara criar uma troca. Adicione uma nova partição, selecione Linux swap, escreva as alterações. mkswap /dev/sd? Você precisa adicioná-lo ao seu /etc/fstab/. Altere XXX para o UUID de troca.

UUID=XXX none            swap    sw              0       0

Execute swapon -apara disponibilizá-lo em /etc/fstab.

nicoX
fonte
1

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

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

sudo mkswap /myswapfile

adicionar arquivo de troca. Eu acho que você esquece esse comando

sudo swapon /myswapfile
#check swap is working
sudo swapon -s
UNIm95
fonte
11
O comando chmod precisa ser sudo chmod 600.... Também pode ser tomada de valor que possuía pela raiz: sudo chown root:root ....
Wilf
11
Se você vir a postagem principal do @ user22611, veja se ele funciona como root.
UNIm95
11
makeswapmkswap
user22611
11
@ user22611 sim. Você está certo. mkswap e chmod.
UNIm95
11
@ UNIm95 - você pode editar seu post para corrigir esses problemas ....
Wilf
-1

você poderia fazer isso:

sudo umount -a
gedit /etc/fstab

e escreva onde swap é este:

/proc/swap     proc   default  errors=noremount     1

e então isso:

sudo mount -a

execute o gpart, defina a unidade swap como swap e monte-a na unidade raiz dev, e pode funcionar bem dessa maneira.

Michael
fonte
4
Err ... não sudo umount -adesmonta TUDO? (que pode quebrar coisas se estiver em uso) Se você estiver tentando desmontar as coisas de troca existentes primeiro, talvez seja melhor encontrá-las mounte desmontá-las especificamente ou usá-las sudo swapoff -a.
Wilf
11
é o que eu fiz não quebrou nada do que você fez, e é a única coisa a fazer.
Michael
2
Correr umount -aé realmente uma ideia muito idiota. Desmonte o que você precisa desmontar, nem tudo.
Pzkpfw