Spomin

Ukazi za upravljanje pomnilnika Linux

Ukazi za upravljanje pomnilnika Linux
Sistemi UNIX / Linux vsebujejo orodje ukazne vrstice za skoraj vse. Sem spadajo tudi programi za obdelavo pomnilnika. V tem članku vam pokažemo izbor ukazov, ki so vam zelo koristni kot uporabniku Linuxa.

Zaznajte strojno opremo s pomočjo dmidecode

Samodejno zaznavanje strojne opreme je bilo vedno podobno loteriji, v zadnjih letih pa se je izboljšalo, saj mnogi proizvajalci podrobneje dokumentirajo svoje izdelke in imajo posebne informacije na voljo tudi na spletu. Če želite izvedeti več o informacijah o strojni opremi glede RAM-a, nameščenega v vaši napravi, uporabite dmidecode ukaz (paket za Debian GNU / Linux, Ubuntu in Linux Mint: dmidecode).

To orodje med drugim vsebuje podrobne podatke o nameščenih sistemskih komponentah, kot so procesor, osnovna plošča in RAM. Informacije temeljijo na namiznem vmesniku za upravljanje namizja (DMI) [1], ki je okvir, ki posamezne komponente na namizju, prenosniku ali strežniku razvrsti tako, da te komponente odvzame iz programske opreme, ki z njimi upravlja [2]. Možnost --vnesite pomnilnik se nanaša na pomnilniške naprave. Za ostale razrede DMI si oglejte stran z navodili za dmidecode.

# dmidecode --tip pomnilnika
# dmidecode 2.12
SMBIOS 2.7 navzočih.
Ročaj 0x0007, tip DMI 16, 23 bajtov
Fizični pomnilniški niz
Lokacija: sistemska plošča ali matična plošča
Uporaba: sistemski pomnilnik
Vrsta popravka napake: Brez
Največja zmogljivost: 16 GB
Ročaj z informacijami o napakah: Ni na voljo
Število naprav: 1
Ročaj 0x0008, tip DMI 17, 34 bajtov
Pomnilniška naprava
Ročaj matrike: 0x0007
Ročaj z informacijami o napakah: Ni na voljo
Skupna širina: 64 bitov
Širina podatkov: 64 bitov
Velikost: 8192 MB
Faktor oblike: SODIMM
Set: Brez
Locator: ChannelA-DIMM0
Lokater banke: BANKA 0
Vrsta: DDR3
Podrobnosti tipa: sinhrono
Hitrost: 1600 MHz
Proizvajalec: Samsung
Serijska številka: 25252105
Oznaka sredstva: Brez
Številka dela: M471B1G73DB0-YK0
Uvrstitev: neznano
Konfigurirana taktna hitrost: 1600 MHz

Ta naprava je trenutno opremljena z 8G DDR3 RAM-om s konfigurirano taktno hitrostjo 1600 MHz. Kot lahko vidite, je največja razpoložljiva kapaciteta vgrajenega RAM-a 16G, kar pomeni, da ga je mogoče razširiti z drugim 8G modulom.

Grafični podatki o pomnilniku

Če imate raje grafični vmesnik za pridobivanje teh informacij, bi vas lahko zanimali orodji Hardinfo [3] in Hardware Lister (različica GTK +) [4]. V Debian GNU / Linux, Ubuntu in Linux Mint so ti programi na voljo prek paketov hardinfo in lshw-gtk. Slika 2 prikazuje uporabniški vmesnik Hardinfo, ki prikazuje podatke o pomnilniku pri namestitvi Xubuntu.

Koliko pomnilnika je trenutno na voljo

Včasih je manj več. V ukazni vrstici so informacije o pomnilniku na voljo prek prost ukaz. Na Debian GNU / Linux, Ubuntu in Linux Mint je ta program del paketa procps [5]. Slika 2 prikazuje izhod v terminalskem oknu.

Kot izbor nadaljnjih možnosti, prost sprejema različne parametre, kot so:

Na sliki 3 je izhod prikazan v megabajtih z uporabo možnosti -m. Sistem ima 4G RAM-a, medtem ko je trenutno v uporabi 725M.

Informacije o pomnilniku z vidika jedra Linuxa

Zgoraj omenjena orodja se opirajo na surove informacije, ki se hranijo v datotečnem sistemu proc jedra Linuxa. Če želite prikazati te podrobnosti, iznesite vsebino datoteke / proc / meminfo uporabljati mačka pripomoček v terminalu:

$ cat / proc / meminfo
MemTotal: 7888704 kB
MemFree: 302852 kB
Mem Na voljo: 448824 kB
Odbojniki: 17828 kB
Predpomnjeno: 326104 kB
SwapCached: 69592 kB
Aktivno: 2497184 kB
Neaktivno: 650912 kB
Aktivno (anonimno): 2338748 kB
Neaktivno (anonimno): 525316 kB
Aktivno (datoteka): 158436 kB
Neaktivno (datoteka): 125596 kB
Nespremenljivo: 64 kB
Zaklenjeno: 64 kB
SwapTotal: 16150524 kB
Brez zamenjave: 15668480 kB
Umazano: 3008 kB
Povratni odpis: 0 kB
AnonStranice: 2774656 kB
Preslikana: 4414752 kB
Shmem: 59900 kB
Plošča: 130216 kB
SRIzrednost: 61748 kB
SUnreclaim: 68468 kB
KernelStack: 7328 kB
Tabele strani: 42844 kB
NFS_Nestabilno: 0 kB
Odboj: 0 kB
Povratni zapisTmp: 0 kB
ZaveziLimit: 20094876 kB
Zavezano_AS: 10344988 kB
VmallocSkupaj: 34359738367 kB
VmallocUporabljeno: 367296 kB
VmallocChunk: 34359345768 kB
Strojna oprema Poškodovana: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Ogromna velikost strani: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$

Za več statističnih informacij o uporabi procesorja, pomnilniku in procesih si lahko ogledate orodja vmstat, in iostat (Debian paketi procps in sysstat).

Delo s procesi - ps, htop in pstree

Za prikaz aktivnih procesov vašega sistema Linux uporabite ps ukaz. Običajno je izhod razvrščen po abecedi. Toda ps ukaz lahko veliko več. Uporaba možnosti pom --razvrsti -rss izhod seznama procesov je razvrščen po njihovi uporabi pomnilnika v vrstnem redu od zgoraj navzdol. Slika 4 prikazuje procese, ki najbolj zahtevajo pomnilnik. Izhod je razvrščen po šestem stolpcu z naslovom RSS, ki okrajša Resident Set Size. Vrednost je podana v kilobajtih.

Ukazi ps, pstree in htop so tesno povezane glede informacij, ki jih ta orodja prikazujejo. Oboje pstree in htop prikaže graf za vizualizacijo procesnih odvisnosti. htop deluje kot interaktivna različica, ki vam omogoča pomikanje po seznamu postopkov gor in dol. Slika 5 prikazuje htop v namiznem sistemu z izborom procesov, razvrščenih po njihovi specifični porabi pomnilnika (5. stolpec).

Iskanje procesov, ki uporabljajo swap pomnilnik

Več procesov se zažene, več pomnilnika je hkrati v uporabi. Takoj, ko v sistemu Linux zmanjka neuporabljenih pomnilniških strani, se jedro Linuxa odloči za zamenjavo pomnilniških strani na disk po metodi najmanj nedavno uporabljene (LRU). Če želite odgovoriti na vprašanje, kateri procesi uporabljajo swap pomnilnik in koliko ga še posebej uporabljate, si lahko ogledate izhod najboljšega programa. Leta 2016 je Erik Ljungstrom objavil kratek opis, kako pridobiti te informacije in razširiti ta stolpec na izhod na vrh [6]. Na sliki 6 je ta izhod prikazan v sistemu, ki ima v RAM-u še veliko pomnilniških strani in trenutno ne uporablja zamenjave.

Poleg tega je leta 2011 že objavil bash skript, ki ocenjuje informacije iz datotečnega sistema proc, da prikaže uporabo postopka zamenjave po postopku [7]. Tudi 7 let kasneje in že opisan kot zastarel, je skript še vedno odličen in prikazuje, kako avtomatizirati naloge v sistemu Linux. Zato smo prepričani, da je koristno, da ga še enkrat pokažemo tukaj.

Rezultat skripta je naslednji (zaženite kot koren uporabnik pridobi celotne podatke):

# ./ zamenjaj.sh
PID = 1 - Uporabljena zamenjava: 0 - (systemd)
PID = 2 - Uporabljena zamenjava: 0 - (kthreadd)
PID = 3 - Uporabljena zamenjava: 0 - (ksoftirqd / 0)
PID = 5 - Uporabljena zamenjava: 0 - (kworker / 0: 0H)
PID = 6 - Uporabljena zamenjava: 0 - (kworker / u16: 0)
PID = 7 - Uporabljena zamenjava: 0 - (rcu_sched)
PID = 8 - Uporabljena zamenjava: 0 - (rcu_bh)
PID = 9 - Uporabljena zamenjava: 0 - (migracija / 0)
PID = 10 - Uporabljena zamenjava: 0 - (čuvaj / 0)
PID = 11 - Uporabljena zamenjava: 0 - (čuvaj / 1)
PID = 12 - Uporabljena zamenjava: 0 - (migracija / 1)
PID = 13 - Uporabljena zamenjava: 0 - (ksoftirqd / 1)
PID = 15 - Uporabljena zamenjava: 0 - (kworker / 1: 0H)
PID = 16 - Uporabljena zamenjava: 0 - (čuvaj / 2)
PID = 17 - Uporabljena zamenjava: 0 - (migracija / 2)
PID = 18 - Uporabljena zamenjava: 0 - (ksoftirqd / 2)
PID = 20 - Uporabljena zamenjava: 0 - (kworker / 2: 0H)
..
#

Zaključek

V orodjarni Linux je neskončen seznam programov, ki so na voljo za analizo uporabe pomnilnika vašega sistema Linux. Pravkar smo si na kratko ogledali - od surovih podatkov do vnaprej obdelanih informacij - vse je tam. Samo poznajte svoje orodje. Če se želite seznaniti z njimi, si vzemite nekaj časa in se z njimi igrajte.

To je 2. del serije o upravljanju pomnilnika jedra Linuxa.  Prvi del obravnava zamenjavo pomnilnika, v tretjem delu te serije bomo razpravljali o tem, kako optimizirati uporabo pomnilnika. To bo vključevalo upravljanje diskov in stisnjenih datotek za zamenjavo.

Povezave in reference

Serija za upravljanje pomnilnika Linux

Zahvala

Avtor se zahvaljuje Mandy Neumeyer in Geroldu Rupprechtu za podporo pri pripravi tega članka.

Uporabna orodja za igralce Linux
Če radi igrate igre na Linuxu, obstaja verjetnost, da ste za izboljšanje igralne izkušnje uporabljali aplikacije in pripomočke, kot so Wine, Lutris in...
HD Remastered Games za Linux, ki prej še niso izdale Linuxa
Mnogi razvijalci iger in založniki pripravijo HD remaster starih iger, da podaljšajo življenjsko dobo franšize, zato oboževalci zahtevajo združljivost...
Kako uporabljati AutoKey za avtomatizacijo iger Linux
AutoKey je namizni pripomoček za avtomatizacijo za Linux in X11, programiran v Python 3, GTK in Qt. Z njegovo funkcijo skriptiranja in MACRO lahko avt...