Quel est le but de plusieurs fichiers d'échange

29

Lors de l'installation de la plupart (sinon de toutes) les distributions de Linux, le disque dur est partitionné pour inclure une partition de swap par défaut.

Il est possible de modifier ce comportement avec swapon -p priority

Selon les pages de manuel, la priorité est:

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority area is 
exhausted before using a lower-priority area. If two or more areas have the 
same priority, and it is the highest priority available, pages are 
allocated on a round-robin basis between them.

As of Linux 1.3.6, the kernel usually follows these rules, but there are 
exceptions

Pourquoi auriez-vous besoin de plus d'un fichier d'échange?
Est-il courant que les administrateurs système configurent plus d'un swap?

spuder
la source

Réponses:

48

Il y a tellement de raisons d'avoir plusieurs zones de swap (elles n'ont pas besoin d'être des fichiers), même si vous n'avez qu'une seule broche.

Rétrospective 20-20: vous avez déployé une machine avec une seule zone de swap, puis vous vous êtes rendu compte que ce n'était pas suffisant. Vous ne pouvez pas redéployer la machine à volonté, mais vous pouvez créer une autre zone de swap (probablement un fichier) jusqu'à ce que refaire la disposition de la partition devienne une option.

Redimensionner ou déplacer des zones de swap: Vous ne pouvez pas redimensionner des zones de swap (comme mentionné par Evan Teitelman ). Et vous ne pouvez pas simplement swapoffcréer une nouvelle zone de swap, puis de swaponnouveau à moins que vous n'ayez assez de RAM: vous voulez swapoffdéplacer toutes les pages échangées vers la RAM avant de lâcher la zone de swap. Donc, vous créez une zone de swap temporaire, swapoffl'original, attendez que toutes les pages soient déplacées de l'ancienne zone de swap vers la temporaire, redimensionnez la partition de swap d'origine, mkswapelle, puis swaponla redimensionnée et swapoffla temporaire. Les pages échangées sont copiées de la zone d'échange temporaire vers la zone redimensionnée, et vous avez terminé. Si vous déplacez des zones d'échange, vous n'avez même pas besoin d'une zone temporaire. mkswaple nouveau swapon, alorsswapoff l'ancien et tout a bougé.

Échange rapide et fou: les disques modernes utilisent l' enregistrement de bits de zone . La première zone du disque est la plus rapide. Vous souhaiterez peut-être mesurer le disque et créer une partition couvrant exactement la première zone la plus rapide du lecteur. Cela peut être plus petit que votre taille de swap prévue. Vous ajoutez donc plusieurs partitions sur plusieurs disques, en utilisant la même technique.

Échange rapide et fou, la suite: alternativement, une fois que vous savez où se trouvent les zones les plus rapides de vos disques, vous pouvez créer des zones d'échange de priorité élevée dans la première zone, des zones d'échange de priorité inférieure dans la deuxième zone, etc. De cette façon, votre système d'échange sait automatiquement pour équilibrer la charge sur toutes les zones de disque rapide, préférez les zones plus rapides et utilisez les zones plus lentes comme zone de débordement lorsque le besoin s'en fait sentir.

Équilibrage de charge symétrique: sur un système bien construit avec de nombreuses broches (comme un serveur), j'aime avoir plusieurs partitions de swap occupant le début de chaque disque (pour profiter de l' enregistrement de bits de zone ). Ils ont tous des priorités identiques, donc le noyau équilibrera la charge du swap. Une broche peut vous donner 100 Mo / s, mais un échange entre toutes les broches peut vous en donner un multiple. (parlant naïvement)

Équilibrage de charge compatible avec les goulots d'étranglement : dans la pratique, cependant, d'autres goulots d'étranglement sont en place. Ainsi, par exemple, un serveur à 16 disques peut avoir quatre ports SATA à 6 Gbit / s, chacun avec un multiplicateur à quatre ports et quatre disques partageant la bande passante. Si vous le savez, vous pouvez organiser vos espaces de swap afin que le disque 1 sur les ports 1 à 4 ait la priorité la plus élevée, les deuxièmes disques sur les ports 1 à 4 aient la deuxième priorité la plus élevée, etc. multiplicateurs de ports.

Échange entre des appareils avec des performances différentes: (comme mentionné par Luke) si votre système n'est pas un tout nouveau serveur, et qu'il s'est développé de manière organique au fil des ans, il peut avoir des appareils bloqués beaucoup plus rapides que les autres. Vous voudrez d'abord passer à l'appareil le plus rapide, puis au suivant le plus rapide, etc.

Considérations sur la taille: (gracieuseté de David Kohen ) peut-être que mettre tout votre swap sur un disque laisse quelques concerts gratuits sur le disque (cela ressemble à un scénario de 2001, mais il y a beaucoup de vieux appareils ou intégrés où cela pourrait être un problème). Répartissez-le sur tous les lecteurs, et en plus de tous les autres avantages ci-dessus, vous obtenez une meilleure utilisation de l'espace disque par lecteur. C'est une chose de perdre quelques concerts par broche, et une autre de perdre 300 concerts d'un disque.

Urgences: vous avez exactement 96 heures pour soumettre votre thèse de doctorat, et votre dernière expérience (celle qui vous procurera ce prix Nobel ainsi que les lettres funky mixtes après votre nom) aspire la mémoire à des taux impressionnants. Vous n'avez presque plus d'échange. Vous créez un fichier d'échange avec une priorité inférieure à la priorité de votre périphérique d'échange principal - le noyau l'utilisera comme espace d'échange de débordement. Vous pouvez même installer swapd pour le faire automatiquement pour vous, vous aurez donc beaucoup d'espace de swap pour ces énormes emacsexécutions et LaTeX.

Échange sur différents supports: Linux ne peut pas échanger sur des périphériques de caractères, mais il existe de nombreux supports différents, physiques et virtuels: SSD (remarque: vous ne voulez probablement pas échanger sur des SSD), des dizaines de types différents et incroyablement différents de tourner dur disques, disquettes (oui, vous pouvez échanger sur une disquette - vous pouvez toujours vous tirer une balle dans le pied avec Unix), volumes DRBD , iSCSI, volumes LVM, partitions chiffrées LUKS, etc. swap sur LUKS sur LVM sur un lecteur ZIP à port parallèle via iSCSI sur Ethernet agrégé IEEE802.3ad? Pas de problème, sale pervers). Ce sont des scénarios de niche et sont destinés à prendre en charge les exigences de niche.

Alexios
la source
Merci, je ne connais pas bien l'enregistrement de zone. Je suis curieux de déplacer ma partition de swap à la mendicité du plateau, j'ai donc ouvert une nouvelle question sur superuser.com
spuder
1
J'ajouterais une raison historique: par le passé, l'utilisation d'un disque comme périphérique d'échange n'était parfois pas efficace car elle utilisait trop d'espace et rendait le reste du disque inutile ou moins utile, et en répartissant l'espace d'échange sur plusieurs périphériques fourni un compromis entre un grand espace d'échange et la quantité d'espace contigu disponible sur le disque.
Didi Kohen
C'est toujours le cas. En outre, vous souhaiterez peut-être que votre échange occupe la zone la plus rapide du disque, et seulement cela. Ce qui ne vous donne que beaucoup d'espace pour jouer avec chaque broche. Bien que cela n'ait pas été le cas historiquement, parce que les disques durs zonés sont une «nouvelle» chose. (ma version de «historique» est lorsque la mémoire a été mesurée en mots)
Alexios
+1 pour "vous pouvez toujours vous tirer une balle dans le pied avec Unix" :-)
DUzun
3

Lecteurs de disques à plusieurs vitesses. Vous pouvez configurer le plus rapide à utiliser en premier, suivi des plus lents si celui-ci échoue.

Luc
la source
3

Vous ne pouvez pas étendre les fichiers d'échange (au moins, pour autant que je sache) ou échanger des partitions pendant leur utilisation. Si vous êtes sur le point de remplir votre zone d'échange disponible, vous devrez peut-être créer des fichiers d'échange supplémentaires.

De plus, si un système a besoin de 4 Go d'espace de swap et possède deux unités de stockage de 2 Go, il doit utiliser au moins deux zones de swap.


la source