memória

Parancsok a Linux memória kezeléséhez

Parancsok a Linux memória kezeléséhez
A UNIX / Linux rendszerek szinte mindenhez tartalmaznak parancssori eszközt. Ide tartoznak a memória kezelésére szolgáló programok is. Ebben a cikkben néhány olyan parancsot mutatunk be, amelyek Linux-felhasználóként nagyon hasznosak lehetnek.

A hardvert észlelje a dmidecode segítségével

Az automatikus hardverfelismerés mindig hasonlított egy lottóhoz, de az utóbbi években jobb lett, mivel sok gyártó részletesebben dokumentálja termékeit, és konkrét információk állnak rendelkezésre online is. A számítógépére telepített RAM-mal kapcsolatos hardveres információk megismeréséhez használja a dmidecode parancs (csomag Debian GNU / Linux, Ubuntu és Linux Mint számára: dmidecode).

Többek között ez az eszköz részletes adatokat közöl a telepített rendszerösszetevőkről, mint például a processzor, az alaplap és a RAM. Az információk a Desktop Management Interface (DMI) [1] alapján készülnek, amely egy olyan keret, amely az asztali számítógép, a notebook vagy a szerver egyes összetevőit úgy osztályozza, hogy elvonja ezeket az összetevőket az őket kezelő szoftverektől [2]. Az opció --típusú memória a memóriaeszközökre vonatkozik. Más DMI osztályok esetén nézze meg a dmidecode.

# dmidecode --type memória
# dmidecode 2.12
SMBIOS 2.7 jelen van.
Fogantyú: 0x0007, DMI típusú 16, 23 bájt
Fizikai memória tömb
Helyszín: alaplap vagy alaplap
Használat: Rendszer memória
Hibajavítás típusa: Nincs
Maximális kapacitás: 16 GB
Hibainformációk kezelése: nincs megadva
Eszközök száma: 1
Fogantyú: 0x0008, 17. típusú DMI, 34 bájt
Memóriaeszköz
Tömbfogantyú: 0x0007
Hibainformációk kezelése: nincs megadva
Teljes szélesség: 64 bit
Adatszélesség: 64 bit
Méret: 8192 MB
Formatényező: SODIMM
Készlet: Nincs
Helyszín: ChannelA-DIMM0
Bankkereső: BANK 0
Típus: DDR3
Típus részlet: szinkron
Sebesség: 1600 MHz
Gyártó: Samsung
Gyártási szám: 25252105
Eszközcímke: Nincs
Alkatrész száma: M471B1G73DB0-YK0
Rang: ismeretlen
Konfigurált órajel: 1600 MHz

Ez a gép jelenleg 8G DDR3 RAM-mal van felszerelve, konfigurált órajel-frekvenciája 1600 MHz. Mint látható, a fedélzeti RAM maximális rendelkezésre álló kapacitása 16G, ami azt jelenti, hogy kibővíthető egy második 8G modullal.

Grafikus információk a memóriában

Abban az esetben, ha egy grafikus felületet szeretne letölteni ezen információkhoz, a Hardinfo [3] és a Hardverlister (GTK + verzió) [4] eszközök érdekelhetik Önt. A Debian GNU / Linux, Ubuntu és Linux Mint rendszereken ezek a programok a hardinfo és az lshw-gtk csomagokon keresztül érhetők el. A 2. ábra a Hardinfo felhasználói felületét mutatja, amely megjeleníti a memóriainformációkat egy Xubuntu telepítésen.

Mennyi memória áll rendelkezésre jelenleg

Néha a kevesebb több. A parancssorban a memóriával kapcsolatos információk a ingyenes parancs. Debian GNU / Linux, Ubuntu és Linux Mint esetében ez a program a procps csomag része [5]. A 2. ábra a kimenetet mutatja a terminálablakban.

A további lehetőségek választékaként, ingyenes különféle paramétereket fogad el, például:

A 3. ábrán a kimenet megabájtban jelenik meg az -m opcióval. A rendszer 4G RAM-mal rendelkezik, míg jelenleg 725M van használatban.

Memória információk a Linux kern szempontjából

A fent említett eszközök olyan nyers információkra támaszkodnak, amelyeket a Linux kern proc fájlrendszerében tárolnak. A részletek megjelenítéséhez adja ki a fájl tartalmát / proc / meminfo használni a macska segédprogram egy terminálon:

$ cat / proc / meminfo
MemTotal: 7888704 kB
MemFree: 302852 kB
Memória elérhető: 448824 kB
Pufferek: 17828 kB
Gyorsítótárban: 326104 kB
SwapCached: 69592 kB
Aktív: 2497184 kB
Inaktív: 650912 kB
Aktív (anon): 2338748 kB
Inaktív (anon): 525316 kB
Aktív (fájl): 158436 kB
Inaktív (fájl): 125596 kB
Megkerülhetetlen: 64 kB
Megengedett: 64 kB
SwapTotal: 16150524 kB
SwapFree: 15668480 kB
Piszkos: 3008 kB
Visszaírás: 0 kB
AnonPages: 2774656 kB
Feltérképezve: 4414752 kB
Shmem: 59900 kB
Födém: 130216 kB
Igényelhető: 61748 kB
Nem követelés: 68468 kB
KernelStack: 7328 kB
Oldal táblázatok: 42844 kB
NFS_ instabil: 0 kB
Visszafordulás: 0 kB
WritebackTmp: 0 kB
CommitLimit: 20094876 kB
Elkötelezett_AS: 10344988 kB
VmallocÖsszesen: 34359738367 kB
Használt: 367296 kB
VmallocChunk: 34359345768 kB
Hardver meghibásodva: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hatalmas oldalméret: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$

A CPU használatával, a memóriával és a folyamatokkal kapcsolatos statisztikai információkért olvassa el az eszközöket vmstat, és iostat (A Debian csomagok a procps és a sysstat).

Folyamatok kezelése - ps, htop és pstree

A Linux rendszer aktív folyamatainak bemutatásához használja a ps parancs. Általában a kimenet betűrendben van rendezve. De a ps parancs sokkal többre képes. Aux opciók használata --sort -rss a folyamatlista kimenetét memóriahasználatuk szerint rendezik felülről lefelé. A 4. ábra bemutatja azokat a folyamatokat, amelyekre a legnagyobb a memóriaigény. A kimenetet az RSS címmel rendezett 6. oszlop rendezi, amely a lakoskészlet méretét rövidíti. Az érték kilobájtban van megadva.

A parancsok ps, pstree és htop szorosan kapcsolódnak az ezen eszközök által megjelenített információk szempontjából. Mindkét pstree és htop grafikon megjelenítése a folyamatfüggőségek megjelenítéséhez. htop interaktív verzióként működik, amely lehetővé teszi a folyamatlista felfelé és lefelé görgetését. Az 5. ábra mutatja htop asztali rendszeren, a folyamatok válogatásával a memória felhasználása szerint rendezve (5. oszlop).

Swap memóriát használó folyamatok megkeresése

Minél több folyamat indul el, annál több memória kerül felhasználásra egyszerre. Amint a Linux rendszerében elfogynak a fel nem használt memóriaoldalak, a Linux kernel úgy dönt, hogy a memória oldalakat lemezre cseréli a Legutóbb használt (LRU) módszerrel. A kérdés megválaszolásához, hogy mely folyamatok használnak cserememóriát, és mennyit használnak ki konkrétan, megnézheti a legfelső program kimenetét. 2016-ban Erik Ljungstrom rövid leírást tett közzé arról, hogyan szerezheti be ezeket az információkat, és hogyan bővítheti ezt az oszlopot a felső rész kimenetére [6]. A 6. ábra ezt a kimenetet mutatja egy olyan rendszeren, amelynek rengeteg memóriaoldala van a RAM-ban, és jelenleg nem használja a Swap funkciót.

Ezenkívül 2011-ben már közzétett egy bash szkriptet, amely kiértékeli a proc fájlrendszerből származó információkat, hogy megjelenítse a cserefolyamat folyamatonkénti használatát [7]. Még 7 évvel később és már elavultnak minősítve a szkript még mindig kiváló, és bemutatja, hogyan lehet automatizálni a feladatokat egy Linux rendszeren. Ezért biztosak vagyunk abban, hogy hasznos itt még egyszer megmutatni.

A szkript kimenete a következő (futtassa gyökér felhasználónak be kell szereznie a teljes adatot):

# ./csere.SH
PID = 1 - Használt csere: 0 - (systemd)
PID = 2 - Használt csere: 0 - (kthreadd)
PID = 3 - Használt csere: 0 - (ksoftirqd / 0)
PID = 5 - Használt csere: 0 - (kworker / 0: 0H)
PID = 6 - Használt csere: 0 - (kworker / u16: 0)
PID = 7 - Használt csere: 0 - (rcu_sched)
PID = 8 - Használt csere: 0 - (rcu_bh)
PID = 9 - Használt csere: 0 - (migráció / 0)
PID = 10 - Használt csere: 0 - (őrző / 0)
PID = 11 - Használt csere: 0 - (őrző / 1)
PID = 12 - Használt csere: 0 - (migráció / 1)
PID = 13 - Használt csere: 0 - (ksoftirqd / 1)
PID = 15 - Használt csere: 0 - (kworker / 1: 0H)
PID = 16 - Használt csere: 0 - (őrző / 2)
PID = 17 - Használt csere: 0 - (migráció / 2)
PID = 18 - Használt csere: 0 - (ksoftirqd / 2)
PID = 20 - Használt csere: 0 - (kworker / 2: 0H)

#

Következtetés

A Linux eszköztár az elérhető programok végtelen listáját tartalmazza, amelyek segítenek elemezni a Linux rendszer memóriahasználatát. Csak rövid pillantást vetettünk rá - a nyers adatoktól az előre feldolgozott információkig -, mindez megvan. Csak ismerje az eszközeit. Hogy megismerkedjen velük, vegyen egy kis időt, és játsszon velük.

Ez a Linux kernel memóriakezelés sorozatának 2. része.  Az 1. rész a Swap Memory témakörével foglalkozik, a sorozat harmadik részében a memória használatának optimalizálásával foglalkozunk. Ez magában foglalja a ramdiskek kezelését, valamint a tömörített swap fájlokat.

Linkek és hivatkozások

Linux memóriakezelő sorozat

Köszönetnyilvánítás

A szerző köszönetet mond Mandy Neumeyer és Gerold Rupprecht támogatásáért a cikk elkészítése során.

Az egér és az érintőpadok görgetési irányának megfordítása a Windows 10 rendszerben
Egér és Érintőpads nemcsak a számítást könnyűvé, de hatékonyabbá és kevésbé időigényessé is teszi. Nem tudunk elképzelni egy életet ezek nélkül az esz...
Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...
Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...