GNU/Linux >> Znalost Linux >  >> Linux

Jak získat % využití paměti pomocí vmstat?

To, co hledáte, je výstup z "free":

$ free
             total       used       free     shared    buffers     cached
Mem:        775556     759456      16100          0      22132     592484
-/+ buffers/cache:     144840     630716
Swap:       500344      21972     478372

Zde je prohlídka:

Toto je krabice se 768 MB fyzické RAM a 500 344 KB odkládacím oddílem.

759456KB je "použito" (druhý sloupec, horní řádek). Z této „použité“ paměti tvoří 23132 kB vyrovnávací paměti (5. sloupec, horní řádek) a 592 484 kB (šestý sloupec, horní řádek) mezipaměť, takže zbývá 144 840 kB (2. sloupec, 2. řádek) fyzické paměti, kterou využívají aktivní procesy.

Když uvážíte, že paměť používaná vyrovnávacími pamětmi a mezipamětí by mohla být použita pro procesy, ponechává 630716 kB (3. sloupec, 2. řádek) volné fyzické paměti.

Odkládací oddíl, jak jsem řekl, má 500344KB (1. sloupec, spodní řádek). Používá se 21972 kB (2. sloupec, spodní řádek) odkládacího souboru, zbývá tedy 478 372 KB (3. sloupec, spodní řádek) volných.

Vaše definice % volné paměti tedy závisí na tom, zda počítáte vyrovnávací paměti a mezipaměť nebo ne, a zda počítáte swap nebo ne.

To by vám mělo dát dost na to, abyste mohli vypočítat procento, jak uznáte za vhodné.

Zde je výstup top a free:

$ top -n1 | grep "used," ; free
Mem:    775556k total,   751472k used,    24084k free,    20776k buffers
Swap:   500344k total,    21972k used,   478372k free,   586648k cached

             total       used       free     shared    buffers     cached
Mem:        775556     751344      24212          0      20776     586648
-/+ buffers/cache:     143920     631636
Swap:       500344      21972     478372

Můžete vidět, jak se top a free shodují (i když s malým rozdílem – jedná se o víceuživatelský stroj a tam se odráží využití paměti top a volných programů).

Když zavoláte vmstate, přidejte "-s" a uvidíte téměř stejný výstup, jen v jiné podobě:

$ vmstat -s ; free
       775556  total memory
       759920  used memory
       674680  active memory
        18440  inactive memory
        15636  free memory
        21892  buffer memory
       594372  swap cache
       500344  total swap
        21972  used swap
       478372  free swap
       ... output truncated ...

             total       used       free     shared    buffers     cached
Mem:        775556     759920      15636          0      21892     594372
-/+ buffers/cache:     143656     631900
Swap:       500344      21972     478372

Můžete vidět, že vmstat zobrazuje všechna stejná čísla jako free.


Mám na vás stejnou otázku a vymýšlím vzorec

vmstat -s | awk  ' $0 ~ /total memory/ {total=$1 } $0 ~/free memory/ {free=$1} $0 ~/buffer memory/ {buffer=$1} $0 ~/cache/ {cache=$1} END{print (total-free-buffer-cache)/total*100}'

Testoval jsem to na verzi vmstat z procps-ng 3.3.10 a vmstat z procps-ng 3.3.9


Linux
  1. Jak zkontrolovat využití paměti procesu pomocí příkazu Linux pmap

  2. Jak zjistit využití CPU

  3. Jak snížit využití paměti ClamAV?

  1. Jak používat příkaz Vmstat v Linuxu vysvětleno na příkladech

  2. Linux – skutečné využití paměti?

  3. Jak se v Linuxu hlásí využití paměti?

  1. Linux – správně určit využití paměti v Linuxu?

  2. Jak vypočítat využití paměti v Linuxu pomocí sar, ps a zdarma

  3. Jak uvolnit použití Inode?