web-dev-qa-db-fra.com

swapfile met longtemps à "se débarrasser"

J'ai un fichier d'échange /swapfile d'une taille de 1 Go, conformément à la procédure décrite dans la FAQ d'échange ubunt .

Lors de l'exécution d'une tâche intensive RAM, j'utilise le "Moniteur système" pour vérifier la charge de ma mémoire et de mon échange. Lorsque la tâche est terminée, la charge de mémoire diminue rapidement ... cependant, la charge de permutation reste élevée très longtemps et ne se répend que très lentement (voir image).

system monitor gui

Lorsque j'appelle Sudo swapoff -a && swapon -a, je peux effacer le swap manuellement ... mais je préfère savoir:

  1. Pourquoi le swap met-il tant de temps à être effacé?
  2. Est-ce que cela a un impact sur la performance?
4
S.A.

Réponse courte: si votre ordinateur n'agit pas très lentement, c'est bon.

Linux n'obtiendra le contenu du swap que si cela est nécessaire, sinon, il est inutile de charger quelque chose qui n'est pas utilisé de swap dans la RAM, réduisant ainsi le cache.

Un moyen de vérifier si votre système est limité par swap est de vérifier

vmstat 1

et en regardant la colonne wa, qui indique le temps nécessaire à l’exécution d’un processus. Utilisez également un outil tel que htop pour voir le nombre de processus en veille de disque (D).

En outre, vous devriez avoir un peu plus d'échange. Selon le SwapFAQ :

    RAM(MB) No hibernation  With Hibernation  Maximum
     256     256              512               512
     512     512             1024              1024
    1024    1024             2048              2048

    RAM(GB) No hibernation  With Hibernation  Maximum
      1      1                2                   2
      2      1                3                   4
      3      2                5                   6
      4      2                6                   8
      5      2                7                  10
      6      2                8                  12
      8      3               11                  16
     12      3               15                  24
     16      4               20                  32
     24      5               29                  48
     32      6               38                  64
     64      8               72                 128
    128     11              139                 256

Si vous avez 16 Go de RAM, vous devriez avoir entre 4 Go et 32 ​​Go.

3
NerdOfLinux