Translation(s): English - Français - Italiano


À propos de l'espace d'échange (« swap »)

Sous Debian et les autres systèmes d'exploitation GNU/Linux, l'espace d'échange, aussi appelé par son terme anglais « swap space » ou simplement « swap », est une forme de mémoire virtuelle. Dit simplement, quand le système est à court de mémoire vive physique (RAM), il transférera les données les moins utilisées de la RAM vers cet espace d'échange. L'espace d'échange est fondamental pour les fonctionnalités Linux de « mise en veille » et d' « hibernation » (mise en veille prolongée). L'espace d'échange est principalement configuré comme une (ou plusieurs) partition dédiée (recommandé), ou bien comme un (ou plusieurs) fichier spécialement créé et résidant à l'intérieur du système de fichiers existant.

Depuis sa version 2.4, le noyau Linux peut gérer simultanément jusqu'à 32 partitions (ou fichiers) d'échange. Ceci est très rare puisque les disques durs sont bien plus lents que la RAM. La plupart des systèmes auront habituellement une seule partition d'espace d'échange. Bien que la configuration de l'espace d'échange se réalise généralement au moment de l'installation de Debian, on peut à tout moment en créer ou en modifier un.

Informations et considérations concernant la taille de l'espace d'échange

On considère traditionnellement que la quantité recommandée d'un espace d'échange doit être le double de la quantité de mémoire vive (RAM) du système. Cela a évolué au fil du temps, passant de une fois à une fois et demi la taille de la mémoire vive. Ces deux dernières réponses sont toutes deux fondées mais deviennent de moins en moins pertinentes de nos jours. Il y a en fait un très grand nombre de paramètres liés à votre système et autant de cas d'usages qui détermineront ensemble la taille disponible d'espace d'échange que vous souhaiterez avoir.

Éléments à prendre en compte avant de configurer l'espace d'échange de votre machine

  1. Avez-vous l'intention d'utiliser les fonctions d'hibernation et de mise en veille ? Si vous avez l'intention d'utiliser l'une ou l'autre de ces fonctionnalités, vous devez vous assurer que la taille de votre espace d'échange est suffisamment large pour contenir toutes les informations que votre système en marche aura dans en mémoire vive (RAM). Si vous avez l'intention d'utiliser la fonction d'hibernation vous devez vous assurer que votre installation Debian dispose d'un accès à une partition (ou un fichier) d'espace d'échange qui n'est PAS partagé avec une autre instance d'un système GNU/Linux.
  2. Combien de mémoire vive a votre machine ? Si votre machine dispose pour lui d'une grande quantité de RAM et si vous n'avez pas besoin des fonctions de veille et d'hibernation, il est plus sûr d'avoir moins d'espace d'échange disponible pour le système. A l'inverse, si votre machine n'a que de peu de RAM disponible, comme c'est le cas dans les ordinateurs les plus anciens et les netbooks, assurez-vous de faire un espace d'échange le plus grand possible : le double de la mémoire vive du système serait dans ce cas présent une bonne suggestion.
  3. Quelle quantité de mémoire vive sera prise par les applications que vous souhaitez exécuter ? L'utilisation de la mémoire vive d'un système GNU/Linux varie grandement d'une application à une autre. Par exemple, exécuter un environnement de bureau léger tel que Xfce ou Openbox et leurs applications associées utilisera moins de mémoire vivre que les environnements GNOME ou KDE.
  4. Quelle est la taille disponible de votre disque dur ? Si vous utilisez un SSD de faible capacité ou bien une clé USB pour l'installation de Debian, dans ce cas, il pourrait être plus pertinent d'installer si nécessaire plus de mémoire vive plutôt que d'utiliser un grand espace d'échange. Ceci aura également pour avantage d'accélérer le système, puisque la vitesse de lecture / écriture des disques durs est plus lente que celle de la RAM.

Pour terminer, si votre machine est à court, à la fois, de mémoire vive et d'espace d'échange, alors votre système va planter. Ceci conduit à la réponse simpliste mais néanmoins prudente d'utiliser un échange d'échange qui est « le double de la quantité de la mémoire vive ».

Créer et modifier un d'espace d'échange sur une machine existante

Les partitions d'espace d'échange peuvent être créées et modifiées en utilisant des outils graphiques tel que GParted ou bien des outils en ligne de commande tels que parted ou gnu-fdisk. La création de fichier d'espace d'échange est gérée par la commande dd(1). Pour créer un fichier d'espace d'échange en utilisant dd :

dd if=/dev/zero of=/PATH/FILENAME bs=1024 count=SIZE
chmod 600 /PATH/FILENAME
mkswap /PATH/FILENAME
swapon /PATH/FILENAME

PATH est le chemin d'accès exact vers le répertoire où vous souhaitez placer votre fichier d'espace d'échange. FILENAME est le nom que vous souhaitez donner à votre fichier d'espace d'échange et SIZE est la taille en kilooctets (par exemple 1048576 est 1 gigaoctet) que vous souhaitez donner à votre fichier d'espace d'échange. La commande chmod est pour s'assurer, pour des raisons de sécurité, que le fichier ne sera pas lisible par d'autres.

Une fois que vous avez créé votre partition (ou fichier) d'espace d'échange, vous aurez besoin d'ajouter une entrée dans le fichier /etc/fstab de chaque instance de système GNU/Linux qui utilisera cet espace d'échange.

Ouvrez le fichier /etc/fstab avec votre éditeur de texte favori et avec des privilèges superutilisateurs (root).

Ajout d'une entrée dans le cas d'une partition d'espace d'échange

Exécutez la commande blkid en tant que superutilisateur. Ceci affichera les UUID de toutes les partitions de votre machine. Trouvez l'entrée correspondant à la partition d'espace d'échange, copiez son UUID et ajoutez-le directement après « = » dans l'entrée que vous avez créée dans /etc/fstab. La ligne commençant par « # » n'est pas nécessaire mais est considérée comme une bonne pratique.

# Dedicated swap partition created on DATE
UUID=       none    swap    sw      0       0

Ajout d'une entrée dans le cas d'un fichier d'espace d'échange

La ligne commençant par « # » n'est pas nécessaire mais est considérée comme une bonne pratique.

# Swap file created on DATE
/PATH/FILENAME       none    swap    sw      0       0

Problèmes connus et dépannage

Vous pouvez vérifier qu'une certaine partition (ou fichier) d'espace d'échange est active et fonctionnelle sur n'importe quel système GNU/Linux en essayant de le mettre en marche. Utilisez pour cela la commande swapon(8) avec des privilèges superutilisateurs. Par exemple : swapon /dev/sda5sda5 est le nom actuel de la partition d'espace d'échange de votre machine. Vous pouvez chercher les noms de toutes les partitions sur votre machine en utilisant la commande cat /proc/partitions. Ou bien, pour vérifier qu'un fichier d'espace d'échange est actif, exécutez swapon /PATH/FILENAME. Si cet espace d'échange est actif, vous aurez en retour un message similaire à ci-dessous.

root@debianhost:/# swapon /dev/sda5
swapon: /dev/sda5: swapon failed: Device or resource busy

Si vous ne recevez pas ce message en sortie, vous devriez vérifier que les contenus de /etc/fstab sont corrects. Pour les fichiers d'espace d'échange, assurez-vous que l'entrée /PATH/FILENAME est correcte. Si vous utilisez une partition d'espace d'échange, récupérez l'UUID de la partition en utilisant la commande blkid(8). Pour cela, exécutez simplement blkid en tant que superutilisateur et comparez l'UUID de la partition d'espace d'échange avec celle donnée dans /etc/fstab pour cette même partition. S'il y a une différence, remplacez l'UUID dans /etc/fstab avec celle donnée par blkid.

A noter

À date d'écriture de cette page, avec l'installateur Debian des images de la version « stable » (version 6.0.1), le partitionnement manuel formatera par défaut toutes les partitions d'espace d'échange sur tous les disques. Ceci invalidera toutes les entrées UUID dans les fichiers /etc/fstab de tous les autres systèmes GNU/Linux qui utilisent ces partitions d'espace d'échange.

Afin que l'installateur Debian ne formate pas une partition d'espace d'échange, il faut manuellement marquer « ne pas utiliser » durant le partitionnement. L'installateur formatera toute partition d'échange qui n'a pas été marquée « ne pas utiliser » et l'utilisera pour l'espace d'échange sur le système installé. Si vous partagez l'espace d'échange avec d'autres instances de GNU/Linux, vous devrez mettre à jour manuellement leurs fichiers /etc/fstab respectifs. Pour ce faire, exécutez simplement blkid en tant que superutilisateur et notez l'UUID que ce programme transmet en sortie pour la partition d'espace d'échange. Puis, remplacez avec cet UUID les anciens UUID dans les fichiers /etc/fstab des autres instances de systèmes GNU/Linux.

Pour plus d'informations à propos de la mémoire virtuelle, voir l'article Wikipedia Mémoire virtuelle.