Vous êtes sur la page 1sur 3

Tutorial : Ajouter du SWAP sous Linux

On peut se demander à quoi sert le SWAP aujourd'hui sur nos distributions Linux, sur des
machines possédant souvent 1024Mo de RAM, voir beaucoup plus... Mais alors, le swap,
qu'est-ce que c'est et à quoi ça sert ? et en a-t-on encore réellement besoin ? Doit-on dire "le"
ou "la" swap ? (pour cette dernière, j'en sais rien, je dirais "le" ), c'est au travers de ce billet
que j'ai voulu apporter ma réponse.

Explications :

Le swap sous Linux est nécessaire pour faire fonctionner son système de manière optimale,
même avec beaucoup de mémoire. L'espace de swap permet au système d'y inscrire toutes les
données temporaires nécessaires aux fonctionnement des programmes en cours d'exécution :
en gros, on y trouve tout ce qui est utilisé pour la mémoire virtuelle.

L'ajout de SWAP peut être intéressant pour des systèmes sous Linux nécessitant d'avoir de
fortes disponibilités en termes d'exécution de programmes particulièrement gourmands en
ressources mémoires : serveur d'échange de fichiers, serveur de calculs, logiciels de traitement
vidéos, 3D...
Par exemple, si un programme n'est pas utilisé pendant un certain temps (plusieurs heures ou
plusieurs jours), Linux peut décider de le placer en espace "swap". Ceci ayant pour avantage
de libérer de l'espace en RAM et augmenter la taille du cache disque, et donc d'augmenter les
performances des accès aux disques et ainsi accroître les performances globales du système.
Autre cas ou le swap a son importance : les fonctions d'hibernation. En cas de mise en
hibernation, Linux copie les données contenues dans la mémoire vive sur le swap, et éteint
l'ordinateur. A la remise en marche, il retrouve les données en swap dans l'état où il les a
laissé, les programmes retrouvent toutes leurs données utilisées auparavant et reprennent le
travail là où ils en étaient, d'où un gain de temps : en RAM (mémoire vive), toutes les données
auraient été effacées et les applications auraient dues se réinitialiser.

Si l'utilisateur a de nouveau besoin de réutiliser le programme "passé" en swap, il ne faudra


que quelques fractions de secondes pour que le tout repasse en RAM, d'où l'importance de
bien tailler cet espace de swap.

Par convention, il est recommandé que la taille de SWAP fasse entre x1,5 à x2 de la mémoire
RAM disponible sur la machine:
Ainsi, pour 1024 Mo (1Go) de RAM, il est recommandé de réserver 2048 Mo (2Go) de
SWAP.
Bien sure, on peut se passer de swap mais si la mémoire physique (RAM) arrive à saturation,
le système risque de se bloquer complètement.
Donc je vous conseille de toujours faire un petit swap. Mais alors comment faire lorsque l'on
ne l'a pas prévu au départ lors de l'installation ou mal "taillé" ? pas de panique, avec Linux il
est très simple d'ajouter ou redimensionner sa taille de swap, et cela directement au travers
d'une console à l'aide de quelques lignes de commandes.

La pratique :

Ici, on va voir comment rajouter de la swap directement à l'aide du shell. Évidemment, il


existe des outils graphiques tel Gparted sous Ubuntu pour faire ce travail, mais je trouve
qu'avec un peu d'habitude, il est plus rapide et sécuritaire de le faire en lignes de commandes.

-1-
Modifier les partitions après l'installation est toujours une opération risquée. Assurez-
vous d'avoir sauvegardé toutes vos données sur un autre support au préalable.

Déjà, 2 solutions s'offrent à nous : soit une partition complète de swap, dîtes "partition
d'échange", soit un fichier "swapfile" ou fichier d'échange.
En effet, on peut créer un swap sans pour autant avoir une partition dédiée. A la place, un
simple fichier sur une partition traditionnelle (montée sur / par exemple) est suffisante. On
peut même combiner une partition de swap et un "swapfile", si la première s'avère trop petite.
Il est préférable de se servir d'une partition d'échange plutôt que d'un fichier d'échange, pour
des raisons que je ne détaillerais pas plus (notion de blocs disques contigus,...).
Cependant, on se retrouve souvent sur une machine déjà configurée avec des partitions
spécifiques, et pas forcement avec encore suffisamment d'espace disque non-formaté
disponible pour se créer une partition. C'est là que le swapfile devient intéressant, et c'est la
solution que l'on va développer dans les lignes suivantes.

1. Préparation :

Ouvrons tout d'abord une console afin d'entrer nos commandes en se connectant en super-
administrateur avec un:

sudo su

Viennent quelques commandes qui vont être utiles pour connaitre la configuration actuelle du
système (swap disponible, espace libre, etc...):
Connaitre l'espace de swap actuel:

more /proc/swaps

Connaitre les informations mémoire du système (CTRL+C pour sortir):

more /proc/meminfo

Connaitre l'espace disque disponible des différentes partitions:

df -ah

2. Créer un fichier :

Pour créer ce fichier d'échange, il va falloir utiliser la commande dd pour convertir et copier
des volumes de données.
Il va aussi falloir connaitre le nom, l'emplacement et la taille du fichier de swap que l'on va
créer.
Placez-vous déjà dans votre espace utilisateur, aussi appelé "home directory" en entrant les
commandes suivantes dans une console:

cd

pwd

-2-
Ensuite on va créer le fichier file.swap d'une taille de 512Mo à l'aide de la commande
suivante:

sudo dd if=/dev/zero of=/file.swap bs=1024 count=512000

Explication : la commande dd crée et copie des zéros dans le fichier file.swap contenant
512000 blocs de 1024 octets chacun, soit un fichier approximatif de 512 Mo (voir 524 Mo).

Vous pouvez "flusher" le nouvel espace créé dans le système de fichier par la commande:

sync

3. créer le système de fichier pour le fichier d'échange :

On utilise à présent "mkswap" pour formater le fichier en tant qu'espace d'échange ou de


"swap":

sudo mkswap /file.swap 512000

Il ne faut pas oublier de passer la taille du fichier à la commande mkswap, de la même taille
que celle définie lors de la création du fichier.

4. activer ou désactiver le fichier d'échange à la volée

Il est à présent possible d'activer ou désactiver ce fichier d'échange à l'aide de 2 simples


commandes.
La commande :

sudo swapon /file.swap

active la partition de swap et s'ajoute à l'existante si elle existe. la commande "more


/proc/swaps" vue plus haut devrait vous montrer le nouvel espace de swap nommé file.swap.

La commande :

sudo swapoff /file.swap

désallouera l'espace utilisé par le fichier d'échange et celui-ci pourra être effacé en toute
sécurité.

-3-