web-dev-qa-db-fra.com

Comment augmenter la taille du fichier d'échange sans le supprimer dans le terminal?

Y a-t-il un moyen d'augmenter mon "fichier d'échange" existant sans avoir à le détruire et à le recréer? Je souhaite augmenter mon espace d'échange de 1 Go à 2 Go. Actuellement, il est configuré comme tel:

$ Sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        1048572 736640  -1
$ ls -lh /swapfile
-rw------- 1 root root 1.0G Nov  9  2016 /swapfile

J'utilise Ubuntu 14.04.

45
Dave

Commencez par désactiver le fichier d'échange:

Sudo swapoff /swapfile

Augmentons maintenant la taille du fichier d'échange:

Sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 oflag=append conv=notrunc

La commande ci-dessus ajoutera 1 Go de zéro octet à la fin de votre fichier d'échange.

Configurez le fichier en tant que "fichier d'échange":

Sudo mkswap /swapfile

activer l'échange:

Sudo swapon /swapfile
56
Ravexina

Vous devriez ajouter un nouveau fichier d'échange au lieu de redimensionner l'existant car cela ne vous coûte rien de le faire. Pour redimensionner un fichier d'échange, vous devez d'abord le désactiver, ce qui supprime le contenu de l'échange dans la RAM, ce qui augmente la pression sur RAM et peut même invoquer le tueur de MOO (sans parler du fait que vous pourriez écraser vos disques plusieurs minutes). Plusieurs fichiers d'échange ne sont pas un problème, il est très facile de configurer un autre fichier d'échange. Redimensionner un fichier d'échange plutôt que d'en ajouter un ne présente pratiquement aucun avantage.

dd if=/dev/zero of=/some/file count=1K bs=1M
mkswap /some/file
Sudo chown root:root /some/file
Sudo chmod 600 /some/file
Sudo swapon /some/file
29
muru

Vous pouvez créer un autre fichier d'échange comme je l'ai fait:

  1. Sudo fallocate -l 4G /swapfile
  2. Sudo chmod 600 /swapfile
  3. Sudo mkswap /swapfile
  4. Sudo swapon /swapfile
  5. Vérifiez qu'il fonctionne avec Sudo swapon --show
    Pour le rendre permanent, ajoutez un fichier à la saisie du fichier fstab:
    echo '/swapfile none swap sw 0 0' | Sudo tee -a /etc/fstab
9
borekon

J'ai de bons résultats sur mon Ubuntu 17.04 en suivant les conseils d'Arian Acosta du blogpost . Ici, vous pouvez remplacer le 4G Sudo fallocate -l 4G /swapfile par la quantité de gigaoctets de votre choix. Par exemple, Sudo fallocate -l 2G /swapfile for TS.

En règle générale, la taille recommandée pour un fichier d'échange est 2 fois la quantité de RAM, mais vous pouvez la rendre aussi grande que nécessaire. N'oubliez pas que cela ne remplace pas la mémoire, car les performances sont bien pires car tout est stocké sur le disque.

J'ai créé un script bash simple qui incrémente le fichier d'échange à 4 Go et l'a testé sur Ubuntu 16.04.

Cela peut être exécuté ligne par ligne ou un script bash, mais je l’utilise pour réaliser des installations sans tête.

#!/bin/bash
echo "====== Current Swap ======"
Sudo swapon -s
echo "====== Turning Off Swap ======"
Sudo swapoff /swapfile
echo "====== Allocating 4GB Swap ======"
Sudo fallocate -l 4G /swapfile
echo "====== Making Swap ======"
Sudo mkswap /swapfile
echo "====== Setting Permissions to Root Only  ======"
Sudo chmod 600 /swapfile
echo "====== Turning On Swap ======"
Sudo swapon /swapfile
echo "====== Current Swap ======"
Sudo swapon -s
echo "====== Done! ======"
6
Denis Trofimov