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 (colonnesbuffersetcached) 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 freeindique la quantité de mémoire inutilisée, les colonnes buff et cacheindiquent 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.