web-dev-qa-db-fra.com

Ubuntu prend-il en charge le dimensionnement dynamique des fichiers d'échange?

Je ne peux pas imaginer pourquoi un fichier d'échange doit avoir une taille fixe. Pourquoi ne pas le laisser redimensionner dynamiquement, comme le fichier image du disque dur pour une boîte virtuelle?

12
Tom Mercer

Il ne semble pas que Linux prenne en charge le dimensionnement dynamique des fichiers d'échange (en tout cas, je ne pouvais pas le faire détecter qu'un fichier d'échange avait changé de taille sans un swapoffname __/swaponname__).

Vraisemblablement, il est plus facile de supposer qu'un fichier d'échange ne change pas de manière dynamique la taille du fichier lors de l'écriture du code pour le prendre en charge. Je ne vois aucune utilité non plus. Comme vous pouvez utiliser plusieurs fichiers d'échange, rien ne vous empêche de créer davantage de fichiers d'échange selon vos besoins.

Notez également ce paragraphe de la page de manuel swaponname__ :

The  swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the  filesystem.   This
is  a problem on preallocated files (e.g.  fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.

Je pense que le même problème s’appliquerait à un fichier d’échange de taille dynamique.

11
muru

SwapSpace est un utilitaire qui vous permettra d'effectuer un échange de taille dynamique si c'est ce que vous recherchez. Je crois qu'il est disponible dans Ubuntu.

2
user231695

Je sais qu'il est tard, mais je pense que la meilleure solution pour un échange dynamique consiste à:

Sudo apt install dphys-swapfile
Sudo update-rc.d dphys-swapfile enable

puis définissez CONF_SWAPFACTOR=2 dans /etc/dphys-swapfile et enfin

Sudo service dphys-swapfile start
1
Denis Pitzalis

L’espace de swap peut être ajouté à un système en cours d’exécution à l’aide de la commande swapon. Il a besoin d'un fichier d'échange/partition existant (non utilisé). Pour en créer un, utilisez la commande dd pour allouer un fichier contigu, puis mkswap pour ajouter les informations de contrôle appropriées au fichier/partition.

Pour supprimer un fichier d'échange, utilisez swapoff; le fichier peut alors être supprimé.

Je suppose que c’est ce que SwapSpace dæmon que @ user231695 a mentionné fait.

Notez que swapoff peut être une opération lente si le fichier d'échange est en cours d'utilisation; toutes les données doivent être transférées vers une autre zone d'échange.

0
CSM