GNU/Linux >> Znalost Linux >  >> Linux

Rozebírání příkazu free:Co potřebuje vědět správce systému Linux

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,  gigabajtů resp. Můžete také použít 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 nebo dmesg | 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. ]


Linux
  1. Co je ekvivalent linuxového příkazu 'free' na FreeBSD v8.1

  2. Co znamená &na konci linuxového příkazu?

  3. Co je ekvivalentní příkazu Linux File pro Windows?

  1. Jaký je ekvivalent linuxového ~ (tilda) ve Windows?

  2. Co znamená symbol linux pipe | dělat?

  3. Co má příkaz export dělat v Linuxu?

  1. Zvládněte příkaz Linux ls

  2. Nikdy to nedělejte se svým linuxem rm -rf * / jeden příkaz, abyste rozbili celý linux

  3. Co je Windows analogem příkazu watch v systému Linux?