free
je oblíbený příkaz používaný správci systému na platformách Unix/Linux. Je to výkonný nástroj, který poskytuje přehled o využití paměti ve formátu čitelném pro člověka.
man
stránka pro tento příkaz uvádí, že free
zobrazuje celkové množství volné a použité paměti v systému, včetně fyzického a odkládacího prostoru, stejně jako vyrovnávací paměti a mezipaměti používané jádrem. Informace se shromažďují analýzou /proc/meminfo
.
Jako každý jiný příkaz, free
prošel v průběhu času revizemi, aby byl jeho výstup smysluplný a přesný pro rozhodování. V Red Hat Enterprise Linux (RHEL) 6 se výstup poněkud liší od výstupu RHEL 7 a 8. Ve všech těchto verzích však existují klíčové parametry, které se nemění.
Na RHEL 6 zadáním free -h
(Použil jsem -h
volba pro lidsky čitelný formát) zobrazuje výstup podobný následujícímu:
[root@srv ~]# free -h
total used free shared buffers cached
Mem: 94G 44G 49G 161M 993M 1.3G
-/+ buffers/cache: 42G 52G
Swap: 15G 0B 15G
(obrázek 1)
RHEL 7/8 zobrazuje informace podobné následujícím:
[root@server1 ~]# free -h
total used free shared buff/cache available
Mem: 15G 751M 1.2G 272M 13G 14G
Swap: 0B 0B 0B
(obrázek 2)
RHEL 8 bude mít výstup podobný následujícímu:
[root@tiger ~]# free -h
total used free shared buff/cache available
Mem: 819Mi 164Mi 146Mi 25Mi 509Mi 491Mi
Swap: 0B 0B 0B
(Figure 3)
Aby byl výstup výše čitelnější, příkaz poskytuje různé možnosti:free
-b
, -k
, -m
, -g
:Zobrazení množství paměti v bajtech, kilobajtech, megabajtech, free -h
zobrazit výstup ve výstupu čitelném pro člověka. Spusťte prosím free --help
pro více informací o možnostech.
Různé sloupce zobrazené v různých vydáních výše se snaží identifikovat celkovou, použitou, volnou, sdílenou paměť. Snaží se také zobrazit paměť uloženou v mezipaměti a vyrovnávací paměti.
Nicméně, stejně jako u většiny příkazů, příslušné sloupce ke kontrole, které mohou být zajímavé pro správce systému při provádění úklidu nebo odstraňování problémů problém je vysvětlen níže.
Red Hat Enterprise Linux 6
V případě RHEL 6 by se mělo zaměřit na -/+ vyrovnávací paměti/mezipaměť sloupec.
Na obrázku 1 výše je celkem 94 GB, využitých 44 GB a volných 49 GB. Tento systém je poměrně vytížený, ale použitá RAM se zdá vysoká. To by nemělo způsobit velké obavy, ale správce se musí podívat na -/+ buffery/cache sloupec. -/+ vyrovnávací paměti/mezipaměť zobrazuje použitou paměť jako 42 GB a volnou paměť jako 52 GB. To znamená, že skutečné množství použité paměti RAM je 42 GB, nikoli 44 GB. Hodnota 44 GB zahrnuje i mezipaměť. Pouhý pohled na použité Hodnota bez ohledu na mezipaměť ovlivňuje vaši interpretaci výkonu systému.
Vyrovnávací paměti a sloupce uložené v mezipaměti jsou vysvětleny níže:
- vyrovnávací paměti:paměť používaná vyrovnávací paměti jádra
- mezipaměť:místo v paměti zabrané mezipamětí stránek.
Stránky mezipaměti nejsou nic jiného než data/soubory, které se zkopírují do RAM, když jádro provádí operace čtení/zápisu na disk. Důvodem pro udržování těchto stránek v mezipaměti je výkon I/O. Jádro tedy uchovává tyto soubory v RAM a uvolňuje je, kdykoli nejsou potřeba, nebo kdykoli si nový proces/příkaz vyžádá místo v paměti, když v RAM není volné místo.
Red Hat Enterprise Linux 7/8
Na RHEL 7/8 by se mělo zaměřit na dostupné sloupec. V RHEL 7/8 -/+ vyrovnávací paměti/mezipaměť byl sejmut a nahrazen dostupným sloupec. vyrovnávací paměť a mezipaměť byly sloučeny do buff/mezipaměti a mají stejný význam, jak je vysvětleno výše. dostupné sloupec odhaduje, kolik paměti je k dispozici pro spouštění nových aplikací bez swapování.
Na obrázku 2 výše je celková nainstalovaná RAM 15 GB, použitá je 751 MB a volná je 1,2 GB. Za použití stejné úvahy jako u RHEL 6, pouhý pohled na použité hodnota by mohla vést k nesprávnému závěru. Použitý je třeba chápat také s ohledem na sloupec mezipaměti. U dostupných je spousta mezipaměti hodnotu 14 GB, což je velmi vysoká hodnota, téměř stejná jako celková RAM.
Kdy by se měl správce systému začít obávat?
Zdravý systém s více než dostatkem paměti bude po chvíli běhu vykazovat následující očekávané a neškodné chování:
- volná paměť se blíží 0 nebo je výrazně malá
- použitá paměť se blíží celkové hodnotě
- dostupná paměť (nebo volné -/+ vyrovnávací paměti/mezipaměť) je větší v poměru k celkové paměti
- použitá hodnota swapu se nemění
Správce systému se však musí znepokojovat, pokud existují známky, které představují situaci se skutečným nedostatkem paměti. Níže jsou uvedeny některé z těchto znaků:
- dostupná paměť (nebo volné -/+ vyrovnávací paměti/mezipaměť) se blíží nule nebo je výrazně malá
- použité hodnoty swapu začnou narůstat nebo kolísat, protože systém nemá žádné volné paměťové stránky, které by mohl použít, a tak se musí uchýlit k použití odkládacího disku
- Při kontrole pomocí
grep -i kill /var/log/messages*
jsou v protokolech zprávy zabijáka OutOfMemory nebodmesg | grep oom-killer
Zabalení
free
command je velmi užitečná utilita, která může správci systému sdělit mnoho o tom, co se děje na serveru. Naučte se rozpoznávat rozdíly mezi verzemi free
může pomoci s přesnější interpretací výstupu.
[ Chcete si vyzkoušet Red Hat Enterprise Linux? Stáhněte si ji nyní zdarma. ]