194 votes

Mémoire de Linux : mettre en mémoire tampon cache de vs

Pour moi, il n'est pas clair quelle est la différence entre les deux Linux mémoire concept :buffer et cache. J'ai lu ce post et il me semble que la différence entre eux est la stratégie d'expiration:

  1. tampon de la politique du premier entré, premier sorti
  2. cache de la politique est la Moins Récemment Utilisée.

Suis-je le droit?

Mise à JOUR: je suis en train de regarder les deux commandes: free et vmstat

james@utopia:~$ vmstat -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
5  0      0    173     67    912    0    0    19    59   75 1087 24  4 71  1
james@utopia:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          2007       1834        172          0         67        914
-/+ buffers/cache:        853       1153
Swap:         2859          0       2859

195voto

xoy Points 431

Les tampons sont associés à un périphérique bloc, et la couverture de la mise en cache de système de fichiers de métadonnées, ainsi que le suivi en vol des pages. Le cache ne contient garé fichier de données. Qui est, la mémoire, rappelez-vous ce qui est dans les annuaires, ce que les autorisations de fichier sont et de garder trace de ce qui la mémoire est en cours d'écriture ou de lecture d'un bloc particulier de l'appareil. Le cache contient uniquement le contenu des fichiers eux-mêmes.

citation lien

90voto

socketpair Points 469

Cité de réponse (pour la référence):

Réponse courte: le Cache est la taille du cache de la page. Tampons est la taille de bloc de mémoire d'e/S tampons. Mise en cache des questions; Tampons est largement hors de propos.

Réponse longue: le Cache est la taille de la page Linux cache, moins la mémoire dans le swap de cache, qui est représenté par SwapCached (donc le total de la page taille de la mémoire cache est mis en Cache + SwapCached). Linux effectue toutes les e/S de fichier via le cache de la page. Les écritures sont mis en œuvre comme marquant simplement comme sale les pages correspondantes dans le cache de la page; le flusher sujets puis périodiquement écrire sur le disque toutes les pages sale. Les lectures sont mises en œuvre par de renvoyer les données à partir du cache de la page; si les données ne sont pas encore dans le cache, il est d'abord renseignée. Sur un système Linux, la mise en Cache peut être facilement plusieurs gigaoctets. Il diminuera seulement en réponse à la sollicitation de la mémoire. Le système permet de purger le cache de la page avec la permutation des données sur le disque pour le rendre disponible plus de mémoire que nécessaire.

Les tampons sont en bloc de mémoire d'e/S tampons. Ils sont relativement de courte durée. Avant la version 2.4 du noyau Linux, Linux a une page séparée, et les mémoires cache de tampons. Depuis la 2.4, la page et le cache de tampons unifiée et de solutions Tampons est cru blocs de disque ne sont pas représentés dans le cache de la page-c'est à dire, pas de fichier de données. Les Tampons métrique est donc d'une importance minime. Sur la plupart des systèmes, des Tampons est souvent que de quelques dizaines de méga-octets.

74voto

Seth Robertson Points 13276

Les "tampons" représentent la part de la mémoire vive dédiée au bloc de disque cache. "Cached" est similaire à "Buffers", mais cette fois, il met en cache les pages de la lecture des fichiers.

citation de: http://www.linuxforums.org/articles/using-top-more-efficiently_89.html

26voto

n00ber Points 76

Ce n'est pas tout à fait aussi simple que cela, mais cela pourrait aider à comprendre:

Le tampon sert à stocker les métadonnées du fichier (autorisations, emplacement, etc.). Chaque page de mémoire est suivie ici.

Le cache sert à stocker le contenu réel du fichier.

12voto

ChaiZhi Points 133

tampon et cache.

Un tampon est quelque chose qui doit encore être "écrit" sur le disque.

Un cache est quelque chose qui a été "lu" sur le disque et stocké pour une utilisation ultérieure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X