Előfeltételek:
Az ebben az útmutatóban bemutatott lépések végrehajtásához a következő összetevőkre van szüksége:
- Egy megfelelően konfigurált Linux rendszer. Tesztelési célból, fontolja meg egy Linux virtuális gép használatát .
- Hozzáférés a nem root felhasználó sudo jogosultsággal
- A parancssori felület alapvető ismerete
Virtuális memória Linux alatt
A fizikai memória, amelyet RAM-nak is neveznek, véges. A kernel felelős azért, hogy ezt a területet elosztja az összes futó program számára. Az összes futó program (beleértve az operációs rendszert is) a RAM-ban található.
Ha azonban a memóriaigény nagyobb, mint a rendelkezésre álló memória, akkor egyszerűen összeomlik a rendszer (vagy a program több memóriaterületet kér). A legtöbb esetben ez nem kívánt eredmény. Itt jön be a virtuális memória.
A virtuális memória a HDD/SSD dedikált lemezterületére utal, amely további memóriaként szolgálhat súlyos helyzetekben. Mivel RAM-területként működik (de nem igazán), „virtuálisnak” tekintik. UNIX/Linux rendszerekben ezeket a helyeket csereterületeknek nevezik.
A Linux kernel áthelyezi a memóriablokkokat a swap területre, és szükség szerint visszakeresi a RAM-ba.
A virtuális memória teljesítménye határozottan lassabb, mint a fizikai memória, és egyenesen arányos a tárolóeszköz teljesítményével. Bizonyos hardverkonfigurációkban (például NVMe SSD használatával) azonban a teljesítmény egyenértékű lehet a RAM-mal.
A Vmstat parancs
A „vmstat” parancs egy megfigyelő eszköz, amely különféle információkat jelent a virtuális memóriáról. Minden Linux rendszeren elérhető a „sysstat” csomag részeként.
A „vmstat” parancsszerkezete a következő:
$ vmstat < lehetőségek > < késleltetés > < számol >Alapvető használat
Ha paraméter nélkül fut, a „vmstat” kiírja a rendszerinformációkat az utolsó indítás óta:
$ vmstat
A kimenet hat szegmensre van elrendezve:
- folyamatokat : Az éppen futó folyamatok statisztikái
- r : Az aktív folyamatok száma
- b : Az alvási folyamatok száma
- memória : Memóriahasználati statisztikák
- swpd : A virtuális memória teljes mennyisége (csereterület)
- ingyenes : Szabad csereterület
- barnássárga : Az ideiglenes puffermemóriaként használt csereterület mennyisége
- gyorsítótár : Teljes gyorsítótár
- csere : Statisztikák a csereterületről
- Igen : Beváltási arány
- így : Kicserélés aránya
- ez : I/O statisztikák
- val,-vel : A blokkeszköz(ök)től kapott blokkok száma
- lenni : A blokkolóeszköz(ek)nek küldött blokkok száma
- rendszer : Statisztikák az ütemezésről
- ban ben : A rendszer megszakítja a számlálást
- cs : A környezetváltások sebessége
- CPU : Különféle CPU statisztikák
- minket : A CPU nem kernel folyamatokon tölt időt
- és : A CPU kernelfolyamatokra fordított időt
- id : A CPU üresjáratban tölti az idejét
- nak,-nek : A CPU időt tölt az I/O műveletek befejezésére várva
- utca : A virtuális gép által használt CPU-idő
A kijelző egység cseréje
Alapértelmezés szerint a „vmstat” a memóriaértékeket kilobájtban jelenti. Az egység megváltoztatásához használja a „ -S ” zászló:
$ vmstat -S < érv >
Itt a „vmstat” megabájtban írja ki az értékeket.
Számos memóriaegység áll rendelkezésre:
- M : 1048576 bájt (2^20 bájt)
- m : 1000000 bájt (1000 kilobájt)
- K : 1024 bájt (1 megabájt)
- k : 1000 bájt (1 kilobájt)
Folyamatos statisztikai frissítés
Alapértelmezés szerint a „vmstat” egyszer nyomtatja ki a jelentést. Azonban utasíthatjuk a „vmstat”-t, hogy meghatározott időközönként (másodpercben) folyamatos jelentéseket adjon.
A parancs szerkezete a következő:
$ vmstat < késleltetés >Például a frissített statisztikák 2 másodpercenkénti lekéréséhez a parancs a következő:
$ vmstat 2
A kimenet csak akkor áll le, ha manuálisan leállítja a „Ctrl + C” használatával.
Alternatív megoldásként megadhatjuk a „vmstat” értéket, hogy meghatározott számú alkalommal biztosítsuk a statisztikákat:
$ vmstat < késleltetés > < számol >Például a frissített statisztikák 2 másodpercenkénti 5-szöri lekéréséhez a parancs így néz ki:
$ vmstat 2 5
Aktív és inaktív memória
Az aktív memória arra a memóriaterületre utal, amelyet egy folyamat jelenleg használ. Másrészt az inaktív memória arra a memóriaterületre utal, amelyet egy már nem futó folyamathoz rendeltek.
A „vmstat” segítségével ellenőrizhetjük a használt aktív és inaktív memóriák mennyiségét:
$ vmstat -a
Itt a „buff” és „cache” oszlopokat az „inact” és „active” oszlopok váltják fel.
Memória és ütemezés
Ha részletesebb jelentést szeretne kapni a memóriáról és az ütemezésről, használja a következő parancsot:
$ vmstat -s
Itt:
- 1. szakasz: Ez a szakasz az alapvető rendszerinformációkkal foglalkozik, mint például a teljes fizikai memória, az aktív/inaktív memória, a szabad/puffer/gyorsítótár memória stb.
- 2. szakasz: Különféle CPU statisztikák
- Nem szép CPU ketyeg : Hányszor használták a magas prioritású folyamatok a CPU-t.
- Szépek a CPU-k : Ahányszor az alacsonyabb prioritású folyamatok használták a CPU-t.
- Rendszer CPU ketyeg : Az a szám, ahányszor a kernelfolyamatok használták a CPU-t.
- Idle CPU ketyeg : Ahányszor a CPU tétlen volt.
- IO-wait CPU ketyeg : Ahányszor a CPU az I/O kezelésre vár.
- IRQ : Ahányszor a CPU megkapta a megszakítási kérelmeket.
- softirq : Ahányszor a CPU megkapta a szoftvermegszakítási kérelmeket.
- lopott CPU-kulcsok : Azon alkalmak száma, amikor a virtuális gépek ellopták a CPU-időt.
- 3. szakasz: Memórialapozási statisztikák
- 4. szakasz: Eseményszámlálók
Forks Boot óta
A villák olyan folyamatokra utalnak, amelyeket a meglévő folyamatok hoztak létre. A villaszámlálási statisztikák megtekintéséhez futtassa a következő parancsot:
$ vmstat -f
Lemez- és partícióstatisztika
A „vmstat” parancs a lemeztevékenységről is információt szolgáltathat. A lemeztevékenység gyors összefoglalásához futtassa a következő parancsot:
$ vmstat -D
Ha részletesebb lemeztevékenységi jelentést szeretne kapni (beleértve az olvasási/írási statisztikákat is), használja inkább a következő parancsot:
$ vmstat -d
Itt:
- Olvas
- teljes : Teljes lemezolvasási szám
- összeolvadt : A csoport összes olvasásának száma
- ágazatokban : Az olvasott szektorok teljes száma
- Kisasszony : Az adatok lemezről történő beolvasásának teljes ideje (ezredmásodpercben)
- Írja
- teljes : Teljes lemezírási szám
- összeolvadt : Összes csoportos írások száma
- ágazatokban : A megírt szektorok teljes száma
- Kisasszony : A lemezre való írás teljes ideje (ezredmásodpercben)
- IO
- tegye : Összes aktuális lemezolvasás/írás
- mp : A folyamatban lévő olvasási/írási műveletben eltöltött idő (másodpercben)
A „vmstat” parancs egy adott lemezpartícióhoz is képes jelentéseket generálni. A partíciójelentés lekéréséhez használja a következő parancsstruktúrát:
$ vmstat -o < partíció_azonosító >
Födémstatisztika
A födémallokációt úgy tervezték meg, hogy hatékony mechanizmus legyen az objektumok memóriafoglalásához. A korábbi mechanizmusokhoz képest a födém-allokáció csökkenti a memória töredezettségét (memóriafoglalás és felosztás miatt).
A rendszer födémstatisztikáinak ellenőrzéséhez használja a következő „vmstat” parancsot:
$ sudo vmstat -m
Vegye figyelembe, hogy a statisztikák megtekintéséhez root jogosultság szükséges.
Itt:
- Gyorsítótár : A gyorsítótárazott adatok neve
- az egyiken : A Num cache-ben aktív objektumok száma
- Teljes : Az objektumok teljes száma egy adott gyorsítótárban
- Méret : A gyorsítótárazott objektumok mérete
- Oldalak : A gyorsítótárazott objektumokat tartalmazó memóriaoldalak száma
Következtetés
Ebben az útmutatóban bemutattuk a „vmstat” parancs használatának különféle módjait. A virtuális memória mellett a „vmstat” a lemezstatisztikákról, a villákról, a lemezekről és egyebekről is jelentést tud készíteni.
Érdekel más rendszerfigyelő eszközöket? Tudj meg többet htop , megöl , ps stb.
Boldog számítástechnikát!