GNU/Linux >> Tutoriels Linux >  >> Linux

Que signifient les champs buff/cache et avail mem en haut ?

top La page de manuel de ne décrit pas les champs, mais free fait :

tampons

Mémoire utilisée par les tampons du noyau (Buffers en /proc/meminfo )

cache

Mémoire utilisée par le cache de pages et les slabs (Cached etSReclaimable en /proc/meminfo )

buff/cache

Somme des tampons et du cache

disponible

Estimation de la quantité de mémoire disponible pour démarrer de nouvelles applications, sans échange. Contrairement aux données fournies par le cache ou les champs libres, ce champ prend en compte le pagecache et également que toutes les dalles de mémoire récupérables ne seront pas récupérées en raison des éléments en cours d'utilisation (MemAvailable en/proc/meminfo , disponible sur les noyaux 3.14, émulé sur les noyaux 2.6.27+, sinon identique à gratuit)

Fondamentalement, "buff/cache" compte la mémoire utilisée pour les données qui sont sur le disque ou qui devraient s'y retrouver bientôt, et qui sont donc potentiellement utilisables (la mémoire correspondante peut être rendue disponible immédiatement, si elle n'a pas été modifiée depuis sa lecture , ou donné suffisamment de temps, si c'est le cas); "disponible" mesure la quantité de mémoire qui peut être allouée et utilisée sans provoquer d'échange supplémentaire (voir Comment puis-je obtenir la quantité de mémoire disponible de manière portable entre les distributions ? pour plus de détails à ce sujet).


Juste pour clarifier un peu, les tampons fait référence aux données en cours d'écriture -- cette mémoire ne peut pas être récupérée tant que l'écriture n'est pas terminée.

Cache fait référence aux données qui ont été lues -- il est conservé au cas où il aurait besoin d'être relu, mais peut être récupéré immédiatement puisqu'il peut toujours être relu à partir du disque.


La source canonique de ces informations est /usr/src/linux/Documentation/filesystems/proc.txt

Tampons  :Le stockage relativement temporaire pour les blocs de disque bruts ne devrait pas être extrêmement volumineux (environ 20 Mo)En cache :cache en mémoire pour les fichiers lus depuis le disque (le cache de pages). N'inclut pas SwapCached.

Vous pouvez également trouver plus de détails ici.

Le cache de pages Linux ("En cache :" de meminfo ) est le plus gros consommateur de RAM sur la plupart des systèmes. Chaque fois que vous effectuez une lecture() à partir d'un fichier sur le disque, ces données sont lues en mémoire et placées dans le pagecache(1.).
Le cache de tampon ("Tampons :" dans meminfo) est un plus proche des caches dentry/inode.

Ou analysez le code source comme ceci.

Le montant de buffers est la valeur de retour de la fonction nr_blockdev_pages(void)

long nr_blockdev_pages(void)
{
        struct block_device *bdev;
        long ret = 0;
        spin_lock(&bdev_lock);
        list_for_each_entry(bdev, &all_bdevs, bd_list) {
                ret += bdev->bd_inode->i_mapping->nrpages;
        }
        spin_unlock(&bdev_lock);
        return ret;
}

Le montant de cached :

global_page_state(NR_FILE_PAGES) – total_swapcache_pages – i.bufferram

Linux
  1. Les 20 meilleurs guides et tutoriels d'administration système

  2. Que signifient les chiffres dans une page de manuel ?

  3. À propos de Mem et Vmem ?

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

  5. Qu'est-ce que /dev/mem ?

Quelle est la différence entre InnoDB et MyISAM ?

Quelle est la différence entre Linux et Unix ?

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

Quelle est la différence entre l'écriture dans un fichier et une mémoire mappée ?

Que signifie la capacité ep ?

Que signifie %st en haut ?