Dans la sortie de top, il y a deux champs, marqués "buff / cache" et "avail Mem" dans la mémoire et permutez les lignes d'utilisation:
Que signifient ces deux domaines?
J'ai essayé de les rechercher sur Google, mais les résultats ne font apparaître que des articles génériques en haut, et ils n'expliquent pas ce que ces champs signifient.
Juste pour clarifier un peu, les tampons se réfèrent aux données en cours d' écriture - cette mémoire ne peut pas être récupérée avant la fin de l'écriture.
Le cache fait référence aux données qui ont été lues - elles sont conservées au cas où elles devraient être relues, mais peuvent être immédiatement récupérées car elles peuvent toujours être relues à partir du disque.
la source
/proc/meminfo
a un champ pourWriteback
spécifiquement. Il y a un champ séparéBuffers
, et c'est ce qui est montré commebuffers
dansfree -w
. Une raison courante pour l'Buffers
utilisation de la mémoire est montrée ici: " 30% de la RAM sont des" tampons ". Qu'est-ce que c'est? "Buffers
fait (maintenant) partie du cache des pages; il n'est pas comptéCached
, mais il est compté comme faisant partie deActive(file) + Inactive(file)
. Voir les commentaires sur la réponse de Stephen Kitt.Dirty
est la partie du cache de pages qui a été écrite, et qui doit donc éventuellement être réécrite sur le disque.Writeback
ne comprend pasDirty
. Par conséquent,Writeback
ne fait pas partie de la valeur deBuffers
.Buffers
qui signifie en réalité, c'est le cache de pages associé au périphérique de blocage. Certains systèmes de fichiers l'utilisent en interne; d'autres ne l'utilisent pas du tout. / va corriger ma réponse à la question "30% de ma RAM est des tampons".La source canonique de ces informations est /usr/src/linux/Documentation/filesystems/proc.txt
Vous pouvez également trouver plus de détails ici .
Ou analysez le code source comme ceci .
Le montant de
buffers
est la valeur de retour de la fonctionnr_blockdev_pages(void)
Le montant de
cached
:la source