Par défaut, j'ai 250 Mo d'espace d'échange dans Ubuntu et je souhaite l'étendre à une taille plus grande. J'ai besoin de 800 Mo, ce qui me suffira, selon moi, pour ouvrir plusieurs applications sans avoir à respecter la limite actuelle d'échange. J'espère que quelqu'un pourra m'aider.
d'ajouter plus d'espace d'échange. Ce n'est pas la même chose (dans tous les aspects) que la partition swap, mais ce sera facile et dynamique.
Remplacez /media/fasthdd/swapfile.img
par tout ce que vous voulez, par exemple, il peut aussi s'agir de /swap.img
. /media/fasthdd/swapfile.img
est juste un exemple de nom de fichier. Si vous utilisez celui-ci, il doit bien sûr y avoir un répertoire /media/fasthdd/
avec suffisamment d'espace libre pour votre nouveau fichier d'échange.
Utilisez l'une des applications de terminal pour exécuter des commandes. Toutes les commandes doivent être exécutées avec les privilèges rootPour 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, créez donc un fichier assez grand pour vos besoins. Celui-ci créera un fichier de 1 Go, ce qui signifie + 1 Go d'espace d'échange pour votre système:
dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M
Si vous souhaitez créer un fichier 3Gb, modifiez la valeur de décompte en count=3M
. Voir man dd
pour plus d'informations.
2. Fichier d'échange de cuisson:
La commande suivante crée un "système de fichiers d'échange" dans votre nouveau fichier d'échange.
mkswap /media/fasthdd/swapfile.img
3. Montez 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, ceci est recommandé car les autres systèmes de fichiers (au moins un qui contient le fichier d'échange) doit être monté en mode lecture-écriture avant de pouvoir accéder aux fichiers.
# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0
4. Activer:
Vous pouvez soit redémarrer votre ordinateur, soit activer manuellement un nouveau fichier d'échange à l'aide de la commande suivante:
swapon /media/fasthdd/swapfile.img
vous devriez voir que plus d'espace d'échange est disponible pour utilisation. Vous pouvez utiliser les commandes suivantes pour vérifier votre nouveau swap 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
Une autre façon d’augmenter la taille de l’échange consiste à utiliser = É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 si un espace non alloué est présent avant ou après la partition de swap. S'il n'y a pas d'espace non alloué (l'espace que nous essayons d'ajouter avec une partition de swap) en dessous ou au-dessus de la partition de swap, nous devons redimensionner les partitions et obtenir cet espace non alloué.
Dans la capture d'écran ci-dessus, j'avais 11,4 Go d'espace non alloué avant linux-swap et 12,8 Go après la partition d'échange.
Pour redimensionner, cliquez avec le bouton droit sur la partition de swap (/ dev/sda9 ici) et cliquez sur l'option Redimensionner/déplacer. Il ressemblera à ceci:
Faites glisser les flèches du curseur vers la gauche ou vers la droite, puis cliquez sur le bouton Redimensionner/Déplacer. Votre partition de swap sera redimensionnée.
Dans la capture d'écran ci-dessus, l'espace non alloué que nous voulons ajouter à la partition de swap était compris entre dev/sda7
et /dev/sda8
.Pour déplacer l'espace non alloué de cet espace à celui situé juste au-dessus de la partition de swap, nous devons suivre les étapes simples indiquées ci-dessous,
Cliquez avec le bouton droit de la souris sur la partition/dev/sda8 et sélectionnez l’option Redimensionner/déplacer .
cliquez et déplacez le curseur à l'extrême gauche, de sorte que l'espace non alloué situé juste au-dessus de la partition /dev/sda8
vienne sous /dev/sda8
. Ensuite, 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. Suivez maintenant le cas 1.
J'avais un espace non alloué de 18 Go juste en dessous de la partition étendue. Pour ajouter cet espace à la partition linux-swap (qui était présente dans la partition étendue), nous devons suivre les étapes ci-dessous,
Faites un clic droit sur la partition étendue et sélectionnez l'option Redimensionner/Déplacer , ce sera comme pour la capture d'écran ci-dessous
Cliquez et faites glisser la flèche à l'extrême droite, puis cliquez sur Redimensionner/Déplacer , de sorte que l'espace non alloué de 18 Go apparaisse au bas de la partition étendue. J'avais déjà 14,8 Go d'espace non alloué au bas et maintenant, les 18,34 Go se combinent pour créer un espace non alloué de (18,34 + 14,80 Go) au bas de la partition étendue.
Maintenant, il y avait un espace non alloué juste en dessous de la partition de swap, ce sera comme Cas 1, puis suivez le cas 1.
NOTE: N'oubliez pas de sauvegarder toutes vos données importantes avant de procéder aux opérations ci-dessus.
Vous pouvez également utiliser fallocate
si vous souhaitez réserver de l'espace pour votre fichier d'échange, sans qu'il soit nécessaire de remplir le fichier de 0 à dd
name__.
depuis la page MAN
name__:
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 un swap
name__, vous pouvez le supprimer ou le conserver et votre * nix le gérera (encore mieux en définissant une priorité swapon
name__). Cela pourrait être utile si vous souhaitez répartir votre échange entre différents périphériques, lecteur (en fonction de leur vitesse ou d'autres besoins personnalisés, voir Quel est le but de plusieurs fichiers d'échange sur StackExchange ).
fallocate
pour l'ajout d'un deuxième fichier d'échange$ Sudo swapon -s
Filename Type Size Used Priority
/swapfile file 262140 246276 -1
Manière standard de créer et d'activer 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
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é du nouvel espace de swap créé et nous actualisons la priorité de l'ancien fichier d'échange
# in your /ets/fstab file
/swapfile none swap sw,pri=10 0 0
/swapfile_4G.img none swap sw,pri=20 0 0
$ Sudo swapon -s
Filename Type Size Used Priority
/swapfile file 262140 0 10
/swapfile_4G.img file 4194300 0 20
/etc/fstab
Supprimer la ligne associée à l'échange que vous souhaitez supprimer
Supprimer et supprimer le fichier d'échange.
Sudo swapoff /mnt/swapfile && Sudo rm /mnt/swapfile
Dans mon cas, j’avais déjà un fichier swap de 1 Go, mais quand j’y ai regardé de plus près, il ne faisait que 256 Mo et lors de la pré-compilation de mes Rails, le serveur manquait de mémoire.
Errno::ENOMEM: Cannot allocate memory - nodejs
J'ai créé mon fichier d'échange comme décrit ici: https://stackoverflow.com/a/34885004/784318
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, je devais suivre 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
, je pouvais voir que le fichier faisait maintenant 512 Mo, comme prévu:
comment ajouter un fichier d'échange
fichier creat .img
Sudo dd if =/dev/zero of =/swap.img bs = 1M nombre = 1000
note !: bs = 1M count = 1000 ==> 1GB
(bs * count = taille en mégaoctets)
autre exemple:
Sudo dd if =/dev/zero of =/swap.img bs = 10M count = 100
formater le fichier .img
Sudo mkswap /swap.img
activer le fichier d'échange
Sudo swapon /swap.img
ajouter un fichier d'échange à fstab
ajoutez cette ligne à votre fstab (/ etc/fstab)
/swap.img none swap sw 0 0