next up previous contents index
Next: Utilisation d'un espace de Up: Gestion mémoire Previous: Qu'est-ce que la mémoire   Table des matières   Index

Création d'une zone de swap

Un fichier de swap est un fichier ordinaire ; il n'a rien de particulier pour le noyau. La seule chose qui importe pour le noyau est qu'il n'ait pas de trous, et qu'il soit préparé pour être utilisé avec mkswap. Cependant, il doit résider sur un disque local, pas sur un système de fichiers monté par NFS, ceci pour des raisons d'implantation.

Le point sur les trous est important. Le fichier de swap réserve l'espace disque pour que le noyau puisse rapidement échanger une page mémoire sans avoir à se soucier de tout ce qui est nécessaire pour allouer un secteur du disque à un fichier. Le noyau utilise purement et simplement tous les secteurs qui ont été déjà alloués au fichier. Comme un trou dans un fichier signifie qu'il n'y a pas de secteurs alloués (pour cet emplacement dans le fichier), il ne serait pas bon que le noyau essaie de les utiliser.

Une bonne façon de créer un fichier de swap sans trou est d'utiliser la commande suivante :
\begin{tscreen}
\verb*\vert$\vert {\sl dd if=/dev/zero of=/extra-swap bs=1024 co...
...ert \\
\verb*\vert 1024+0 records out\vert \\
\verb*\vert$\vert
\end{tscreen}
/extra-swap est le nom du fichier de swap et sa taille est donnée après count=. Il est préférable que la taille soit un multiple de 4 car le noyau écrit des pages mémoires, qui font 4 Kilo-octets. Si la taille n'est pas un multiple de 4, les derniers Kilo-octets peuvent être inutilisés.

Une partition de swap n'a rien de spécial non plus. On la crée comme n'importe quelle partition ; la seule différence est qu'elle est utilisée comme une partition brute, c'est à dire qu'elle ne contiendra pas de système de fichiers. Il est préférable de marquer les partitions de swap comme étant de type 82 (Linux swap) ; ceci rend le listage des partitions plus clair, bien que ce ne soit pas strictement nécessaire pour le noyau.

Après avoir créé un fichier ou une partition de swap, il faut écrire une signature à son début ; celle-ci contient des informations d'administration et est utilisée par le noyau. La commande réalisant cette opération est mkswap, utilisée de la façon suivante :
\begin{tscreen}
\verb*\vert$\vert {\sl mkswap /extra-swap 1024} \\
\verb*\vert ...
...ing up swapspace, size = 1044480 bytes\vert \\
\verb*\vert$\vert
\end{tscreen}
On notera que l'espace de swap n'est pas immédiatement utilisé : il existe, mais le noyau ne l'exploite pas encore pour fournir de la mémoire virtuelle. On doit être très prudent lorsque l'on utilise mkswap, car la commande ne vérifie pas si le fichier ou la partition est utilisée pour autre chose. On peut facilement écraser des fichiers importants et des partitions avec mkswap! Heureusement, on ne doit utiliser mkswap que lors de l'installation du système.

Le gestionnaire de mémoire de Linux limite la taille de chaque espace de swap à 127 Mo environ (pour diverses raisons techniques, la limite réelle est (4096-10) x 8 x 4096 = 133890048 octets, soit 127,6875 Mo). Cependant, on peut utiliser jusqu'à 16 espaces de swap simultanément, ce qui donne un total de presque 2 Go4.2.


next up previous contents index
Next: Utilisation d'un espace de Up: Gestion mémoire Previous: Qu'est-ce que la mémoire   Table des matières   Index
root
1999-03-03