Sur un système avec une charge de travail intensive en mémoire avec des charges de pointe courantes, une grande mémoire d'échange peut être utile pour stocker un contenu de mémoire volumineux dont vous n'avez pas besoin pour le moment. Bien que l'utilisation du swap au lieu de la mémoire ait certainement un impact important sur les performances, cela est parfois préférable à l'ajout de plus de mémoire à la machine, car l'espace disque est beaucoup moins cher. Parfois, il n'y a tout simplement plus de mémoire, peut-être une machine physique qui n'a plus d'emplacements libres, et il n'y a pas de modules de mémoire plus grands sur le marché. À d'autres moments, les performances plus lentes lors des pics de charge peuvent être préférables au plantage de l'application avec une erreur de mémoire insuffisante.
Dans certains cas, la mémoire d'échange doit être augmentée, un exemple réel pourrait être l'extension de la mémoire de la machine, et donc également l'extension de l'espace d'échange pour correspondre au double de la nouvelle taille de mémoire.
Dans ce didacticiel, vous apprendrez :
- Comment vérifier l'espace d'échange.
- Comment identifier le volume d'échange.
- Comment augmenter le volume d'échange.
- Comment ajouter un autre volume d'échange.

Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | lvm2-2.03.00-0.4, util-linux-2.32.1-6 |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Comment augmenter la taille de l'échange sur les instructions étape par étape de RHEL 8
Dans la configuration de notre laboratoire, la partition swap se trouve sur un volume logique. Il s'agit de la configuration la plus courante, car LVM est un moyen très flexible de gérer l'espace disque. Le tutoriel LVM couvre l'architecture et l'utilisation du gestionnaire de volume logique, nous n'entrerons donc pas dans les détails lors de l'utilisation de lvextend
pour augmenter la taille du volume de swap. Nous allons augmenter le swap initial de 1 Go à 2 Go.
- Nous devons savoir quel volume est notre partition d'échange :
# grep swap /etc/fstab /dev/mapper/rhel_rhel8lab-swap swap swap defaults 0 0
Comme par défaut, les noms de volume sont générés avec un nom d'hôte court, et lors de la création d'un volume logique, nous pouvons le nommer explicitement, le nom du volume variera.
Dans notre exemple, nous notons le nom du volume avec le chemin, qui est
/dev/mapper/rhel_rhel8lab-swap
ou/dev/rhel_rhel8lab/swap
. Ces deux noms de partition peuvent être déroutants à première vue, mais si nous énumérons les deux, nous pouvons voir qu'il s'agit en fait de liens symboliques pointant vers le même périphérique :# ls -al /dev/rhel_rhel8lab/swap lrwxrwxrwx. 1 root root 7 Nov 25 18:35 /dev/rhel_rhel8lab/swap -> ../dm-1 # ls -al /dev/mapper/rhel_rhel8lab-swap lrwxrwxrwx. 1 root root 7 Nov 25 18:35 /dev/mapper/rhel_rhel8lab-swap -> ../dm-1
Nous les utiliserons indifféremment dans les prochaines étapes.
-
Nous devons désactiver l'échange sur le volume pendant que nous y travaillons. Nous utilisons le nom de volume complet que nous avons trouvé à la première étape.
# swapoff -v /dev/mapper/rhel_rhel8lab-swap swapoff /dev/mapper/rhel_rhel8lab-swap
AVERTISSEMENT
Ne désactivez pas le swap sur un serveur de production lorsqu'il est soumis à une charge importante et qu'il utilise le swap de manière excessive ! Dans un tel scénario, ajoutez une autre partition de swap à la place. - Pour augmenter la taille du swap, nous étendons le volume logique qui le contient. Dans cet exemple avec un gigaoctet de plus :
# lvextend -L +1G /dev/rhel_rhel8lab/swap Size of logical volume rhel_rhel8lab/swap changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents). Logical volume rhel_rhel8lab/swap successfully resized.
Notez que vous devez vous assurer que vous disposez de suffisamment d'espace libre dans le groupe de volumes contenant le volume logique, comme vous le feriez sur toute autre extension de volume contenant des systèmes de fichiers.
- Nous recréons le swap sur le volume étendu :
# mkswap /dev/mapper/rhel_rhel8lab-swap mkswap: /dev/mapper/rhel_rhel8lab-swap: warning: wiping old swap signature. Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=defca15e-a5ed-4fe8-bddd-5f11a3c76e80
- Nous réactivons l'échange sur le volume d'échange étendu :
# swapon -v /dev/mapper/rhel_rhel8lab-swap swapon: /dev/mapper/rhel_rhel8lab-swap: found signature [pagesize=4096, signature=swap] swapon: /dev/mapper/rhel_rhel8lab-swap: pagesize=4096, swapsize=2147483648, devsize=2147483648 swapon /dev/mapper/rhel_rhel8lab-swap
- C'est une bonne pratique de toujours vérifier que la modification du système a réussi. Dans ce cas
free -m
(informations sur la mémoire avec des valeurs en mégaoctets) doivent indiquer que nous avons 2 Go d'espace d'échange :# free -m total used free shared buff/cache available Mem: 1989 1201 225 17 562 617 Swap: 2047 0 2047
Comment ajouter une nouvelle partition d'échange sur RHEL 8 instructions étape par étape
Lorsque la désactivation du swap pour augmenter sa taille n'est pas appropriée, nous pouvons augmenter le swap global en ajoutant un autre volume qui est également une partition de swap. Lorsque nous avons terminé, nous le donnons simplement au système, qui commencera à l'utiliser au besoin.
- Nous créons un nouveau volume logique avec
LVM
comme nous le ferions si nous voulions un nouveau volume qui stocke un système de fichiers :# lvcreate -L 1G -n swap2 rhel_rhel8lab Logical volume "swap2" created.
Sur la même machine de laboratoire, cela se traduira par un nom de chemin complet de la nouvelle partition sous la forme
/dev/mapper/rhel_rhel8lab-swap2
, identique à/dev/rhel_rhel8lab/swap2
. - Créer le swap avec
mkswap
:# mkswap /dev/rhel_rhel8lab/swap2 Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=a319fb8d-18b8-42b7-b6bf-cafb27aaec2b
- Activez l'échange sur le nouveau volume :
# swapon /dev/rhel_rhel8lab/swap2
- Et vérifiez les résultats :
# free -m total used free shared buff/cache available Mem: 1989 1198 153 14 637 623 Swap: 2047 0 2047
- Pour que le système d'exploitation puisse utiliser la nouvelle partition d'échange après le redémarrage, nous devons l'ajouter à
/etc/fstab
:# grep swap /etc/fstab /dev/mapper/rhel_rhel8lab-swap swap swap defaults 0 0 /dev/mapper/rhel_rhel8lab-swap2 swap swap defaults 0 0
La différence entre les deux méthodes peut être soulignée en vérifiant le contenu de
/proc/swaps
, où nous pouvons voir qu'en ajoutant un autre volume au lieu d'étendre celui que nous avons déjà, deux appareils seront utilisés pour l'échange :# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 1048572 0 -2 /dev/dm-2 partition 1048572 0 -3