web-dev-qa-db-fra.com

partition d'échange vs fichier d'échange

Je lisais les nouvelles modifications avec Ubuntu 17.04 et l’une d’entre elles a attiré mon attention. Elle passait du modèle de partition swap typique à un nouveau modèle de fichier swap pour les nouvelles installations.

Y a-t-il des avantages à l’utiliser par opposition à une partition de swap, peut-être liée aux performances, à l’économie d’espace, plus conforme au matériel actuel comme les disques SSD et NVMe ou autre chose?

Une autre question connexe est de savoir comment puis-je migrer d'une partition d'échange vers un fichier d'échange? Je suppose que j'utilise dd mais je veux confirmer car je ne connaissais pas le schéma de fichier d'échange jusqu'à présent.

Enfin, l'hibernation posera-t-elle un problème avec les fichiers d'échange?

Bien sûr, ces questions peuvent être liées à des cas où l'utilisateur possède beaucoup de RAM et où le swap est rarement utilisé (je suppose). Donc, juste pour confirmer que cette information va m'aider et aider les autres avec les mêmes doutes.

44
Luis Alvarado

Le seul avantage d'un fichier d'échange est qu'il est facile à redimensionner. Il est donc inutile de procéder à une transition, sauf si vous n'êtes pas satisfait de la taille de votre partition d'échange.

Les fichiers d'échange étaient traditionnellement découragés pour un certain nombre de raisons. Le fichier d'échange était plus lent avant Linux v2.4 , et peut-être encore plus lent si vous créez le fichier d'échange sur un système de fichiers fragmenté. Vous avez peut-être un peu plus de chance de rencontrer des bugs de mémoire avec des fichiers d'échange, par exemple les catch-22 où vous ne pouvez plus allouer de mémoire tant que vous n'en avez pas échangé, mais le système de fichiers doit en allouer avant de pouvoir échanger. Il y a quelques années, l'hibernation sur swapfiles était une nouvelle fonctionnalité controversée pour des raisons similaires. Il y a des années, lorsque les systèmes de fichiers étaient encore un peu buggés (et non journalisés), il était déconseillé de faire un nombre considérable d'écritures de systèmes de fichiers importants, lorsque vous pouviez simplement utiliser un fichier d'échange. En tant que tradition par défaut, les partitions d'échange ont été testées davantage que les fichiers d'échange. Canonical pense probablement que ces problèmes ne valent plus la peine de s’inquiéter.

La principale raison maintenant de ne pas passer à un fichier d'échange est "pourquoi réparer quelque chose qui n'est pas endommagé". Si vous ne sauvegardez pas votre partition principale et supprimez accidentellement votre /home au lieu de votre fichier d'échange, il serait fastidieux d'essayer de le récupérer.

Une autre raison de ne pas passer aux fichiers d'échange, c'est si vous utilisez btrfs qui ne prend pas en charge les fichiers d'échange (sauf via les fichiers de bouclage lents)


Même si vous optez pour un fichier d'échange, il n'est pas vraiment nécessaire de supprimer votre partition d'échange sauf si vous manquez d'espace. Vous pouvez utiliser les deux en même temps si vous le souhaitez. Si vous décidez de supprimer la partition de swap, commencez par démarrer avec un LiveCD Ubuntu, puis passez à try without installing. Ensuite, dans un terminal, exécutez gparted, supprimez la partition de swap et redimensionnez les partitions restantes (effectuer une sauvegarde en premier peut être une bonne idée).

Maintenant, redémarrez dans votre installation Ubuntu habituelle et créez le fichier d'échange. L'avantage d'un fichier d'échange étant qu'il est facile à redimensionner, vous pouvez utiliser SwapSpace pour gérer la taille de votre fichier d'échange:

Sudo apt install swapspace

Vous pouvez également créer manuellement un fichier d'échange en suivant les instructions à l'adresse suivante: https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04 =

Pour résumer, vous pouvez créer un fichier d'échange 1G en collant ce qui suit dans un terminal.

Sudo fallocate -l 1G /swapfile
Sudo chmod 600 /swapfile
Sudo mkswap /swapfile
Sudo swapon /swapfile
Sudo swapon --show

Si cela fonctionne, vous pouvez le rendre permanent en faisant:

Sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | Sudo tee -a /etc/fstab
30
gmatht