GNU/Linux >> Tutoriels Linux >  >> Linux

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

free tire ses données de /proc/meminfo

slkwr133701:/usr/src/linux # free

             total       used       free     shared    buffers     cached
Mem:       2053456     434572    1618884          0      77888     201820

slkwr133701:/usr/src/linux # cat /proc/meminfo

MemTotal:        2053456 kB
MemFree:         1618736 kB
Buffers:           77928 kB
....

Il s'agit de la mémoire utilisée pour le stockage temporaire des blocs d'E/S. Le noyau doit constamment affecter et libérer les mêmes unités de taille, comme les blocs de transfert d'E/S, les paquets réseau et les tampons de socket

Vous pouvez obtenir un meilleur aperçu des caches et des allocations de tampon en exécutant slabtop

En réponse à votre question d'utilisation :le système allouera généralement plus de blocs qu'il n'en a besoin, mais à mesure que la « pression de la mémoire » augmente, ces blocs supplémentaires seront libérés.


Les "tampons" sont récupérables sous la pression de la mémoire. Il est donc similaire au cache de page (colonne "cache"); pas une grande cause d'inquiétude. La valeur "buffers" peut être petite ou grande, cela dépend de ce que fait votre système :-). Nous pouvons trouver plusieurs types de cache recensés ici.

Le cache de tampon est littéralement le cache de page pour le périphérique de bloc. Linux les signale simplement séparément.[*] Vous pouvez remarquer l'utilisation de "tampons" pendant que les programmes lisent/écrivent le nœud du périphérique de bloc, par ex. dd status=progress if=/dev/sda of=/dev/null . Apparemment, les gens le remarquent également lors de l'exécution d'un programme de lecteur de DVD.

Pour preuve, voir :30 % de la RAM sont des "tampons". Qu'est-ce que c'est ?

Si vous n'avez pas accédé au nœud du périphérique de bloc, vos "tampons" sont probablement tous des métadonnées du système de fichiers . Les systèmes de fichiers utilisent le cache de tampon en interne pour plus de commodité. Ils s'assurent qu'il ne duplique jamais le fichier data - contenu du fichier - qui est stocké dans le cache de la page principale. La raison exacte pour laquelle le système de fichiers utilise le cache de tampon - le cas échéant - varie en fonction du système de fichiers.

Sur une machine avec une petite quantité de RAM physique, j'ai remarqué que les "tampons" peuvent sembler élevés, lorsque j'ai des systèmes de fichiers ext3/ext4. En effet, les écritures dans le journal passent par le cache tampon. (Voir lien ci-dessus). Les systèmes de fichiers ext3/4 stockent également le contenu des répertoires dans le cache du tampon.

Deuxièmement, les "tampons" indiqués par le free La commande inclut également SReclaimable, c'est-à-dire des dalles récupérables. (Démontré ici :La bonne façon de surveiller la mémoire Linux, encore une fois).

La mémoire de dalle n'est pas une partie du cache de page/tampon. Cependant, il est commode de les compter ensemble. Ils sont tous deux récupérables, et la principale (unique ?) utilisation des dalles récupérables est pour la mise en cache du système de fichiers. Par exemple, les métadonnées de fichier (inodes) et les recherches de chemin (dentry) sont mises en cache dans des dalles récupérables. "La mémoire de dalle récupérable [peut] occuper une grande partie de la mémoire système sur des systèmes principalement inactifs avec beaucoup de fichiers."

Vous pouvez voir le Buffers brut et SReclaimable valeurs en cat /proc/meminfo . Vous pouvez également exécuter slabtop pour voir la liste des dalles. AFAICT, slabtop ne donne pas de statistiques sur les dalles comme récupérables ou non. Mais vous pouvez généralement deviner, et s'il y a une dalle suspecte, je suppose que vous pouvez la rechercher par son nom.

[*] Aux fins de cette réponse, "cache tampon" est le cache compté par Buffers en /proc/meminfo . Cependant, d'autres sources peuvent faire référence à l'ensemble du cache de page en tant que cache de tampon unifié. Si vous voulez l'explication historique, voir le premier lien.

De plus, les développeurs Linux ont peut-être utilisé le "cache tampon" pour signifier différentes choses, lorsqu'ils se disputaient sur les implémentations du système de fichiers.


Linux
  1. Qu'est-il arrivé à l'espace libre ?

  2. Quel est le deuxième état dans la sortie ip link show

  3. 30% de la RAM sont des tampons. Qu'est-ce que c'est?

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

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

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

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

Que signifie la sortie de Ps ?

Enregistrer la sortie d'une commande du terminal Debian dans un fichier

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

Quel est le moyen le plus simple de libérer de l'espace sur un disque dur ?