25 avril 2009

Swap : Fichier d'échange

A l'installation d'une distribution, on nous recommande de créer une partition SWAP. Ce qui est bien utile mais nous oblige à créer une nouvelle partition. L'idée serait donc de créer un fichier sur le disque dur (comme le fait Windows) qui soit monté comme un système de fichier SWAP.
  • Cette technique a les avantages d'être plus simple quand on veut supprimer ou modifier la taille de la SWAP. Si vous avez suffisamment de RAM pour que la SWAP soit peu sollicitée, cela peut être utile !Tout d'abord, il va falloir créer le fichier (rempli de "zero", voir /dev/zero) avec la commande dd, ce fichier s'appelera par exemple pagefile.sys ou memfile.swap et sa taille sera entre la moitié et 1Go moins que votre RAM (pour 3G0 de RAM on peut créer 1,5 à 2Go de swap en fonction de l'usage par exemple). Tout ceci se fait en une ligne (je place le fichier à la racine, il ne gène personne et on ne l'oublie pas ainsi) :
    sudo dd if=/dev/zero of=/memfile.swap bs=2G count=1

    La commande dd utilise la RAM pour créer les fichiers, si vous n'avez pas assez de RAM, il se peut qu'une erreur se produise, dans ce cas on peut effectuer le traitement en plusieurs fois avec count, pour le même exemple on va créer un fichier de 2Go en 2 fois :
    sudo dd if=/dev/zero of=/memfile.swap bs=1G count=2

    Si après coup, vous vous apercevez que votre SWAP est peu sollicitée, vous pouvez recréer le fichier avec une taille moins importante (et cela sera transparent pour les étapes suivantes).
  • Maintenant il faut écrire le système de fichier de type SWAP sur notre fichier :
    sudo mkswap /memfile.swap
  • Le fichier est près, il ne reste plus qu'a prevenir le noyau qu'il a de la SWAP à disposition :
    sudo swapon /memfile.swap

    Analogiquement : swapoff /memfile.swap pour désactiver le fichier d'échange.
    Vous pouvez aller vérifier dans votre moniteur système, la SWAP est là !
  • Enfin, il ne nous reste plus qu'a rendre ce fichier d'échange permanant en le montant directement au démarrage de la machine. Comme d'habitude celà se passe dans fstab :
    sudo gedit /etc/fstab (remplacez gedit par votre éditeur)
    et on ajoute les lignes :
    #Fichier SWAP
    /memfile.swap none swap sw 0 0

Aucun commentaire: