GNU/Linux >> Tutoriels Linux >  >> Linux

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

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 de used .

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-à-dire MemTotal de /proc/meminfo ), c'est toute la mémoire en RAM
  • used (Mem) :mémoire utilisée, égale à total - free - buffers - cache
  • free (Mem) :mémoire inutilisée (c'est-à-dire MemFree ), c'est toute la mémoire inutilisée pour quoi que ce soit (même les caches) dans la RAM
  • shared (Mem) :il s'agit de la quantité de mémoire utilisée principalement pour tmpfs (Shmem )
  • buff/cache (Mem), somme de buffers et cache :
    • buffers :mémoire utilisée par les tampons du noyau (Buffers ), qui est la mémoire dont le noyau peut profiter
    • cache :mémoire utilisée par le cache de pages et les slabs (Cached et SReclaimable ). 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 le cache (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 en proc/meminfo ). Vous pouvez vérifier en vérifiant que cela correspond à la sortie de swapon -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 de swapon -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)

Linux
  1. Linux - Comment vider les tampons et le cache sur un système Linux ?

  2. Comment savoir sur quelle version d'Os X je suis depuis la ligne de commande ?

  3. Linux - La colonne des tampons dans la sortie de Free ?

  4. Linux gratuit montre une utilisation élevée de la mémoire, mais pas top

  5. signification de la sortie ps aux

Utilisation de la commande gratuite Linux

Quelle est la différence entre la mémoire tampon et la mémoire cache sous Linux ?

Omettre la première ligne de toute sortie de commande Linux

Alignement sur la ligne de cache et connaissance de la taille de la ligne de cache

Quelle est la colonne des tampons dans la sortie de free ?

Sous Linux, quelle est la différence entre les tampons et le cache signalés par la commande free ?