swapon n'a aucun effet, / proc / swaps reste vide

10

Mon serveur Ubuntu n'a pas plus de 512 Mo de mémoire. Ce n'est pas suffisant pour exécuter Node.js + MongoDB.

J'ai donc décidé d'ajouter un fichier d'échange:

# 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

Aucun message d'erreur => réussi!

Le nouveau fichier d'échange devrait maintenant être répertorié, mais il ne l'est pas :

# swapon -s
Filename                Type        Size    Used    Priority

(liste vide)

Comment puis-je le faire fonctionner? Quelle pourrait être la raison du swap manquant?

user22611
la source
1
Essayez de déplacer le fichier d'échange à la racine de la partition aka/
2707974
1
Quand je l'ai essayé pour la première fois, je l'ai essayé avec /
swapfile
2
Modifier la permission, chmod 600 /root/myswapfilepuis à nouveauswapon /root/myswapfile
2707974
1
Cela n'a pas aidé ... Avis intéressant: j'ai besoin de swapoff avant de swapon, même si swap n'apparaît jamais dans la liste.
user22611
3
ne freemontre aucune utilisation de swap?
mdd

Réponses:

4

Tout d'abord, effacez votre fichier d'échange d'origine:

sudo rm /myswapfile

Ensuite, exécutez les commandes suivantes une par une:

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

La sortie doit être similaire à la suivante:

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

Maintenant, exécutez les commandes suivantes:

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

Maintenant, éditez / etc / fstab pour rendre les modifications permanentes:

sudo nano /etc/fstab

et ajoutez la ligne suivante à la fin du fichier:

/swapfile    none            swap    sw              0       0

Appuyez sur CTRL+ opuis sur ENTERpour enregistrer le fichier.

Appuyez sur CTRL+ xpour quitter nano.

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


Si cela ne fonctionne toujours pas, vous pouvez vérifier la permutabilité:

cat /proc/sys/vm/swappiness

Cette commande doit renvoyer un nombre. La valeur par défaut doit être 60.

Si aucune sortie, exécutez les commandes suivantes une par une:

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

Le -a est important après teeou vous écraserez tout le fichier !!!

mchid
la source
1

Utilisez fdiskpour créer un échange. Ajoutez une nouvelle partition, sélectionnez Linux swap, écrivez les modifications. mkswap /dev/sd? Vous devez l'ajouter à votre /etc/fstab/. Remplacez XXX par l'UUID de swap.

UUID=XXX none            swap    sw              0       0

Exécutez swapon -apour le rendre disponible à partir de /etc/fstab.

nicoX
la source
1

Votre fichier d'échange doit être dans / swapfile avec 600 droits.

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

sudo mkswap /myswapfile

ajouter un fichier d'échange. Je pense que vous oubliez cette commande

sudo swapon /myswapfile
#check swap is working
sudo swapon -s
UNIm95
la source
1
La commande chmod doit l'être sudo chmod 600.... Il peut également être prise utile , il appartient à la racine: sudo chown root:root ....
Wilf
1
Si vous voyez le post principal de @ user22611, utilisez qu'il fonctionne en tant que root.
UNIm95
1
makeswapmkswap
user22611
1
@ user22611 oui. Tu as raison. mkswap et chmod.
UNIm95
1
@ UNIm95 - vous pouvez modifier votre message pour résoudre ces problèmes ....
Wilf
-1

vous pourriez faire ceci:

sudo umount -a
gedit /etc/fstab

et écrivez où l'échange est-ce:

/proc/swap     proc   default  errors=noremount     1

et puis ceci:

sudo mount -a

puis exécutez gpart et définissez le lecteur de swap comme swap, et montez-le sur le lecteur de développement racine, et cela pourrait fonctionner correctement de cette façon.

Michael
la source
4
Euh ... ne sudo umount -adémonte pas TOUT? (ce qui peut casser des éléments en cours d'utilisation) Si vous essayez de démonter des éléments d'échange existants, il peut être préférable de les trouver mountpuis de les démonter spécifiquement, ou de les utiliser sudo swapoff -a.
Wilf
1
c'est ce que je n'ai pas pu casser de ce que vous avez fait, et c'est la seule chose à faire.
Michael
2
La course à pied umount -aest en effet une idée vraiment stupide. Démontez ce dont vous avez besoin pour démonter, pas tout.
pzkpfw