Ubuntu 19.10 : agrandir le fichier de swap

Mon système a planté aujourd’hui, je venais de lancer une machine virtuelle, le ventilo s’est mis tourner à fond, et plus rien ne répondait, le clavier encore moins que la souris…

Je me suis douté d’où venait le problème : mon fichier de swap était trop petit (2Go) par rapport à ma mémoire (8Go), et au lancement de la machine virtuelle (le genre d’application qui va demander plusieurs Go de mémoire), tout est parti en sucette !

C’était déjà arrivé, je savais que je devais modifier mon système en conséquence, mais j’avais oublié. Cette fois, je l’ai fait, et je vais noter ici ce qu’il faut retenir.

Cet article est basé sur la page SwapFAQ. Elle est très complète, mais en anglais, alors pour les francophones…

Si dans le temps il fallait une partition dédiée pour le Swap, Ubuntu utilise de nos jours un simple fichier par défaut (comme Windows). C’est plus simple, même s’il s’agit d’un fichier particulier, comme nous allons le voir.

Mon PC a 8 Go de RAM, et au démarrage, j’ai déjà 3 Go d’utilisé (Ubuntu 19.10 avec Gnome comme environnement de bureau) :

Sauf qu’après quelques jours de fonctionnement (sans redémarrage), petit à petit l’utilisation mémoire augmente, voilà où j’en suis après seulement quatre jours :

D’une part Gnome doit toujours avoir une petite fuite de mémoire, et d’autre part Firefox avec beaucoup d’onglets ouverts a tendance à grossir doucement mais sûrement. Quand je vois que j’arrive à plus de 6 Go d’utilisés, la première chose que je fais est de fermer et de relancer Firefox : avec les mêmes onglets ouverts, je gagne facilement 1 Go voir plus.

Bref, si j’en crois les valeurs indiquées sur la page SwapFAQ, je devrais affecter au minimum 3 Go au fichier de swap, puisque je n’utilise pas l’hibernation sur mon desktop :

RAM   No hibernation    With Hibernation  Maximum
8GB              3GB                11GB     16GB

Je vais quand même prendre un peu de marge, et lui affecter 8 Go, soit la taille de la mémoire. J’ai bien sûr vérifié que j’ai bien la place suffisante sur ma partition système avant de me lancer dans cette opération ! 😉

Voyons voir comment faire cela :

Commençons par identifier le fichier actuellement utilisé :

sudo swapon --show
NAME      TYPE SIZE  USED PRIO
/swapfile file   2G 88,5M   -2

Mon fichier de swap s’appelle donc swapfile, il est situé à la racine du système, et fait 2 Go. Il va d’abord falloir désactiver le swap, puis supprimer le ficher existant :

sudo swapoff /swapfile
sudo rm /swapfile

Puis nous allons en recréer un nouveau à la taille voulue, lui donner les bonnes permissions, puis le formater :

sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile 

Je préfère ensuite redémarrer le système et vérifier que le fichier est bien pris en compte :

sudo swapon --verbose
NAME      TYPE SIZE  USED PRIO
/swapfile file   8G 88,5M   -2

Voilà, c’est tout. On peut lire dans la SwapFAQ que si jamais la commande fallocate ne fonctionne pas, on peut utiliser la commande dd pour créer le fichier, ce qui donnerait pour 8 Go (1024*1024*8) :

sudo dd if=/dev/zero of=/swapfile bs=1024 count=8388608

Il faut bien sûr que le « mount » du fichier existe dans le fichier /etc/fastab. Dans mon cas, vu que je ne fais qu’agrandir un fichier existant, je n’ai pas mentionné cette étape.

S’il s’agit d’une création, par exemple si vous passez d’une partition dédiée à un fichier, il faut alors ajouter le « mount » dans le fichier /etc/fstab avec la commande suivante :

echo '/fileswap swap swap defaults 0 0' | sudo tee -a /etc/fstab

Bon swap !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *