free
vytáhne svá data z /proc/meminfo
slkwr133701:/usr/src/linux # free
total used free shared buffers cached
Mem: 2053456 434572 1618884 0 77888 201820
slkwr133701:/usr/src/linux # cat /proc/meminfo
MemTotal: 2053456 kB
MemFree: 1618736 kB
Buffers: 77928 kB
....
To se týká paměti používané pro dočasné blokové I/O úložiště. Jádro musí neustále přiřazovat a uvolňovat jednotky stejné velikosti, jako jsou blokové I/O přenosy, síťové pakety a soketové vyrovnávací paměti
Spuštěním slabtop
můžete získat lepší pohled na cache a alokaci vyrovnávací paměti
Odpověď na vaši otázku ohledně použití:Systém obvykle přidělí více bloků, než potřebuje, ale jak se zvýší „tlak v paměti“, tyto dodatečné bloky se uvolní.
"vyrovnávací paměti" lze získat zpět pod tlakem paměti. Je to tedy podobné jako u cache stránek (sloupec "cache"); není velký důvod k obavám. Hodnota "bufferů" může být malá nebo velká, záleží na tom, co váš systém dělá :-). Můžeme zde najít několik typů počítaných keší.
Vyrovnávací mezipaměť je doslova mezipaměť stránek pro blokové zařízení. Linux je pouze hlásí samostatně.[*] Můžete si všimnout použití "vyrovnávací paměti", zatímco programy čtou/zapisují uzel blokového zařízení, např. dd status=progress if=/dev/sda of=/dev/null
. Lidé si toho zjevně všimnou také při spuštění programu DVD přehrávače.
Důkaz viz:30 % RAM tvoří „vyrovnávací paměti“. Co to je?
Pokud jste nepřistupovali k uzlu blokového zařízení, vaše „vyrovnávací paměti“ jsou pravděpodobně všechny metadata souborového systému . Souborové systémy používají mezipaměť interně pro pohodlí. Zajišťují, aby se nikdy neduplikovaly data souboru - obsah souboru - který je uložen v mezipaměti hlavní stránky. Přesné to, k čemu souborový systém používá vyrovnávací paměť – pokud vůbec něco – se liší v závislosti na souborovém systému.
Na počítači s malým množstvím fyzické RAM jsem si všiml, že "vyrovnávací paměti" mohou vypadat vysoko, když mám souborové systémy ext3/ext4. Bylo to proto, že zápisy do žurnálu procházejí vyrovnávací pamětí. (Viz odkaz výše). Souborové systémy ext3/4 také ukládají obsah adresáře do vyrovnávací paměti.
Za druhé, "vyrovnávací paměti" zobrazené pomocí free
příkaz také zahrnuje SReclaimable, což znamená regenerovatelné desky. (Demonstrováno zde:Správný způsob monitorování paměti Linuxu, znovu).
Paměť desky není část mezipaměti stránky/vyrovnávací paměti. Je však vhodné je spočítat dohromady. Oba jsou regenerovatelné a hlavní (jediné?) použití regenerovatelných slabů je pro ukládání do mezipaměti souborového systému. Například metadata souboru (inody) a vyhledávání cest (dentry) jsou uloženy v mezipaměti v obnovitelných slabech. "Obnovitelná slabá paměť [může] zabírat velkou část systémové paměti na většinou nečinných systémech se spoustou souborů."
Můžete vidět nezpracovaný Buffers
a SReclaimable
hodnoty v cat /proc/meminfo
. Můžete také spustit slabtop
pro zobrazení seznamu desek. AFAICT, slabtop
nedává statistiky o deskách jako regenerovatelné nebo ne. Ale obvykle můžete hádat, a pokud existuje nějaká podezřelá deska, myslím, že ji můžete vyhledat podle názvu.
[*] Pro účely této odpovědi je "vyrovnávací paměť" mezipaměť počítaná Buffers
v /proc/meminfo
. Jiné zdroje však mohou odkazovat na celou mezipaměť stránky jako na sjednocenou vyrovnávací paměť. Pokud chcete historické vysvětlení, podívejte se na první odkaz.
Také linuxoví vývojáři možná používali "mezipaměť" k tomu, aby znamenali různé věci, když se hádali o implementaci souborového systému.