Solution 1 :
Signification des valeurs
La première ligne signifie :
total
:Votre RAM totale (physique) (à l'exception d'un petit peu que le noyau se réserve en permanence au démarrage) ; c'est pourquoi il montre ca. 11,7 Gio , et non 12 Gio, ce que vous avez probablement.used
:mémoire utilisée par le système d'exploitation.free
:mémoire non utilisée.
total
=used
+ free
shared
/buffers
/cached
:Cela montre l'utilisation de la mémoire à des fins spécifiques, ces valeurs sont incluses dans la valeur deused
.
La deuxième ligne donne les valeurs de la première ligne ajustées. Il donne la valeur d'origine pour used
moins la somme buffers+cached
et la valeur d'origine pour free
plus la somme buffers+cached
, d'où son titre. Ces nouvelles valeurs sont souvent plus significatives que celles de la première ligne.
La dernière ligne (Swap:
) donne des informations sur l'utilisation de l'espace d'échange (c'est-à-dire le contenu de la mémoire qui a été temporairement déplacé sur le disque).
Contexte
Pour comprendre réellement ce que signifient les chiffres, vous avez besoin d'un peu d'information sur le sous-système de mémoire virtuelle (VM) sous Linux. Juste une version courte :Linux (comme la plupart des systèmes d'exploitation modernes) essaiera toujours d'utiliser de la RAM libre pour la mise en cache, donc Mem: free
sera presque toujours très faible. Donc la ligne -/+ buffers/cache:
est affiché, car il indique la quantité de mémoire libre lorsque les caches sont ignorés ; les caches seront libérés automatiquement si la mémoire devient rare, donc ils n'ont pas vraiment d'importance.
Un système Linux manque vraiment de mémoire si le free
valeur en -/+ buffers/cache:
la ligne devient basse.
Pour plus de détails sur la signification des chiffres, voir par ex. les questions :
- Sous Linux, quelle est la différence entre les "tampons" et le "cache" signalés par la commande free ?
- Pourquoi Red Hat Linux signale-t-il moins de mémoire libre sur le système que ce qui est réellement disponible ?
Modifications dans la procédure 3.3.10
Notez que la sortie de free
a été modifié dans procps 3.3.10 (publié en 2014). Les colonnes rapportées sont désormais "total", "used", "free", "shared", "buff/cache", "available" , et la signification de certaines des valeurs a changé, principalement pour mieux tenir compte du cache de dalle du noyau Linux.
Voir le rapport de bogue Debian n° 565518 pour la motivation, et quels sont les changements dans free
sortie de 14.04 à 16.04 signifie? pour plus d'informations.
Solution 2 :
La réponse actuellement acceptée de 2009 est obsolète. Il est important de s'assurer que les informations que vous obtenez sont correctes et correspondent à la version de free
(distribué dans le paquet Debian procps
ou équivalent dans votre distribution). Il est également utile de regarder la sortie de man free
, et aussi man 5 proc
, qui contient des informations sur /proc/meminfo
, le fichier où free
obtient ses données sur Linux.
Par défaut, free
La sortie de est en kibioctets (1 kibioctet =1024 octets), comme vous pouvez le voir dans la page de manuel. Je préfère utiliser le -h
argument, qui affiche les suffixes, comme ceci :
$ free -h
total used free shared buff/cache available
Mem: 15Gi 6.1Gi 1.9Gi 301Mi 7.5Gi 8.8Gi
Swap: 979Mi 0B 979Mi
La première ligne Mem
signifie :
total
(Mem) :mémoire installée totale (c'est-à-direMemTotal
de/proc/meminfo
), c'est toute la mémoire en RAMused
(Mem) :mémoire utilisée, égale àtotal - free - buffers - cache
free
(Mem) :mémoire inutilisée (c'est-à-direMemFree
), c'est toute la mémoire inutilisée pour quoi que ce soit (même les caches) dans la RAMshared
(Mem) :il s'agit de la quantité de mémoire utilisée principalement pourtmpfs
(Shmem
)buff/cache
(Mem), somme debuffers
etcache
:buffers
:mémoire utilisée par les tampons du noyau (Buffers
), qui est la mémoire dont le noyau peut profitercache
:mémoire utilisée par le cache de pages et les slabs (Cached
etSReclaimable
). Le cache de page contient le contenu des fichiers du système de fichiers mis en cache dans la RAM, et c'est généralement une bonne chose que ce soit un nombre élevé. Je suppose que les "slabs" sont une fonctionnalité de mise en cache similaire.
available
(Mem) :il s'agit d'une estimation de la quantité de mémoire disponible pour démarrer de nouvelles applications, sans échange. Il inclut la majeure partie de la mémoire comptée dans lecache
(puisque le cache de pages peut être supprimé pour démarrer de nouvelles applications), mais il ne compte pas le swap (puisqu'il est généralement préférable de ne pas utiliser d'espace de swap lent).
La deuxième ligne est Swap
. Voici mon explication :
total
(Swap) :il s'agit de la quantité totale d'espace disque réservée au swap (SwapTotal
enproc/meminfo
). Vous pouvez vérifier en vérifiant que cela correspond à la sortie deswapon -s
.used
(Swap) :la quantité d'espace disque de swap actuellement utilisée. Encore une fois, vous pouvez vérifier cela en le comparant avec la sortie deswapon -s
free
(Swap) :la quantité d'espace disque de swap qui n'est actuellement pas utilisée (SwapFree
en/proc/meminfo
). Il est égal àtotal (Swap) - used (Swap)