Řešení 1:
Význam hodnot
První řádek znamená:
total
:Vaše celková (fyzická) RAM (kromě malé části, kterou si jádro trvale rezervuje pro sebe při spuštění); proto ukazuje cca. 11,7 GiB a ne 12 GiB, které pravděpodobně máte.used
:paměť používaná operačním systémem.free
:paměť se nepoužívá.
total
=used
+ free
shared
/buffers
/cached
:Toto ukazuje využití paměti pro specifické účely, tyto hodnoty jsou zahrnuty v hodnotěused
.
Druhý řádek uvádí upravené hodnoty prvního řádku. Poskytuje původní hodnotu used
mínus součet buffers+cached
a původní hodnotu pro free
plus součet buffers+cached
, odtud jeho název. Tyto nové hodnoty jsou často smysluplnější než hodnoty v prvním řádku.
Poslední řádek (Swap:
) poskytuje informace o využití odkládacího prostoru (tj. obsahu paměti, který byl dočasně přesunut na disk).
Pozadí
Abyste skutečně pochopili, co čísla znamenají, potřebujete trochu pozadí o subsystému virtuální paměti (VM) v Linuxu. Jen krátká verze:Linux (stejně jako většina moderních OS) se bude vždy snažit použít volnou RAM pro ukládání věcí do mezipaměti, takže Mem: free
bude téměř vždy velmi nízká. Proto řádek -/+ buffers/cache:
je zobrazeno, protože ukazuje, kolik paměti je volné při ignorování mezipaměti; mezipaměti se uvolní automaticky, pokud dojde k nedostatku paměti, takže na nich vlastně nezáleží.
Systém Linux má opravdu málo paměti, pokud je free
hodnotu v -/+ buffers/cache:
linka klesá.
Podrobněji o významu čísel viz např. otázky:
- Jaký je v Linuxu rozdíl mezi „buffery“ a „cache“ hlášenými příkazem free?
- Proč Red Hat Linux hlásí méně volné paměti v systému, než je skutečně dostupné?
Změny v procps 3.3.10
Všimněte si, že výstup free
byl změněn v procps 3.3.10 (vydáno v roce 2014). Nahlášené sloupce jsou nyní "celkem", "použité", "zdarma", "sdílené", "buff/mezipaměť", "dostupné" a význam některých hodnot se změnil, hlavně kvůli lepšímu zohlednění slab cache linuxového jádra.
Viz Debian Bug report #565518 pro motivaci a co dělají změny v free
výstup od 14.04 do 16.04 znamená? pro více podrobných informací.
Řešení 2:
Aktuálně přijímaná odpověď z roku 2009 je zastaralá. Je důležité se ujistit, že informace, které dostáváte, jsou správné a odpovídají verzi free
(distribuováno v balíčku Debian procps
nebo ekvivalent ve vaší distribuci). Je také užitečné podívat se na výstup man free
a také man 5 proc
, který obsahuje informace o /proc/meminfo
, soubor, kde je free
získává svá data z Linuxu.
Ve výchozím nastavení free
výstup je v kibibajtech (1 kibibajt =1024 bajtů), jak můžete vidět v manuálové stránce. Dávám přednost použití -h
argument, který zobrazuje přípony, jako je tento:
$ free -h
total used free shared buff/cache available
Mem: 15Gi 6.1Gi 1.9Gi 301Mi 7.5Gi 8.8Gi
Swap: 979Mi 0B 979Mi
První řádek Mem
znamená:
total
(Mem):celková instalovaná paměť (tj.MemTotal
z/proc/meminfo
), to je veškerá paměť v RAMused
(Mem):použitá paměť, rovná setotal - free - buffers - cache
free
(Mem):nevyužitá paměť (tj.MemFree
), to je veškerá paměť, která není pro nic využita (dokonce i mezipaměti) v RAMshared
(Mem):toto je množství paměti používané hlavně protmpfs
(Shmem
)buff/cache
(Mem), součetbuffers
acache
:buffers
:paměť používaná vyrovnávací paměti jádra (Buffers
), což je paměť, kterou může jádro využítcache
:paměť používaná mezipamětí stránek a slaby (Cached
aSReclaimable
). Mezipaměť stránek obsahuje obsah souborů v souborovém systému uložených v mezipaměti RAM a obecně je dobré, když je toto vysoké číslo. Předpokládám, že „slabs“ jsou podobnou funkcí ukládání do mezipaměti.
available
(Mem):toto je odhad toho, kolik paměti je k dispozici pro spouštění nových aplikací, bez swapování. Zahrnuje většinu paměti počítané vcache
pole (protože mezipaměť stránky lze zahodit za účelem spouštění nových aplikací), ale nepočítá swap (protože je obecně lepší nepoužívat pomalý odkládací prostor).
Druhý řádek je Swap
. Toto je moje vysvětlení:
total
(Swap):toto je celkové množství místa na disku vyhrazené pro swap (SwapTotal
vproc/meminfo
). Můžete zkontrolovat, zda se toto shoduje s výstupemswapon -s
.used
(Swap):množství místa na odkládacím disku, které je aktuálně využíváno. Opět to můžete zkontrolovat porovnáním s výstupemswapon -s
free
(Swap):množství místa na odkládacím disku, které se aktuálně nevyužívá (SwapFree
v/proc/meminfo
). Je roventotal (Swap) - used (Swap)