Je ne peux pas imaginer pourquoi un fichier d'échange doit être de taille fixe. Pourquoi ne pas le laisser redimensionner dynamiquement, comme le fichier image du disque dur pour une boîte virtuelle?
Je ne peux pas imaginer pourquoi un fichier d'échange doit être de taille fixe. Pourquoi ne pas le laisser redimensionner dynamiquement, comme le fichier image du disque dur pour une boîte virtuelle?
Réponses:
Il ne semble pas que Linux prenne en charge le dimensionnement dynamique des fichiers d'échange (en tout cas, je n'ai pas pu le détecter qu'un fichier d'échange avait changé de taille sans swapoff
/ swapon
).
Vraisemblablement, il est plus facile de supposer qu'un fichier d'échange ne change pas la taille du fichier dynamiquement lors de l'écriture du code pour le prendre en charge. Je ne vois pas non plus une grande utilité pour cela. Puisque vous pouvez utiliser plusieurs fichiers d'échange, rien ne vous empêche de créer plus de fichiers d'échange au besoin.
Notez également ce paragraphe de la swapon
page de manuel :
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.
SwapSpace est un utilitaire qui vous permettra de faire un swap de taille dynamique si c'est ce que vous recherchez. Je pense qu'il est disponible dans Ubuntu.
Je sais qu'il est tard, mais je pense que la meilleure solution pour le swap dynamique est de:
sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable
puis mise CONF_SWAPFACTOR=2
en place /etc/dphys-swapfile
et enfin
sudo service dphys-swapfile start
L'espace d'échange peut être ajouté à un système en cours d'exécution à l'aide de la swapon
commande. Il a besoin d'un fichier d'échange / partition existant (inutilisé). Pour en créer un, utilisez la dd
commande pour allouer un fichier contigu, puis mkswap
pour ajouter les informations de contrôle correctes au fichier / partition.
Pour supprimer un fichier d'échange, utilisez swapoff
; le fichier peut ensuite être supprimé.
Je soupçonne que c'est ce SwapSpace
que fait Dæmon @ user231695.
Notez que swapoff peut être une opération lente si le fichier d'échange est utilisé; toutes les données doivent être transférées vers une autre zone de swap.