Gestion de l'espace swap (ou espace d'échange) sous Linux
Le swap ou mémoire virtuelle est un espace de stockage exploité pour palier un manque de mémoire physique sur le système. Quand la mémoire physique vient à manquer pour les applications, une partie des informations stockées en mémoire et n’ayant pas fait l’objet d’une utilisation récente est déplacée sur l’espace de swap, libérant ainsi de l’espace pour les applications qui ont un besoin immédiat de mémoire. Si des applications ont besoin des informations qui ont été basculées sur l’espace de swap, le mécanisme de swap est à nouveau engagé pour libérer encore de l’espace en mémoire physique, espace dans lequel les données swappées à nouveau nécessaires seront restituées pour exploitation par les applications.
L'espace swap sous Linux est soit un fichier normal du système de fichiers, appelé fichier swap, soit une partition séparée, soit une combinaison de partitions swap et de fichiers swap. Une partition swap dédiée est beaucoup plus rapide, mais il est plus facile de modifier la taille d'un fichier swap. Si vous savez de combien d'espace swap vous avez besoin, utilisez une partition swap. Si vous n'êtes pas sûr, essayez d'abord un fichier swap, puis créez une partition swap lorsque vous connaissez vos besoins.
La quantité de swap est souvent sujette à caution et selon les auteurs, les sources et les époques. Il est difficile au moment de l’installation non automatique d’un système de faire un choix serein. Un consensus semble se déterminer autour de valeurs comprises entre une et deux fois la quantité de RAM. De toute façon, les installations par défaut des distributions proposent généralement la création d’un espace de swap automatiquement. Pour une installation sur mesure, les valeurs courantes (une à deux fois la RAM) sont parfaitement acceptables, et dans le doute, l’espace disque étant aussi très bon marché, il vaut mieux surdimensionner.
La partition swap est répertoriée dans la table des partitions, référencée dans /etc/fstab et visible dans le fichier /proc/swaps. Il existe également des utilitaires de ligne de commande pour afficher des informations sur votre espace swap. Pour afficher la partition swap dans la table des partitions, saisir la commande suivante :
devinfo@ubuntu:~$ sudo fdisk -l | grep swap devinfo@ubuntu:~$
dans notre cas, nous n'avons pas encore de partition de swap
Pour afficher la partition (ou le fichier) swap dans le fichier /etc/fstab, saisir:
devinfo@ubuntu:~$ grep swap /etc/fstab /swapfile none swap sw 0 0
Pour afficher le contenu du fichier /proc/swaps, saisir :
devinfo@ubuntu:~$ cat /proc/swaps Filename Type Size Used Priority /swapfile file 945416 0 -2
Utilitaires swap
Pour pouvoir être exploité, l’espace de swap doit être préparé, un peu comme on créerait un filesystem sur un espace de stockage brut. Cette préparation se fait avec la commande mkswap, et elle peut être appliquée aussi bien à une partition qu’à un fichier de taille déterminée.
mkswap espace_stockage
Où espace_stockage représente l’emplacement physique de l’espace de swap dont la dénomination peut se faire de différentes façons.
/chemin/fichier | Structure le fichier afin qu’il puisse être exploité en tant qu’espace de swap. |
/dev/device | Structure l’espace de stockage désigné par le fichier spécial en mode bloc afin qu’il puisse être exploité en tant qu’espace de swap. |
-L LABEL | Structure l’espace de stockage désigné par le label LABEL afin qu’il puisse être exploité en tant qu’espace de swap. |
-U UUID | Structure l’espace de stockage désigné par l’uuid UUID afin qu’il puisse être exploité en tant qu’espace de swap. |
Les utilitaires swapon et swapoff activent (rendre accessible au noyau) et désactivent l'espace de swap. Pour afficher les informations d'échange actuelles, utilisez la commande « swapon –s ». La sortie est identique à l'affichage du contenu de /proc/swaps.
swapon espace_stockage
swapoff espace_stockage
Où espace_stockage représente l’emplacement physique de l’espace de swap
devinfo@ubuntu:~$ swapon -s Nom de fichier Type Taille Utilisé Priorité /swapfile file 945416 0 -2
Il est également possible de visualiser la configuration du swap en consultant le contenu du fichier swap du filesystem virtuel /proc.
devinfo@ubuntu:~$ cat /proc/swaps Filename Type Size Used Priority /swapfile file 945416 0 -2
Affichage de l'utilisation des swaps
Affichez le fichier /proc/meminfo ou utilisez d'autres utilitaires tels que free, top et vmstat pour afficher l'utilisation de la mémoire et de l'espace swap. Exemple:
devinfo@ubuntu:~$ grep -i swap /proc/meminfo SwapCached: 0 kB SwapTotal: 945416 kB SwapFree: 945416 kB
devinfo@ubuntu:~$ free total utilisé libre partagé tamp/cache disponible Mem: 3995080 894664 2306444 2160 793972 2839096 Partition d'échange: 945416 0 945416