Gestion de la mémoire (RAM et Swap) sous Linux

(Source)
Voici un article consacré à la gestion de la mémoire sous Linux.

Introduction

La mémoire disponible pour votre système d'exploitation possède 2 composantes :
  • la mémoire vive (= RAM pour "Random Access Memory"). Appellée aussi physique ou volatile. Pour augmenter sa quantité, un seul moyen : acheter de nouvelles pièces.
  • la mémoire virtuelle (= swap pour "échange"). Elle permet d'augmenter la quantité de mémoire utilisable en écrivant sur un disque dur un fichier d'échange mimant une barrette de RAM. A vous de choisir sa taille. Idéalement, une partition devrait être dédiée à ce rôle, bien que cela ne soit pas obligatoire : le dossier /swap est alors situé sur la partition recevant le point de montage racine /.
Le fichier d'échange doit être d'un seul bloc (pas de 'trous' dus à la fragmentation des données sur le disque dur). C'est pour cela qu'on préfère le mettre sur une partition dédiée. Notez que vous pouvez utiliser plusieurs fichiers d'échange au besoin (création rapide et pas besoin de re-démarrer...).


Quelques commandes

Votre distribution GNU/Linux propose sûrement des outils graphiques pour faire ce que je vais vous montrer. Les commandes console ont simplement l'avantage - outre l'aspect pédagogique - d'être universelles. Les allergiques à la console exploreront donc l'outil d'administration de leur distribution (KSysguard par exemple dans KDE).

Voir le statut

Pour savoir la quantité de mémoire utilisée par Linux, ouvrez une console et tapez :

free -m

Exemple de résultat :


total used free shared buffers cached
Mem: 2012 1205 806 0 93 824
-/+ buffers/cache: 287 1724
Swap: 494 0 494


Vous pouvez ainsi voir la mémoire vive (mem) ou d'échange (swap) utilisée (used) ou non (free), exprimée en Mo. Et là vous vous dites, "1205 Mo sur 2012 de mémoire vive utilisée, il la mange la RAM ou quoi ?!?". Il faut savoir que la RAM non utilisée est tout bonnement gaspillée. Linux s'en sert comme cache disque : les données transitoires sont écrites dans la RAM plutôt que sur le disque dur, ce qui est environ 1000 fois plus rapide. Vous voyez que dans mon cas, j'ai 824 Mo de cache disque. Cela permet donc de re-acceder aux données en cours plus vite. Ecraser ce cache n'entraîne pas de perte de temps heureusement. La quantité de mémoire immédiatement disponible est donc plus elevé que la valeur 'free'.

La commande top donne plus ou moins le même résultat, à part qu'elle est en temps réel. Tapez q pour quitter.

Vous vous demandez peut-être aussi pourquoi le total indiqué de RAM est de 2012 et pas 2048 ? C'est principalement parce que le noyau Linux est installé en mémoire vive (impossible de le mettre sur un fichier d'échange) et que la place qu'il occupe n'est de toutes façons pas disponible pour autre chose.


Créer et activer un fichier d'échange

Il est vraisemblable que votre distribution ai déjà créé un fichier d'échange... Toutefois au cas où vous aimeriez en créér un autre, ou tout simplement comprendre, voici la marche à suivre.

Je part du principe qu'une partition a été créé (par exemple avec fdisk ou QtParted). Cette partition n'a pas besoin d'être formatée. Je veux dire par là qu'il est inutile de lui appliquer un système de fichiers (ext3, reseirfs etc.). Si vous avez le choix, créez la partition comme étant de type 82 (= linux swap) : cela aide à la repérer dans une liste de partitions. Pour
rappel :

$­­­­­­­­­­­­­­­­ fdisk /dev/sda -l
Affiche la liste des partition. Adaptez sda avec le nom de votre disque.

Il vaut mieux mettre la partition de mémoire virtuelle en début de disque (où la vitesse d'accès est plus elevée) et si possible sur un autre disque que celui contenant la "partition racine" et /var. Quant à sa taille, on conseille souvent 2 fois la RAM (exemple : swap de 1024 pour 512Mo de RAM ) mais il semble que cela soit plutôt une demande des systèmes *BSD et non Linux. Sa taille devrait aussi un multiple de 4 si possible (256, 512, 1024...). Actuellement, je tourne avec 512Mo de swap contre 2048Mo de RAM. Et tout va très bien merci .

Maintenant que la partition est créée (/sda1 dans mon exemple), voyons comment on créé un fichier d'échange. En console, obtenez les privilèges administrateur puis faites


# mkswap /dev/sda1
Initialise la partition de mémoire virtuelle. Faites attention à bien adapter le nom de la partition, vous risqueriez en vous trompant de détruire des fichiers.

# swapon /dev/sda1
Active la mémoire virtuelle.

Voila, vous disposez à présent d'un fichier d'échange que le noyau utilisera si besoin. Vous pouvez le désactiver par :

# swapoff /dev/sda1
Désactive la mémoire virtuelle.

Pour info, pour désactiver les fichiers d'échange listés dans le fichier /etc/fstab, faites :

# swapon -a
Les fichiers d'échange montés manuellement (pas dans /etc/fstab donc) ne seront pas désactivés.


Liens externes

Topic sur Gentoo
Tuto sur linux-kheops.




Date de création : 25/05/2024 @ 21:53
Dernière modification : 01/10/2024 @ 18:42
Catégorie :
Page lue 5528 fois


 Prévisualiser      Imprimer l'article

Réactions à cet article


Personne n'a encore laissé de commentaire.
Soyez donc le premier !


News RSS du Libre
Infos Site

Se reconnecter
---

Votre nom (ou pseudo) :

Votre code secret


  346 membres


Connectés :

( personne )
Recherche




Sondage
Quelle distribution utilisez vous le plus ?
 
Mandriva
Mepis
Ubuntu &Cie;
SuSE
Debian
Knoppix/Kaella
Xandros
Gentoo
Fedora
Autres
Résultats
Compteur

   visiteurs

   visiteurs en ligne

Divers
GuppyTop

Soutien
Site de Doudou
Site de Garulfo
Anupaz
Haut