Swap: Mieux vaut créer une partition de swap dédiée ou créer un fichier de swap?

9

Existe-t-il une justification pour créer une partition de swap dédiée par rapport à la création d'un fichier de swap, par exemple comme / tmp / swap?

Dans mon cas, la mémoire est assez faible (1 Go), l'espace disque sur un SSD est assez énorme (256 Go). Ainsi, l'échange se fera assez régulièrement.

Tous commentaires appréciés!

Carsten

CarstenP
la source
4
Sachez que vous pouvez raccourcir la durée de vie de votre SSD en l'utilisant pour l'échange. askubuntu.com/questions/652337/…
steve

Réponses:

3

Le principal inconvénient que je peux voir pour l'utilisation de fichiers d'échange par opposition aux partitions d'échange est qu'il n'est pas possible d'avoir une partition d'échange fragmentée, alors qu'il est possible qu'à la création, un fichier d'échange sur un système de fichiers d'extension puisse être divisé sur le disque, ce qui entraîne un accès séquentiel plus lent.

DopeGhoti
la source
2
Étant donné que les disques SSD n'ont pas de pénalité de lecture aléatoire, le fichier fragmenté ne cause que très peu de dommages.
David King
Pour être honnête, je suis en faveur d'une partition de swap depuis, mais bon, comme nous le disons ici en Allemagne, "il n'y a aucun coût à demander" ;-)
CarstenP
1
Je crée souvent des fichiers d'échange pour une utilisation temporaire si je prévois un gros projet à venir qui pourrait épuiser la RAM configurée et échanger des partitions, mais j'aime le garder partitionné. De cette façon, je peux réutiliser les partitions d'échange entre les distributions Linux aussi facilement que je peux réutiliser les partitions domestiques.
DopeGhoti
1
La partie concernant «plus de couches de code du noyau à parcourir lors de l'écriture dans un fichier sur un système de fichiers» n'est pas vraie: « Le noyau génère une carte de décalage de swap -> des blocs de disque au moment du swapon et utilise ensuite cette carte pour effectuer le swap E / S directement par rapport à la file d'attente de disque sous-jacente, contournant toute la mise en cache, les métadonnées et le code du système de fichiers. »- Archive Linux-Kernel: Re: Partage d'échange vs fichier d'échange
Anthony Geoghegan
1

Les opérations d'E / S sur un fichier doivent passer par plusieurs couches de code du noyau (VFS par exemple), il y a donc plus de surcharge associée à l'échange vers un fichier. D'un autre côté, c'est une configuration plus flexible et peut être assez bonne pour votre cas.

Karol Nowak
la source
Peut-être devrais-je me familiariser avec la pompe, les canards et les circonstances du Swap I / O ... N'est-il pas vrai que Linux est juste agréable, lent et simple ?? ^^: D PS: Eh bien, oubliez la chose "lente" ... ^^
CarstenP
Ce n'est pas vraiment vrai: « Le noyau génère une carte de décalage de swap -> des blocs de disque au moment du swapon et utilise ensuite cette carte pour effectuer des swap I / O directement contre la file d'attente de disque sous-jacente, en contournant toute la mise en cache, les métadonnées et le code du système de fichiers. ”- Archive Linux-Kernel: Re: Swap partition vs swap file
Anthony Geoghegan
1

L'accès aux fichiers d'échange ne passe pas par le système de fichiers ... le noyau sait quels blocs de disque sont échangés et y accède directement 1 . Mais un fichier non contigu peut avoir des fragments dans différentes zones du disque, et selon l'utilisation spécifique, une recherche supplémentaire peut le ralentir par rapport à une partition dédiée.

OTOH, si vous avez affaire à un serveur cloud qui n'a pas de partition de swap et qu'il n'y a aucune possibilité d'en créer une, un fichier de swap peut enregistrer votre application.


[1] « Le noyau génère une carte de décalage de swap -> des blocs de disque au moment du swapon et utilise ensuite cette carte pour effectuer des swap I / O directement contre la file d'attente de disque sous-jacente, en contournant toute la mise en cache, les métadonnées et le code du système de fichiers. ”- Linux-Kernel Archive: Re: Swap partition vs swap file

George
la source
Que se passe-t-il si le fs déplace / redimensionne des blocs de fichiers? Je pense que dans le cas des fichiers d'échange, au moins une interaction avec le pilote fs devrait exister.
peterh
A voté. Cela devrait être la réponse acceptée car c'est la seule qui indique que le noyau accède directement aux blocs de disques utilisés pour l'échange.
Anthony Geoghegan