Comment augmenter l'espace d'échange?

104

J'ai, par défaut, 250 Mo d'espace de swap dans Ubuntu, et je veux l'étendre à une plus grande taille. J'ai besoin de 800 Mo, ce qui, je pense, sera suffisant pour ouvrir plusieurs applications sans avoir à atteindre la limite actuelle du swap. J'espère que quelqu'un peut m'aider.

    
posée Bruno 21.08.2012 - 22:20
la source

5 réponses

137

Vous pouvez toujours créer un fichier d'échange

pour ajouter plus d'espace d'échange. Ce n'est pas la même chose (dans tous les aspects) que la partition de swap, mais ce sera facile et dynamique.

Remplacez /media/fasthdd/swapfile.img par tout ce que vous voulez, par exemple /swap.img . /media/fasthdd/swapfile.img est juste un exemple de nom de fichier, si vous utilisez celui-ci, bien sûr, il doit y avoir le répertoire /media/fasthdd/ avec suffisamment d'espace libre pour votre nouveau fichier d'échange.

Utilisez l'une des applications du terminal pour exécuter des commandes. Toutes les commandes doivent être exécutées avec les privilèges root . Pour ce faire, vous pouvez ajouter sudo au début de chaque commande ou exécuter sudo bash avant d'exécuter des commandes.

1. Créer un fichier vide:
Ce fichier contiendra le contenu de la mémoire virtuelle afin de rendre le fichier suffisamment grand pour vos besoins. Celui-ci créera un fichier de 1 Go, ce qui signifie + 1 Go d'espace de swap pour votre système:

dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M

Si vous voulez créer un fichier 3Gb, changez la valeur du compte en count=3M . Voir man dd pour plus d'informations.

2. Cuire le fichier d'échange:
La commande suivante va faire "swap fileystem" dans votre nouveau fichier d'échange.

mkswap /media/fasthdd/swapfile.img

3. Afficher au démarrage:
Pour vous assurer que votre nouvel espace d'échange est activé lors du démarrage de l'ordinateur, vous devez l'ajouter au fichier de configuration du système de fichiers /etc/fstab . Ajoutez-le à la fin du fichier, cela est recommandé car les autres systèmes de fichiers () doivent être montés en lecture-écriture pour pouvoir accéder aux fichiers.

# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0

4. Activer:
Vous pouvez redémarrer votre ordinateur ou activer manuellement un nouveau fichier d'échange avec la commande suivante:

swapon /media/fasthdd/swapfile.img

Si tout se passe bien

vous devriez voir qu’un plus grand espace d’échange est disponible. Vous pouvez utiliser les commandes suivantes pour vérifier votre nouvel échange et confirmer qu'il est actif:

cat /proc/swaps
  Filename                           Type       Size    Used    Priority
  /media/fasthdd/swapfile.img        file       8388604 2724    -1

grep 'Swap' /proc/meminfo
  SwapCached:         4772 kB
  SwapTotal:       8388604 kB
  SwapFree:        8355812 kB
    
réponse donnée Sampo Sarrala 21.08.2012 - 22:59
la source
30

Méthode graphique pour augmenter la taille de la partition swap

Une autre manière d’augmenter la taille de l’échange consiste à utiliser l’éditeur de partition GParted . En bref, vous redimensionnez la partition swap, puis faites un clic droit dessus et choisissez "Swapon".

Il est plus facile de démarrer gparted-live-disk ou un disque live Ubuntu (pour que toutes les partitions /dev/sda soient démontées). Si vous exécutez le disque Live Ubuntu, vous devez installer gparted en exécutant les commandes ci-dessous:

sudo apt-get update
sudo apt-get install gparted && sudo gparted

Vous devez pouvoir augmenter la taille de la partition de swap uniquement s’il existe un espace non alloué avant ou après la partition de swap. S'il n'y avait pas d'espace non alloué (l'espace que nous essayons d'ajouter avec la partition de swap) en dessous ou au-dessus de la partition de swap, nous devons redimensionner les partitions et obtenir cet espace non alloué.

Cas 1 - Espace non alloué présent avant ou après la partition de swap

Dans la capture d'écran ci-dessus, j'avais 11,4 Go d'espace non alloué avant le linux-swap et 12,8 Go après la partition de swap.

  • Pour redimensionner, cliquez avec le bouton droit sur la partition de swap (/ dev / sda9 ici) et cliquez sur l’option Redimensionner / Déplacer. Cela ressemblera à ceci:

  • Faites glisser les flèches du curseur vers la gauche ou la droite, puis cliquez sur le bouton Redimensionner / Déplacer. Votre partition de swap sera redimensionnée.

Cas 2 - l’espace non alloué est entre les partitions

Dans la capture d'écran ci-dessus, l'espace non alloué que nous voulons ajouter à la partition de swap se situait entre dev/sda7 et /dev/sda8 . Pour déplacer l'espace non alloué de celui-ci juste au-dessus de la partition swap, nous devons suivre les étapes simples ci-dessous,

  • Cliquez avec le bouton droit sur la partition / dev / sda8 et cliquez sur l'option Redimensionner / Déplacer .

  • cliquez et déplacez le curseur vers l'extrême gauche pour que l'espace non alloué juste au-dessus de la partition /dev/sda8 vienne en dessous de /dev/sda8 .Après cela, cliquez sur le bouton Redimensionner / Déplacer.

  • Et maintenant, l’espace non alloué se trouvait juste au-dessus de la partition de swap qui ressemblait à Cas 1 .Maintenant, suivez le cas 1.

Cas 3 - si l’espace non alloué était présent en dehors de la partition étendue

J'avais un espace non alloué de 18 Go juste en dessous de la partition étendue . Pour ajouter cet espace à la partition linux-swap (présente dans la partition étendue), nous devons suivre la étapes ci-dessous,

  • Cliquez avec le bouton droit de la souris sur la partition étendue et sélectionnez l’option Redimensionner / Déplacer , qui ressemblera à la capture d'écran ci-dessous

    .

  • Cliquez et faites glisser la flèche à l'extrême droite et cliquez sur Redimensionner / Déplacer pour que le l'espace non alloué de 18 Go viendra au bas de la partition étendue. J'avais un espace non alloué de 14,80 Go déjà présent au bas et maintenant le 18,34 Go se combine avec cela pour créer un espace non alloué de (18,34 + 14,80 Go) en bas de la partition étendue.

  • Maintenant, il y avait un espace non alloué juste en dessous de la partition de swap, il ressemblerait à Cas 1 , puis suivez le cas 1.

REMARQUE: N'oubliez pas de sauvegarder toutes vos données importantes avant de poursuivre les opérations ci-dessus.

    
réponse donnée Avinash Raj 11.12.2013 - 07:11
la source
19

Vous pouvez également utiliser fallocate si vous souhaitez réserver de l'espace pour votre fichier d'échange, sans avoir à remplir le fichier avec 0 à dd .

de la page MAN :

DESCRIPTION
   fallocate  is  used  to preallocate blocks to a file.  For filesystems which support the fallocate system call, this is done quickly by
   allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.  This is much faster than creating a  file  by
   filling it with zeros.

Si vous avez déjà défini swap , vous pouvez le supprimer ou le conserver et votre * nix le gérera (encore mieux en définissant une priorité swapon ). Cela pourrait être utile, au cas où vous souhaiteriez échanger votre disque entre différents périphériques, en fonction de leur vitesse ou d’autres besoins personnalisés, voir Quel est le but de plusieurs fichiers d'échange sur StackExchange ).

Utilisation simple de fallocate pour ajouter un deuxième fichier d'échange

Vérifiez la situation du swap:

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

Créez un fichier d'échange 4G

Méthode standard de création et d’activation d’un fichier d’échange.

$ size="4G" && file_swap=/swapfile_$size.img && sudo touch $file_swap && sudo fallocate -l $size /$file_swap && sudo mkswap /$file_swap && sudo swapon -p 20 /$file_swap

Rendez votre swap permanent

Ajoutez une ligne dans votre fichier /etc/fstab pour que le swap soit initialisé au prochain redémarrage (nous mettons également à jour ici la priorité de l’espace de swap nouvellement créé et nous mettons à jour la priorité de l’ancien fichier de swap

# in your /ets/fstab file
/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

Vérifiez la situation d'échange après le redémarrage:

$ sudo swapon  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/swapfile_4G.img       file     4194300     0       20

Supprimez l’un des espaces de swap (par exemple, l’original de 256 Mo)

Modifier /etc/fstab

Supprimez la ligne liée au swap que vous souhaitez supprimer

Supprimer cet échange

Supprimez et supprimez le fichier d'échange.

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

Ressources:

réponse donnée Jean-Christophe Meillaud 09.10.2014 - 15:24
la source
3

Dans mon cas, je possédais déjà un fichier d'échange que je pensais être de 1 Go, mais quand je le regardais de plus près, il n'était que de 256 Mo et lors de la pré-compilation de mes ressources, le serveur manquait de mémoire

Errno::ENOMEM: Cannot allocate memory - nodejs

J'ai créé mon fichier d'échange comme décrit ici: lien

Maintenant, la ligne qui crée un fichier vide appelé /swapfile est la suivante:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

Maintenant, pour redimensionner le fichier d'échange, j'ai dû effectuer ces étapes simples:

# Reboot the system to be able to switch swapping off
sudo reboot

# Turn swap off
sudo swapoff -a

# Delete the '/swapfile'
rm -f /swapfile

# Recreate the swapfile but with double file size memory
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Turn swap back on
sudo swapon -s

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

Le fichier a été créé (536870912/1024/1024 = 512 Mo):

ls -lia /swapfile 
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile

En utilisant la commande free -m , j'ai pu voir que le fichier est maintenant de 512 Mo comme prévu:

    
réponse donnée Besi 27.04.2016 - 14:03
la source
1

Comment ajouter un fichier d'échange

  1. Fichier creat .img

    sudo dd if = / dev / zero de = / swap.img bs = 1M count = 1000

note !: bs = 1M count = 1000 == & gt; 1 Go

(bs * count = taille en mégaoctets)

autre exemple:

sudo dd if = / dev / zero de = / swap.img bs = 10M count = 100

  1. format fichier .img

    sudo mkswap /swap.img

  2. activer le fichier d'échange

    sudo swapon /swap.img

  3. ajouter un fichier d'échange à fstab

ajoutez cette ligne à votre fstab (/ etc / fstab)

/swap.img   none            swap    sw              0       0
    
réponse donnée Jonas 03.10.2015 - 13:13
la source

Lire d'autres questions sur les étiquettes