Ceci est une ancienne révision du document !


~~CLOSETOC~~

Gérer la partition swap

La partition swap sert de fichier d'échange sous Linux. Celle-ci se rempli donc pour soulager la RAM quand elle sature. Cependant, il arrive qu'elle ne se vide pas correctement quand la RAM est de nouveau libre.

Pour vider cette partition sans risquer de perdre des processus et donc des données :

  • On commence par vérifier l'espace disponible en RAM :

free -h

  • Dans cet exemple, on voit que l'espace occupé sur la swap (en rouge) est inférieur à l'espace disponible en RAM (en vert). On peut donc sans problème faire le transfert :

swapoff -a && swapon -a

<note important>Cette procédure ne fonctionne qu'avec des partitions gérées par LVM (Logical Volume Manager).</note> <note warning>Cette procédure nécessite des droits administrateur root. Faîtes donc très attention à ce que vous faîtes.</note>

Si de manière récurrente, la partition swap se remplie, sans que vous puissiez arrêter des processus inutiles, alors votre swap est probablement sous dimensionner. Pour étendre la partition :

  • On vérifie les disques déjà existants :

lsblk
Retour console :
NAME                                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0                                    2:0    1    4K  0 disk
sda                                    8:0    0   20G  0 disk
├─sda1                                 8:1    0  243M  0 part /boot
├─sda2                                 8:2    0    1K  0 part
└─sda5                                 8:5    0 19,8G  0 part
  ├─test--1--vg-root                 254:0    0 17,8G  0 lvm  /
  └─test--1--vg-swap_1               254:1    0    2G  0 lvm  [SWAP]
sr0                                   11:0    1  3,7G  0 rom

  • On ajoute un disque à notre VM (ou un disque physique à notre serveur, auquel cas, il ne faudra pas oublier de redémarrer ce dernier).
  • On scanne les périphériques à la recherche du nouveau disque. Dans la séquence, ci-dessous on remplacera host0 par host1 puis host2, etc, jusqu'à ce que le système indique une erreur :

echo   " - - - "   >   /sys/class/scsi_host/host0/scan

  • On revérifie les disques existant et on note le nom du nouveau disque (sdb dans notre cas) :

lsblk
Retour console :
NAME                                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0                                    2:0    1    4K  0 disk
sda                                    8:0    0   20G  0 disk
├─sda1                                 8:1    0  243M  0 part /boot
├─sda2                                 8:2    0    1K  0 part
└─sda5                                 8:5    0 19,8G  0 part
  ├─test--1--vg-root                 254:0    0 17,8G  0 lvm  /
  └─test--1--vg-swap_1               254:1    0    2G  0 lvm  [SWAP]
sdb                                    8:16   0    8G  0 disk
sr0                                   11:0    1  3,7G  0 rom

  • On récupère le chemin de la partition swap :

lvdisplay

Retour console :

  --- Logical volume ---
  LV Path                /dev/test-1-vg/swap_1
  LV Name                swap_1
  VG Name                test-1-vg
  LV UUID                8IAOTo-LzMy-9Q8s-Nipm-tQLU-UH0H-emgQ9T
  LV Write Access        read/write
  LV Creation host, time test-1, 2018-01-05 14:39:45 +0100
  LV Status              available
  # open                 2
  LV Size                2,00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1

  • On vérifie que la swap peut être vidée (voir plus haut) et, si c'est possible, on la désactive en indiquant le chemin de la partition :

swapoff -v /dev/test-1-vg/swap_1

  • On intègre le nouveau disque à LVM :

pvcreate /dev/sdb

  • Une fois la swap totalement désactivée, on peut étendre le volume en y ajoutant le nouveau disque :

vgextend /dev/test-1-vg /dev/sdb

  • On étend la partition :

lvextend -l +100%FREE /dev/test-1-vg/swap_1

  • On redimensionne la partition :

lvresize -l +100%FREE /dev/test-1-vg/swap_1

  • On recrée la swap :

mkswap /dev/test-1-vg/swap_1

  • Finalement, on peut réactiver la swap :

swapon -va

  • On vérifie :

lvdisplay
Retour console :
  --- Logical volume ---
  LV Path                /dev/onl-infra-intrus-1-vg/swap_1
  LV Name                swap_1
  VG Name                onl-infra-intrus-1-vg
  LV UUID                8IAOTo-LzMy-9Q8s-Nipm-tQLU-UH0H-emgQ9T
  LV Write Access        read/write
  LV Creation host, time onl-infra-intrus-1, 2018-01-05 14:39:45 +0100
  LV Status              available
  # open                 0
  LV Size                <10,00 GiB
  Current LE             2559
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1
Autre vérification :
free -h
Retour console :
              total        used        free      shared  buff/cache   available
Mem:          7,8Gi       6,6Gi       209Mi        80Mi       1,0Gi       858Mi
Swap:           9Gi          0B         9Gi

Nicolas THOREZ 2020/03/12 15:01

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • swapoff.1591347687.txt.gz
  • Dernière modification : 2020/06/05 11:01
  • de 127.0.0.1