J'ai, par défaut, 250 Mo d'espace swap dans Ubuntu, et je veux l'étendre à une taille plus grande. J'ai besoin de 800 Mo, ce qui, je pense, sera suffisant pour ouvrir plusieurs applications sans avoir à atteindre la limite actuelle de l'espace d'échange. J'espère que quelqu'un pourra m'aider.
Réponses
Trop de publicités?Vous pouvez toujours créer un fichier d'échange pour ajouter plus d'espace d'échange. Ce n'est pas la même chose en tout point que la partition swap, mais ce sera facile et dynamique.
Dans les étapes suivantes, modifiez /media/fasthdd/swapfile.img
à ce que vous voulez. Par exemple, il peut s'agir de /swap.img
également. /media/fasthdd/swapfile.img
est juste un exemple de nom de fichier. Si vous utilisez celui-ci, alors bien sûr il doit y avoir un répertoire /media/fasthdd/
avec assez d'espace libre pour votre nouveau fichier d'échange.
Utilisez une application de terminal pour exécuter les commandes des étapes suivantes. Toutes les commandes doivent être exécutées avec les privilèges de root . Pour ce faire, vous pouvez soit ajouter sudo
au début de chaque commande ou exécution sudo bash
avant d'exécuter les commandes.
-
Créer un fichier vide :
Ce fichier contiendra le contenu de la mémoire virtuelle, donc faites en sorte que le fichier soit assez grand pour vos besoins. Celui-ci créera un fichier de 1GiB, ce qui signifie +1GiB d'espace de swap pour votre système :
dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M
Si vous voulez faire un fichier de 3GiB, alors changez la valeur du compte en
count=3M
. Voirman dd
pour plus d'informations. -
Réparez le fichier d'échange :
La commande suivante va créer un "système de fichiers swap" à l'intérieur de votre nouveau fichier swap.
mkswap /media/fasthdd/swapfile.img
-
Apportez sur le 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 un fichier d'échange ) doit être monté en mode lecture-écriture avant que nous puissions accéder aux fichiers.# Add this line to /etc/fstab /media/fasthdd/swapfile.img swap swap sw 0 0
-
Activez :
Vous pouvez soit redémarrer votre ordinateur, soit activer manuellement le nouveau fichier d'échange à l'aide de la commande suivante :
swapon /media/fasthdd/swapfile.img
Si tout se passe bien vous devriez voir qu'il y a plus d'espace d'échange disponible pour l'utilisation. Vous pouvez utiliser les commandes suivantes pour vérifier votre nouvel espace d'é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
Redimensionner le Swap à 8GB
# Turn swap off
# This moves stuff in swap to the main memory and might take several minutes
sudo swapoff -a
# Create an empty swapfile
# Note that "1G" is basically just the unit and count is an integer.
# Together, they define the size. In this case 8GB.
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
# Set the correct permissions
sudo chmod 0600 /swapfile
sudo mkswap /swapfile # Set up a Linux swap area
sudo swapon /swapfile # Turn the swap on
Vérifiez si cela a fonctionné
grep Swap /proc/meminfo
Rendez-le permanent (persistant lors des redémarrages)
Ajoutez cette ligne à la fin de votre /etc/fstab
:
/swapfile swap swap sw 0 0
Méthode GUI pour augmenter la taille de la partition swap
Une autre façon d'augmenter la taille de l'échange est d'utiliser la fonction Éditeur de partition GParted . En bref, vous redimensionnez la partition d'échange, puis vous faites un clic droit dessus et choisissez "Swapon".
Il est plus facile de démarrer gparted-live-disk ou un disque live Ubuntu (de sorte que les toutes les /dev/sda
les partitions seront démontées). Si vous utilisez Ubuntu live disk dans certaines versions antérieures à 18.04, vous devrez peut-être installer gparted en exécutant les commandes ci-dessous :
sudo apt-get update
sudo apt-get install gparted && sudo gparted
Vous devez être en mesure d'augmenter la taille de la partition swap uniquement s'il y a un espace non alloué présent avant ou après la partition swap. S'il n'y avait pas d'espace non alloué (l'espace que nous essayons d'ajouter avec la partition swap) en dessous ou au-dessus de la partition swap, alors nous devons redimensionner les partitions et obtenir cet espace non alloué.
Cas 1 - espace non alloué présent avant ou après la partition swap
Dans la capture d'écran ci-dessus, j'avais 11,4 Go d'espace non alloué avant la partition linux-swap et 12,8 Go après la partition swap.
-
Pour redimensionner, faites un clic droit sur la partition 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 d'échange sera redimensionnée.
Cas 2 - l'espace non alloué se trouve entre les partitions
Dans la capture d'écran ci-dessus, l'espace non alloué que nous voulons ajouter à la partition swap était entre dev/sda7
y /dev/sda8
Pour déplacer l'espace non alloué de cette partition à la partition swap juste au-dessus, nous devons suivre les étapes simples données ci-dessous,
-
Cliquez avec le bouton droit de la souris sur la partition /dev/sda8 et cliquez sur Redimensionner/Déplacer option.
-
cliquez et déplacez le curseur vers l'extrême gauche, de manière à ce que l'espace non alloué qui se trouvait juste au-dessus de l'icône de l'espace de travail.
/dev/sda8
La partition de la partition est ci-dessous/dev/sda8
Après cela, cliquez sur le bouton Redimensionner/Déplacer. -
Et maintenant l'espace non alloué était juste au dessus de la partition swap qui était comme 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 l'emplacement de l'appareil. 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,
-
Cliquez avec le bouton droit de la souris sur la partition étendue et sélectionnez Redimensionner/Déplacer l'option, il sera comme la capture d'écran ci-dessous
-
Cliquez et faites glisser la flèche vers l'extrême droite et cliquez sur Redimensionner/Déplacer ,de sorte que le J'avais 14,80 Go d'espace non alloué déjà présent en bas et maintenant les 18,34 Go se combinent avec cela pour créer un espace non alloué de (18,34+14,80 Go) en bas de la partition étendue.
-
Maintenant il y a un espace non alloué juste en dessous de la partition swap, ce sera comme ça Cas 1 ,alors suivez le cas 1.
NOTE : N'oubliez pas de faire une sauvegarde de toutes vos données importantes avant de procéder aux opérations ci-dessus.
Vous pouvez également utiliser fallocate
si vous voulez réserver de l'espace pour votre fichier d'échange, sans avoir besoin de remplir le fichier avec 0 à travers dd
.
De la man
page :
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à un swap
défini, vous pouvez soit le supprimer, soit le garder, et votre *nix le gérera (encore mieux avec en définissant un swapon
priorité). Cela peut être utile, dans le cas où vous souhaitez répartir votre échange entre différents périphériques, lecteurs (en fonction de leur vitesse ou d'autres besoins personnalisés, cf. Quel est le but de plusieurs fichiers d'échange ? sur StackExchange ).
Simple fallocate
utilisation pour l'ajout d'un deuxième fichier swap
Vérifiez la situation de l'échange :
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 262140 246276 -1
Créer 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
Un seul mot :
$ 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 échange permanent
Ajoutez une ligne dans votre /etc/fstab
afin que l'espace d'échange soit initialisé lors du prochain redémarrage (nous mettons également à jour ici la priorité de l'espace d'échange nouvellement créé et nous mettons à jour la priorité de l'ancien fichier d'échange).
Dans votre fichier /etc/fstab, remarquez que la priorité du swap prev est maintenant de 10.
/swapfile none swap sw,pri=10 0 0
/swapfile_4G.img none swap sw,pri=20 0 0
Vérifiez la situation de l'é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 d'échange (par exemple les 256 Mo d'origine).
Editar /etc/fstab
Supprimez la ligne liée au swap que vous voulez supprimer.
Supprimer ce swap
Effacer et supprimer le fichier d'échange.
sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile
Ressources :
Dans mon cas, j'avais déjà un fichier d'échange que je pensais être de 1 Go, mais en y regardant de plus près, il n'avait que 256 Mo et, lors de la précompilation de mes ressources 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 le suivant :
sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
Maintenant, pour redimensionner le fichier d'échange, j'ai dû faire ces simples étapes :
# 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
Utilisation de free -m
commande, j'ai pu constater que le fichier fait maintenant 512 Mo comme prévu :
- Réponses précédentes
- Plus de réponses