web-dev-qa-db-fra.com

Signification de la ligne tampons / cache dans la sortie de free

Pourquoi mon serveur s'affiche

            total      used      free   shared buffers    cached
    Mem: 12286456  11715372    571084        0   81912   6545228
-/+ buffers/cache:  5088232   7198224
   Swap: 24571408     54528  24516880

Je n'ai aucune idée sur le calcul de la mémoire sous Linux. Je pense qu'il dit que 5088232 est utilisé là où 7198224 est gratuit, ce qui signifie qu'il consomme en fait 5 Go de RAM?

172
Muahmmad Zeeshan

Signification des valeurs

La première ligne signifie:

  • total: Votre total (physique) RAM (à l'exception d'un petit peu que le noyau se réserve en permanence au démarrage); c'est pourquoi il affiche environ 11,7 GiB, et non 12 Gio, 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 de used.

La deuxième ligne donne les valeurs de première ligne ajustées. Il donne la valeur d'origine pour used moins la somme buffers+cached et la valeur d'origine de free plus la somme buffers+cached, d'où son titre. Ces nouvelles valeurs sont souvent plus significatives que celles de 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 réellement comprendre ce que signifient les chiffres, vous avez besoin de quelques informations sur le sous-système de mémoire virtuelle (VM) sous Linux. Juste une version courte: Linux (comme la plupart des OS modernes) essaiera toujours d'utiliser gratuitement RAM pour la mise en cache des trucs, donc Mem: free sera presque toujours très faible. Par conséquent, la ligne -/+ buffers/cache: s'affiche, car il indique la quantité de mémoire disponible lors de l'ignorance des caches; les caches seront libérés automatiquement si la mémoire se fait rare, donc ils n'ont pas vraiment d'importance.

Un système Linux manque vraiment de mémoire si la valeur free dans -/+ buffers/cache: la ligne devient basse.

Pour plus de détails sur la signification des nombres, voir par ex. questions:

Changements dans procps 3.3.10

Notez que la sortie de free a été modifiée dans procps 3.3.10 (publié en 2014). Les colonnes signalées sont désormais "total", "utilisé", "gratuit", "partagé", "buff/cache", "disponible" , et la signification de certaines valeurs a changé, principalement pour mieux tenir compte du cache de dalle du noyau Linux.

Voir Rapport de bogue Debian # 565518 pour la motivation, et Que signifient les changements dans la sortie free de 14.04 à 16.04? pour plus d'informations.

233
sleske

Pour tous ceux qui ont besoin d'une explication étape par étape encore plus simple, consultez http://oughttsbyclayg.blogspot.com/2008/09/display-free-memory-on-linux-ubuntu.html , son explication m'a beaucoup aidé.

7
volni

La ligne tampons/cache vous indique la quantité de mémoire utilisée par les programmes (première de ces colonnes) et est libre pour les programmes à utiliser (deuxième colonne). C'est un nombre assez ésotérique, et ce n'est pas quelque chose que vous examineriez vraiment dans la pratique.

2
womble