Quel système de fichiers est échangé sous Linux


14

Sous Linux, vous pouvez choisir des éléments comme ext3 et reiserfs pour les partitions. Pour la partition de swap, vous choisissez simplement "swap". De quel système de fichiers s'agit-il réellement? Pouvez-vous simplement créer une partition ext3 et en faire une partition de swap? En quoi serait-ce différent?


Le système de fichiers d'échange sous Linux semble s'appeler le système de fichiers d'échange de Linux. Si je parviens à trouver de vraies informations à ce sujet, je posterai une réponse. Jusqu'à présent, j'ai lu sur en.wikipedia.org/wiki/Paging que le noyau contourne le système de fichiers sur les fichiers d'échange. La même chose peut être vraie avec les partitions de swap.
AndrejaKo

1
Les gens incroyables sur les forums Gentoo m'ont fourni ce lien! Tout semble bien expliqué. Oh et merci à John R. Graham.
AndrejaKo

Réponses:


26

L'échange n'est pas un système de fichiers réel. Il s'agit simplement d'une partie réservée du disque qui est une mémoire adressable brute sans structure spéciale.

mkswap crée un en-tête pour la zone de swap avec quelques informations supplémentaires. Depuis swapheader.h du paquet util-linux-ng:

struct swap_header_v1 {
    char         bootbits[1024];    /* Space for disklabel etc. */
    unsigned int version;
    unsigned int last_page;
    unsigned int nr_badpages;
    unsigned int padding[125];
    unsigned int badpages[1];
};

La version 1 de l'en-tête est celle actuellement utilisée. C'est à peu près toute la magie derrière la structure brute du swap.


N'existe-t-il pas une sorte de système de fichiers pour lire et écrire quelque chose de significatif sur une partition?
tony_sid

5
Non. Il vous suffit d'adresser des morceaux de mémoire. C'est exactement ce que sont les pages. C'est parce que vous ne stockez pas les données avec une structure complexe ou des informations supplémentaires comme dans de vrais systèmes de fichiers où les autorisations et les dates sont stockées avec les données.
matthias krull

6
Vous pouvez toujours adresser des blocs si vous n'avez pas de système de fichiers.
matthias krull

8

Je pense que la partition de swap n'a pas besoin d'un système de fichiers car il n'y a ni fichiers ni répertoires. La partition de swap est l'emplacement virtuel de la RAM.


2
ce n'est pas exactement le bélier virtuel. c'est (comme la mémoire RAM) qui peut être mappée à la mémoire virtuelle d'un processus.
matthias krull

4

Linux a deux formes d'espace d'échange: la partition d'échange et le fichier d'échange. La partition d'échange est une section indépendante du disque dur utilisée uniquement pour l'échange; aucun autre fichier ne peut y résider. Le fichier d'échange est un fichier spécial du système de fichiers qui réside entre votre système et vos fichiers de données.

L'échange est nécessaire pour deux raisons importantes. Premièrement, lorsque le système nécessite plus de mémoire que ce qui est physiquement disponible, le noyau échange les pages moins utilisées et donne de la mémoire à l'application (processus) actuelle qui a besoin de la mémoire immédiatement. Deuxièmement, un nombre important de pages utilisées par une application au cours de sa phase de démarrage ne peuvent être utilisées que pour l'initialisation, puis ne plus jamais être utilisées. Le système peut échanger ces pages et libérer de la mémoire pour d'autres applications ou même pour le cache disque.


2
La réponse est vraiment sympa et explique le cœur du problème, mais c'est une réponse à la question "Qu'est-ce que le swap sur GNU / Linux?" Alors qu'est-ce que ça fait ici? En outre, lien lié linux.com/news/software/applications/…
AndrejaKo

Je sais ce qu'est l'échange.
tony_sid

... ne connaissait pas l'option de fichier d'échange
MrCalvin

-1

Il existe deux façons de créer un espace d'échange: l'échange de système de fichiers et l'échange de périphérique (ou brut). Avec l'échange de système de fichiers, vous créez un fichier sur un système de fichiers et l'utilisez comme espace d'échange (un peu comme vous le verriez sur Windows avec pagefile.sys). Avec le swap de périphérique, vous swapez vers une partition que vous avez créée spécifiquement pour le swap.

Ce qui est mieux:

Ce débat était beaucoup plus intéressant dans le passé, car:

Pourquoi l'échange de périphériques est "meilleur": étant donné que vous passez à une partition brute, c'est plus rapide car vous n'avez pas à gérer tous les frais supplémentaires d'un système de fichiers avec des inodes et d'autres frais généraux de système de fichiers

Aujourd'hui, cependant, cet argument ne tient pas vraiment. Avec l'évolution de la vitesse d'accès au disque ces jours-ci, l'échange de périphériques ne vous fait pas gagner beaucoup plus de temps que l'échange de systèmes de fichiers.

Pourquoi l'échange de système de fichiers est "meilleur": beaucoup plus facile de changer les tailles. Lorsque vous changez la taille des partitions, c'est beaucoup plus difficile que de simplement créer de nouveaux fichiers.

Aujourd'hui, cependant, avec de nombreuses personnes utilisant LVM au lieu de partitions brutes, il est facile de réduire et d'agrandir votre espace de swap

AUJOURD'HUI, c'est encore plus théorique: la plupart des serveurs de nos jours pour des raisons de performances, cela en vaut le coût juste pour le brancher plein de mémoire. (Ce débat était beaucoup plus populaire lorsque la RAM était plus difficile à trouver et il était courant de ne mettre que 4 Go à 8 Go de RAM dans un serveur)

POURQUOI J'UTILISE LE FILESYSTEM SWAP (et le swap en général)

Ces jours-ci, je demande à nos gars d'installer avec 4gig swap onl et nous utilisons la même config / image pour toutes nos installations Linux. L'installation d'Oracle nécessite une utilisation de swap plus élevée, donc pour les systèmes dotés d'Oracle, je créerai le reste avec le swap du système de fichiers. Il est possible que votre application ait une exigence d'échange, auquel cas vous pouvez l'ajouter plus tard avec l'échange de système de fichiers.

est-ce que cela aide?

J'ai des instructions détaillées sur la façon de le faire sous Linux ici: http://geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/


1
«Aujourd'hui, cependant, cet argument ne tient pas vraiment. Avec l'évolution de la vitesse d'accès au disque ces jours-ci, l'échange de périphériques ne vous fait pas gagner beaucoup plus de temps que l'échange de systèmes de fichiers. »- ce n'est pas la raison. L'idée ici est que l'espace d'échange peut être en demande immédiate . Traverser un système de fichiers implique des répertoires, des blocs, des inodes, le cache de tampon, etc. qui sont des chemins de code qui peuvent eux-mêmes avoir besoin de plus de mémoire, ce qui conduit à une boucle. C'est pourquoi l'échange est préférable sur un périphérique de bloc brut. Il évite également la fragmentation du fichier d'échange.
mirabilos
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.