GNU/Linux >> Tutoriels Linux >  >> Linux

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

Les tampons sont associés à un périphérique de bloc spécifique et couvrent la mise en cache des métadonnées du système de fichiers ainsi que le suivi des pages en cours. Le cache ne contient que des données de fichiers parqués. Autrement dit, les tampons se souviennent de ce qui se trouve dans les répertoires, des autorisations de fichiers et gardent une trace de la mémoire en cours d'écriture ou de lecture pour un périphérique de bloc particulier. Le cache ne contient que le contenu des fichiers eux-mêmes.

lien de devis


Réponse citée (pour référence) :

Réponse courte :Cached est la taille du cache de la page. Buffers est la taille des tampons d'E/S de bloc en mémoire. Questions mises en cache ; Les tampons sont largement hors de propos.

Réponse longue :Cached est la taille du cache de pages Linux, moins la mémoire dans le cache d'échange, qui est représentée par SwapCached (la taille totale du cache de pages est donc Cached + SwapCached). Linux effectue toutes les E/S de fichiers via le cache de pages. Les écritures sont implémentées en marquant simplement comme sales les pages correspondantes dans le cache de pages ; les threads de rinçage réécrivent ensuite périodiquement sur le disque toutes les pages modifiées. Les lectures sont implémentées en renvoyant les données du cache de page ; si les données ne sont pas encore dans le cache, elles sont d'abord remplies. Sur un système Linux moderne, Cached peut facilement atteindre plusieurs gigaoctets. Il ne diminuera qu'en réponse à la pression de la mémoire. Le système purgera le cache de la page tout en échangeant les données sur le disque pour libérer plus de mémoire si nécessaire.

Les tampons sont des tampons d'E/S de bloc en mémoire. Leur durée de vie est relativement courte. Avant la version 2.4 du noyau Linux, Linux avait des caches de pages et de tampons séparés. Depuis la version 2.4, la page et le cache de tampon sont unifiés et Buffers est constitué de blocs de disque bruts non représentés dans le cache de page, c'est-à-dire pas de données de fichier. La métrique Buffers est donc d'une importance minime. Sur la plupart des systèmes, Buffers ne représente souvent que des dizaines de mégaoctets.


Linux
  1. Quelle est la différence entre la commande locate et find sous Linux

  2. Quelle est la différence entre env et set (sur Mac OS X ou Linux) ?

  3. Quelle est la différence entre un pilote de plate-forme Linux et un pilote de périphérique normal ?

  4. Quelle est la différence entre un appel Library et un appel System sous Linux ?

  5. Quelle est la différence entre Unix, Linux, BSD et GNU ?

Quelle est la différence entre les noyaux macOS et Linux

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre Rsync et BTRFS sous Linux ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?

Quelle est la différence entre DMA et les E/S mappées en mémoire ?