Memorija

Naredbe za upravljanje Linux memorijom

Naredbe za upravljanje Linux memorijom
UNIX / Linux sustavi sadrže alat za naredbene retke za gotovo sve. To uključuje i programe za rukovanje memorijom. U ovom ćemo vam članku pokazati odabir naredbi koje su vam vrlo korisne kao Linuxu.

Otkrijte hardver pomoću dmidecode-a

Automatsko otkrivanje hardvera uvijek je bilo pomalo nalik lutriji, ali posljednjih je godina postalo sve bolje jer mnogi proizvođači detaljnije dokumentiraju svoje proizvode, a posebne informacije dostupne su i na mreži. Da biste saznali više o hardverskim informacijama u vezi s RAM-om instaliranim u vašem računalu, upotrijebite dmidecode naredba (paket za Debian GNU / Linux, Ubuntu i Linux Mint: dmidecode).

Između ostalih informacija, ovaj alat izvještava detaljne podatke o instaliranim komponentama sustava poput procesora, osnovne ploče i RAM-a. Podaci se temelje na Desktop Management Interface (DMI) [1], što je okvir koji klasificira pojedinačne komponente na radnoj površini, prijenosnom računalu ili poslužitelju apstrahirajući te komponente iz softvera koji njima upravlja [2]. Mogućnost --memorija tipa odnosi se na memorijske uređaje. Za ostale DMI klase pogledajte stranicu s priručnikom za dmidecode.

# dmidecode - memorija tipa
# dmidecode 2.12
SMBIOS 2.7 prisutnih.
Ručka 0x0007, DMI tip 16, 23 bajta
Niz fizičke memorije
Mjesto: matična ploča ili matična ploča
Upotreba: Memorija sustava
Vrsta ispravljanja pogreške: Nema
Maksimalni kapacitet: 16 GB
Ručka s informacijama o pogreškama: Nije navedena
Broj uređaja: 1
Ručka 0x0008, DMI tip 17, 34 bajta
Memorijski uređaj
Ručka niza: 0x0007
Ručka s informacijama o pogreškama: Nije navedena
Ukupna širina: 64 bita
Širina podataka: 64 bita
Veličina: 8192 MB
Faktor oblika: SODIMM
Set: Nijedan
Lokator: KanalA-DIMM0
Lokator banke: BANKA 0
Tip: DDR3
Pojedinosti o tipu: Sinkroni
Brzina: 1600 MHz
Proizvođač: Samsung
Serijski broj: 25252105
Oznaka imovine: Nijedna
Broj dijela: M471B1G73DB0-YK0
Poredak: nepoznat
Konfigurirana brzina takta: 1600 MHz

Ovaj je stroj trenutno opremljen 8G DDR3 RAM-om s konfiguriranom brzinom od 1600 MHz. Kao što vidite, maksimalni raspoloživi kapacitet ugrađene RAM-ove je 16G, što znači da se može proširiti drugim 8G modulom.

Grafički podaci o memoriji

U slučaju da više volite grafičko sučelje za preuzimanje ovih podataka, alati Hardinfo [3] i Hardware Lister (verzija GTK +) [4] mogli bi vas zanimati. Na Debian GNU / Linux, Ubuntu i Linux Mint ovi su programi dostupni putem paketa hardinfo i lshw-gtk. Na slici 2 prikazano je korisničko sučelje Hardinfo-a koje prikazuje podatke o memoriji na Xubuntu instalaciji.

Koliko je trenutno dostupne memorije

Ponekad je manje više. Na naredbenom retku informacije o memoriji dostupne su putem besplatno naredba. Na Debian GNU / Linux, Ubuntu i Linux Mint ovaj je program dio procps paketa [5]. Slika 2 prikazuje izlaz u prozoru terminala.

Kao izbor daljnjih opcija, besplatno prihvaća razne parametre kao što su:

Na slici 3 izlaz je prikazan u megabajtima pomoću opcije -m. Sustav ima 4G RAM-a dok je 725M trenutno u upotrebi.

Informacije o memoriji s gledišta jezgre Linuxa

Gore spomenuti alati oslanjaju se na sirove informacije koje se čuvaju u proc datotečnom sustavu Linux jezgre. Da biste prikazali ove detalje, iznesite sadržaj datoteke / proc / meminfo koristiti mačka uslužni program u terminalu:

$ mačka / proc / meminfo
MemTotal: 7888704 kB
MemFree: 302852 kB
MemDostupno: 448824 kB
Me uspremnici: 17828 kB
Predmemorirano: 326104 kB
Zamijenjeno u privremenu memoriju: 69592 kB
Aktivno: 2497184 kB
Neaktivno: 650912 kB
Aktivno (anonimno): 2338748 kB
Neaktivno (anonimno): 525316 kB
Aktivno (datoteka): 158436 kB
Neaktivno (datoteka): 125596 kB
Neizbježno: 64 kB
Zaključano: 64 kB
SwapTotal: 16150524 kB
ZamjenaBesplatno: 15668480 kB
Prljavo: 3008 kB
Povratni povrat: 0 kB
AnonStranice: 2774656 kB
Mapirano: 4414752 kB
Shmem: 59900 kB
Ploča: 130216 kB
SRPritošivo: 61748 kB
SUnreclaim: 68468 kB
KernelStack: 7328 kB
Tablice stranica: 42844 kB
NFS_Nestabilno: 0 kB
Odskok: 0 kB
Povratna vrijednostTmp: 0 kB
Obveza ograničenja: 20094876 kB
Obvezani_AS: 10344988 kB
VmallocUkupno: 34359738367 kB
VmallocKorišteno: 367296 kB
VmallocChunk: 34359345768 kB
Oštećen hardver: 0 kB
AnonHugePages: 0 kB
Ogromnih stranica_Total: 0
Ogromne stranice_Besplatno: 0
Ogromne stranice_Rsvd: 0
Ogromne stranice_Surp: 0
Ogromna veličina stranice: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$

Za više statističkih podataka o korištenju procesora, memoriji i procesima, možete pogledati alate vmstat, i iostat (Debian paketi procps i sysstat).

Rad s procesima - ps, htop i pstree

Za prikaz aktivnih procesa vašeg Linux sustava koristite p.s naredba. Izlaz se obično sortira po abecedi. Ali p.s naredba može puno više. Koristeći opcije aux --razvrstati -rss izlaz popisa procesa sortiran je prema njihovoj upotrebi memorije redoslijedom odozgo prema dolje. Slika 4 prikazuje procese koji imaju najveću potražnju za memorijom. Izlaz je sortiran po šestom stupcu pod nazivom RSS koji skraćuje Resident Set Size. Vrijednost je dana u kilobajtima.

Naredbe ps, pstree i htop usko su povezani u pogledu podataka koje ovi alati prikazuju. Oba pstree i htop prikazati graf za vizualizaciju procesnih ovisnosti. htop djeluje kao interaktivna verzija koja vam omogućuje pomicanje popisa procesa gore-dolje. Slika 5 prikazuje htop na stolnom sustavu s izborom procesa sortiranih prema njihovoj specifičnoj upotrebi memorije (5. stupac).

Pronalaženje procesa koji koriste zamjensku memoriju

Što se više procesa pokrene, istodobno se koristi više memorije. Čim vaš Linux sustav ostane bez neiskorištenih memorijskih stranica, Linux kernel odluči zamijeniti memorijske stranice na disk metodom Najmanje nedavno korišteno (LRU). Da biste odgovorili na pitanje koji procesi koriste zamjensku memoriju i koliko se posebno koristi, možete pogledati izlaz najboljeg programa. 2016. Erik Ljungstrom objavio je kratki opis kako doći do tih podataka i proširiti ovaj stupac na izlaz vrha [6]. Slika 6 prikazuje ovaj izlaz na sustavu s preostalim brojem memorijskih stranica u RAM-u i koji trenutno ne koristi zamjenu.

Nadalje, 2011. godine već je objavio bash skriptu koja procjenjuje informacije iz proc datotečnog sustava kako bi prikazala upotrebu procesa zamjene po procesu [7]. Čak i 7 godina kasnije i već opisan kao zastario, skripta je i dalje izvrsna i pokazuje kako automatizirati zadatke na Linux sustavu. Zbog toga smo sigurni da je korisno to još jednom ovdje pokazati.

Izlaz skripte je sljedeći (pokrenite kao korijen korisnik dohvatiti sve podatke):

# ./ zamijeniti.sh
PID = 1 - Zamjena korištena: 0 - (systemd)
PID = 2 - Zamjena korištena: 0 - (kthreadd)
PID = 3 - Zamjena korištena: 0 - (ksoftirqd / 0)
PID = 5 - Zamjena korištena: 0 - (kworker / 0: 0H)
PID = 6 - Zamjena korištena: 0 - (kworker / u16: 0)
PID = 7 - Zamjena korištena: 0 - (rcu_sched)
PID = 8 - Zamjena korištena: 0 - (rcu_bh)
PID = 9 - Zamjena korištena: 0 - (migracija / 0)
PID = 10 - Zamjena korištena: 0 - (čuvar / 0)
PID = 11 - Zamjena korištena: 0 - (čuvar / 1)
PID = 12 - Zamjena korištena: 0 - (migracija / 1)
PID = 13 - Zamjena korištena: 0 - (ksoftirqd / 1)
PID = 15 - Zamjena korištena: 0 - (kworker / 1: 0H)
PID = 16 - Zamjena korištena: 0 - (čuvar / 2)
PID = 17 - Zamjena korištena: 0 - (migracija / 2)
PID = 18 - Zamjena korištena: 0 - (ksoftirqd / 2)
PID = 20 - Zamjena korištena: 0 - (kworker / 2: 0H)
..
#

Zaključak

Linuxov alatni okvir sadrži beskrajan popis dostupnih programa koji će vam pomoći da analizirate upotrebu memorije vašeg Linux sustava. Upravo smo kratko pogledali - od sirovih podataka do prethodno obrađenih informacija - sve je to tamo. Samo znajte svoje alate. Da biste se upoznali s njima, odvojite malo vremena i igrajte se s njima.

Ovo je dio 2 serije o Linux Kernel Memory Management.  Prvi dio govori o zamjenjivoj memoriji, u trećem dijelu ove serije razgovarat ćemo o tome kako optimizirati upotrebu memorije. To će uključivati ​​upravljanje ramdiskovima, kao i komprimirane swap datoteke.

Poveznice i reference

Serija Linux za upravljanje memorijom

Zahvalnice

Autor želi zahvaliti Mandy Neumeyer i Geroldu Rupprechtu na podršci tijekom pripreme ovog članka.

Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...
OpenTTD vs Simutrans
Stvaranje vlastite simulacije prijevoza može biti zabavno, opuštajuće i izuzetno primamljivo. Zbog toga morate isprobati što više igara kako biste pro...
Vodič za OpenTTD
OpenTTD je jedna od najpopularnijih igara za poslovnu simulaciju. U ovoj igri morate stvoriti prekrasan prijevoznički posao. Međutim, počet ćete u poč...