Il me semble qu'un fichier d'échange est plus flexible.
Il me semble qu'un fichier d'échange est plus flexible.
Réponses:
Un fichier d'échange est plus souple mais également plus faillible qu'une partition d'échange. Une erreur du système de fichiers pourrait endommager le fichier d'échange. Un fichier d'échange peut être pénible pour l'administrateur, car il ne peut être ni déplacé ni supprimé. Un fichier d'échange ne peut pas être utilisé pour l'hibernation. Un fichier d'échange était un peu plus lent dans le passé, bien que la différence soit négligeable de nos jours.
L'avantage d'un fichier d'échange est de ne pas avoir à décider de la taille à l'avance. Cependant, sous Linux, vous ne pouvez toujours pas redimensionner un fichier d'échange en ligne: vous devez le désenregistrer, le redimensionner, puis le réenregistrer (ou créer un autre fichier et supprimer l'ancien). Un fichier d'échange sous Linux ne présente donc pas beaucoup d'avantages par rapport à une partition d'échange. C'est surtout utile lorsque vous avez temporairement besoin de plus de mémoire virtuelle, plutôt que comme une installation permanente.
Une partition de swap peut être préférée car elle évite une dépendance du système de fichiers lorsque tout ce dont vous avez besoin est un pool de mémoire adressable.
Mais rien ne vous empêche d'utiliser un fichier d'échange au lieu d'une partition d'échange ou en plus d'une partition d'échange.
Créez le fichier:
dd if=/dev/zero of=/extraswap bs=1M count=512
Initialiser le contenu du fichier:
mkswap /extraswap
Utilise le:
swapon /extraswap
Voir si cela a fonctionné:
free -m
Afin de commencer à utiliser le fichier d'échange toujours au démarrage, éditez / etc / fstab et ajoutez
/extraswap swap swap defaults 0 0
[1] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html
moreswap
un terminal si j'ai soudainement besoin d'espace supplémentaire d'échange:alias moreswap='swapfile=`mktemp /tmp/swapXXXX` && sudo touch $swapfile && sudo dd bs=512 count=1M if=/dev/zero | tee $swapfile | pv -s 512M && sudo mkswap $swapfile && sudo swapon $swapfile'
La raison principale est peut-être que le noyau principal suspendre sur disque ne fonctionne pas avec les fichiers d'échange. Par exemple, les instructions du wiki Debian doivent être installées uswsusp
si vous en avez besoin.
Plus récemment, les fichiers d'échange ne fonctionnent pas si le système de fichiers l'est btrfs
, il est donc plus simple pour les distributions de toujours créer un échange en tant que partition.
Il est vaguement mentionné que l'utilisation d'un fichier d'échange avait des performances potentiellement inférieures à celles d'une partition, avant la version 2.6 du noyau. https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15
Pour compléter, je vais ajouter ma propre réponse:
Comme l'a dit @Gilles, un fichier d'échange ne peut pas être utilisé pour l'hibernation. Lors de l'utilisation d'un fichier d'échange, le système doit localiser l'en-tête du fichier d'échange, mais pour ce faire, le système de fichiers contenant le fichier d'échange doit être monté, ainsi qu'un système de fichiers journalisé - par exemple, ext3, ext4 et pratiquement tous les systèmes de fichiers modernes utilisés par Linux. - ne peut pas être monté pendant la reprise à partir du disque. (En réalité, il existe des moyens de le faire, mais assez lourd.)
Source: https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt
Je pense que c'est principalement parce que le temps d'accès aux données situées sur une partition est plus court. Le fichier d'échange sert surtout à aider l'administrateur du système lorsqu'il ne dispose plus de mémoire vive et qu'il doit effectuer d'importantes opérations pouvant provoquer le blocage de son système. Dans ce cas, il créera sporadiquement des fichiers d'échange en cas de besoin.
Mais de toute façon, vous pouvez avoir les deux.