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