GNU/Linux >> Znalost Linux >  >> Linux

Co znamenají pole buff/cache a avail mem nahoře?

top Manpage nepopisuje pole, ale free 's dělá:

vyrovnávací paměti

Paměť používaná vyrovnávací paměti jádra (Buffers v /proc/meminfo )

mezipaměť

Paměť používaná mezipamětí stránek a slaby (Cached aSReclaimable v /proc/meminfo )

buff/mezipaměť

Součet vyrovnávacích pamětí a mezipaměti

k dispozici

Odhad, kolik paměti je k dispozici pro spouštění nových aplikací, bez swapování. Na rozdíl od dat poskytovaných cache nebo volnými poli, toto pole bere v úvahu pagecache a také to, že ne všechny obnovitelné paměťové slaby budou odebrány kvůli položkám, které se používají (MemAvailable v/proc/meminfo , dostupné na jádrech 3.14, emulované na jádrech 2.6.27+, jinak stejné jako zdarma)

V zásadě „buff/cache“ počítá paměť použitou pro data, která jsou na disku nebo by tam měla brzy skončit, a v důsledku toho je potenciálně použitelná (odpovídající paměť může být zpřístupněna okamžitě, pokud nebyla od přečtení změněna nebo dostat dostatek času, pokud má); „available“ měří množství paměti, kterou lze alokovat a použít, aniž by došlo k dalšímu swapování (viz Jak mohu získat množství dostupné paměti přenositelně napříč distribucemi?, kde najdete mnohem více podrobností).


Jen pro upřesnění, vyrovnávací paměti odkazuje na data, která jsou zapisována -- tuto paměť nelze získat zpět, dokud nebude zápis dokončen.

Mezipaměť odkazuje na data, která byla přečtena -- je uchováván pro případ, že by bylo třeba jej znovu přečíst, ale lze jej okamžitě získat zpět, protože jej lze vždy znovu přečíst z disku.


Kanonický zdroj těchto informací je /usr/src/linux/Documentation/filesystems/proc.txt

Vyrovnávací paměti :Relativně dočasné úložiště pro nezpracované diskové bloky by nemělo být extrémně velké (20 MB nebo tak)Uloženo do mezipaměti :mezipaměť v paměti pro soubory načtené z disku (mezipaměť stránek). Nezahrnuje SwapCached.

Zde také naleznete další podrobnosti.

Mezipaměť stránek systému Linux („Uloženo v mezipaměti :" from meminfo ) je největším jediným spotřebitelem paměti RAM na většině systémů. Kdykoli provedete read() z disku fileon, tato data se načtou do paměti a přejdou do pagecache(1.).
Mezipaměť ("Vyrovnávací paměti :" v meminfo) je příbuzný s mezipamětí dentry/inode.

Nebo analyzujte zdrojový kód takto.

Částka buffers je návratová hodnota funkce 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;
}

Částka cached :

global_page_state(NR_FILE_PAGES) – total_swapcache_pages – i.bufferram

Linux
  1. Jaký je rozdíl mezi vyrovnávací pamětí a mezipamětí v Linuxu?

  2. Jaký je rozdíl mezi zápisem do souboru a namapovanou pamětí?

  3. Jaký je rozdíl mezi ls a l?

  1. Jaký je rozdíl mezi 32bitovými PAE a 64bitovými jádry?

  2. Co znamenají top's %MEM a VSZ?

  3. Co znamená schopnost ep?

  1. Jaký je uživatel debian-+?

  2. Jaký je v Linuxu rozdíl mezi vyrovnávacími pamětmi a mezipamětí hlášenými příkazem free?

  3. Jaký je rozdíl mezi unlink a rm?