free et vmstat : connaître la consommation mémoire du système

free

La commande free permet de savoir l’état d’utilisation de la mémoire sur un système :

Ci-dessous un exemple : free -tm, qui affiche les valeurs en Mégaoctet ( -m ) , et la totalité des mémoires disponibles ( -t ).

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

[memotsix@godzilla log]$ free -tm
             total       used       free     shared    buffers     cached
Mem:          2010       1980         30          0         67       1434
-/+ buffers/cache:        478       1532
Swap:         1055          0       1055
Total:        3066       1980       1085

[/pastacode]

 Mem :

  • total : la mémoire totale qui existe physiquement sur  la machine, la mémoire physique, les barrettes de RAM.
  • used : la quantité de RAM utilisée , elle est repartie entre la quantité buffers , cached et la quantité réellement utilisé (champ “used” dans la ligne -/+ buffers/cache ) par les applications. Autrement c’est la somme de  buffers + cached + used (dans -/+ buffers/cache).
  • free :  la quantité de RAM qui reste, c’est -à-dire la mémoire qui n’est pas utilisée.
  • shared : mémoire partagée entre les applications ( toujours à zéro ).
  • buffers : mémoire utilisée temporairement  par le système pour stocker des données dans le but d’améliorer la performance des I/O sur les disques. Donc ils peuvent être libéré et  disponible rapidement.
  • cached : mémoire réservée par le système pour stocker les données utilisée fréquemment afin d’accroître la vitesse d’accès sur ces derniers. Donc ils peuvent être libéré et disponible aussi rapidement. En gros le système consomme un maximum de mémoire pour optimiser au mieux ses performances via l’utilisation de caches, et il n’y a donc que très peu de mémoire inutilisée (colonne free). Mais la mémoire utilisée par les caches (colonnes buffers et cached) peut être libérée à tout moment.

-/+ buffers/cache :

  • used : la mémoire réellement consommée par la machine
  • free : la mémoire réellement disponible sur la machine (donc ici la machine n’est pas saturée, elle a encore beaucoup de la mémoire)

Swap : la quantité totale, utilisé et disponible  de la mémoire swap

Total : l’ensemble de la mémoire RAM + Swap.

vmstat

La commande vmstat   permet de suivre en temps réel l’utilisation de la mémoire :

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

[memotsix@godzilla ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1443092  84028 268600    0    0     1     1   23   31  0  0 100  0  0
 0  0      0 1443084  84028 268600    0    0     0     0   28   38  0  0 100  0  0
 0  0      0 1443084  84028 268600    0    0     0     0   30   40  0  0 100  0  0
 0  0      0 1443084  84028 268600    0    0     0     0   27   35  0  0 100  0  0
 0  0      0 1443084  84028 268600    0    0     0     0   29   33  0  1 99  0  0
 0  0      0 1443084  84028 268600    0    0     0     0   26   33  0  0 100  0  0

[/pastacode]

Dans l’exemple ci-dessus, une nouvelle ligne de rapport est affichée par vmstat toutes les secondes : vmstat 1

  • free, buff, cache  ( équivalent à ceux retournée par la commande free ) : sont très importantes car ce sont elles qui nous renseignent sur la mémoire physique encore disponible (en kilo-octets). La colonne free  indique la quantité de mémoire inutilisée, les colonnes buff et cache  indiquent les quantités utilisées par les buffers et le cache. Comme les buffers et le cache sont libérables à tout moment, la mémoire réellement disponible correspond à la somme de ces trois indicateurs ( équivalent à l’information qui se trouve dans la colonne “free” sur la ligne “-/+ buffers/cache ” retourné par  la commande free)
  • swpd : montre la quantité de swap utilisée.
  • si, so : nous fournissent de très précieux renseignements quant à la santé du système. Nous savons  qu’en cas de pénurie de mémoire physique, le noyau pioche dans le swap.  Quand le noyau souhaite utiliser une information en swap, il doit d’abord la transférer en RAM,  signalée par la colonne si  (swap in memory). Puis une fois dans la RAM, il la transfert  vers le swap, signalée par la colonne so  (swap out of memory). La présence de ces transferts est un indicateur fort de la pénurie de mémoire physique. Un système qui utilise son swap passe son temps à faire de couteux allers et retours entre le disque et la RAM.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *