Mälu

Käsud Linuxi mälu haldamiseks

Käsud Linuxi mälu haldamiseks
UNIX / Linuxi süsteemid sisaldavad käsurea tööriista peaaegu kõigeks. See hõlmab ka programme, mis käsitlevad mälu. Selles artiklis näitame teile valikut käske, mis on teile kui Linuxi kasutajale üsna kasulikud.

Riistvara tuvastamiseks kasutage dmidecode'i

Automaatne riistvara tuvastamine on alati olnud natuke nagu loterii, kuid see muutus viimastel aastatel paremaks, kuna paljud tootjad dokumenteerivad oma tooteid üksikasjalikumalt ja neil on ka veebis konkreetne teave. Arvutisse installitud RAM-i riistvara kohta teabe saamiseks kasutage nuppu dmidekood käsk (pakett Debiani GNU / Linuxile, Ubuntu ja Linux Mintile: dmidecode).

Muu hulgas esitab see tööriist üksikasjalikke andmeid installitud süsteemikomponentide kohta, nagu protsessor, põrandalaud ja RAM. Teave põhineb töölaua halduse liidesel (DMI) [1], mis on raamistik, mis klassifitseerib lauaarvuti, sülearvuti või serveri üksikud komponendid, eraldades need komponendid neid haldavast tarkvarast [2]. Valik --tüüpi mälu viitab mäluseadmetele. Teiste DMI-klasside jaoks vaadake lehte dmidekood.

# dmidecode - tüüpi mälu
# dmidekood 2.12
SMBIOS 2.7 kohal.
Käepide 0x0007, DMI tüüp 16, 23 baiti
Füüsiline mälumass
Asukoht: emaplaat või emaplaat
Kasutamine: süsteemimälu
Veaparanduse tüüp: puudub
Maksimaalne maht: 16 GB
Veateabe käepide: pole esitatud
Seadmete arv: 1
Käepide 0x0008, DMI tüüp 17, 34 baiti
Mäluseade
Massiivi käepide: 0x0007
Veateabe käepide: pole esitatud
Kogulaius: 64 bitti
Andmete laius: 64 bitti
Suurus: 8192 MB
Vormitegur: SODIMM
Komplekt: puudub
Lokaator: ChannelA-DIMM0
Panga leidja: BANK 0
Tüüp: DDR3
Tüübi detail: sünkroonne
Kiirus: 1600 MHz
Tootja: Samsung
Seerianumber: 25252105
Vara silt: puudub
Osa number: M471B1G73DB0-YK0
Koht: teadmata
Konfigureeritud kella kiirus: 1600 MHz

See masin on praegu varustatud 8G DDR3 RAM-iga, mille konfigureeritud taktsagedus on 1600 MHz. Nagu näete, on rongisisese RAM-i maksimaalne vaba maht 16G, mis tähendab, et seda saab pikendada teise 8G mooduliga.

Graafiline teave mälus

Kui eelistate selle teabe hankimiseks graafilist liidest, võivad tööriistad Hardinfo [3] ja riistvaraleht (GTK + versioon) [4] teile huvi pakkuda. Debiani GNU / Linuxis, Ubuntu ja Linux Mintis on need programmid saadaval pakettide hardinfo ja lshw-gtk kaudu. Joonisel 2 on kujutatud Hardinfo kasutajaliides, kus kuvatakse Xubuntu installi mäluteave.

Kui palju mälu on praegu saadaval

Mõnikord on vähem rohkem. Käsureal on teave mälu kohta saadaval tasuta käsk. Debiani GNU / Linuxi, Ubuntu ja Linux Mint puhul on see programm osa procps-paketist [5]. Joonis 2 näitab väljundit terminaliaknas.

Edasiste valikute valikuna, tasuta aktsepteerib erinevaid parameetreid, näiteks:

Joonisel 3 on väljund näidatud megabaitides, kasutades valikut -m. Süsteemil on 4G RAM-i, samal ajal kui 725M on praegu kasutusel.

Mäluteave Linuxi kerneli vaatenurgast

Eespool nimetatud tööriistad tuginevad toorele teabele, mida hoitakse Linuxi kerneli proc-failisüsteemis. Nende üksikasjade kuvamiseks väljastage faili sisu / proc / meminfo kasutades kass terminali utiliit:

$ kass / proc / meminfo
MemKokku: 7888704 kB
MemFree: 302852 kB
MäluSaadaval: 448824 kB
Puhvrid: 17828 kB
Vahemälu: 326104 kB
Vahetatud vahemälu: 69592 kB
Aktiivne: 2497184 kB
Mitteaktiivne: 650912 kB
Aktiivne (anon): 2338748 kB
Mitteaktiivne (anoon): 525316 kB
Aktiivne (fail): 158436 kB
Mitteaktiivne (fail): 125596 kB
Paratamatu: 64 kB
Lukustatud: 64 kB
Vaheta kokku: 16150524 kB
Vahetusvaba: 15668480 kB
Määrdunud: 3008 kB
Tagasiside: 0 kB
AnonPages: 2774656 kB
Kaardistatud: 4414752 kB
Shmem: 59900 kB
Plaat: 130216 kB
Nõuatav: 61748 kB
Nõue tagasi nõuda: 68468 kB
Kerneli virn: 7328 kB
Lehe tabelid: 42844 kB
NFS_Ustabiilne: 0 kB
Põrge: 0 kB
WritebackTmp: 0 kB
CommitLimit: 20094876 kB
Kohustatud_AS: 10344988 kB
VmallocKokku: 34359738367 kB
Kasutatud: 367296 kB
VmallocChunk: 34359345768 kB
RiistvaraKorruptsioon: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Suur leht: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$

Täpsemat statistilist teavet protsessori kasutamise, mälu ja protsesside kohta võite vaadata tööriistadest vmstat, ja iostat (Debiani paketid procps ja sysstat).

Töö protsessidega - ps, htop ja pstree

Linuxi süsteemi aktiivsete protsesside kuvamiseks kasutage ps käsk. Tavaliselt sorteeritakse väljund tähestiku järgi. Kuid ps käsuga saab teha palju enamat. Kasutades suvandeid aux --sort -rss protsesside loendi väljund on järjestatud nende mälukasutuse järgi ülalt alla. Joonisel 4 on näidatud protsessid, millel on kõige rohkem mälu. Väljund on sorteeritud 6. veeru pealkirjaga RSS, mis lühendab elanike komplekti suurust. Väärtus on antud kilobaitides.

Käsklused ps, pstree ja htop on nende tööriistade kuvatava teabe osas tihedalt seotud. Mõlemad pstree ja htop kuvage graafik protsessi sõltuvuste visualiseerimiseks. htop toimib interaktiivse versioonina, mis võimaldab teil protsesside loendit üles ja alla kerida. Joonis 5 näitab htop töölaua süsteemis, kus on valitud protsessid, mis on sorteeritud nende konkreetse mälukasutuse järgi (5. veerg).

Vahetusmälu kasutavate protsesside leidmine

Mida rohkem protsesse käivitatakse, seda rohkem mälu samal ajal kasutatakse. Niipea kui teie Linuxi süsteemis saavad kasutamata mälulehed otsa, otsustab Linuxi tuum vahetada mälulehed kettale, kasutades kõige vähem kasutatud (LRU) meetodit. Küsimusele vastamiseks, millised protsessid kasutavad vahetusmälu ja kui palju eriti kasutatakse, võite vaadata tipp-programmi väljundit. 2016. aastal avaldas Erik Ljungstrom lühikirjelduse selle kohta, kuidas seda teavet hankida ja laiendada seda veergu ülemise väljundini [6]. Joonisel 6 on kujutatud see väljund süsteemis, mille RAM-is on palju mälulehti ja mis ei kasuta praegu vahetust.

Lisaks avaldas ta 2011. aastal juba bashi skripti, mis hindab proc-failisüsteemist saadud teavet, et kuvada vahetusprotsessi kasutamine protsesside kaupa [7]. Isegi 7 aastat hiljem ja juba vananenuna kirjeldatud skript on endiselt suurepärane ja näitab, kuidas Linuxi süsteemis ülesandeid automatiseerida. Seetõttu oleme kindlad, et on kasulik seda veel kord siin näidata.

Skripti väljund on järgmine (käivitage kui juur (kui kasutaja otsis täielikud andmed):

# ./ vahetada.sh
PID = 1 - kasutatud vahetus: 0 - (systemd)
PID = 2 - kasutatud vahetus: 0 - (kthreadd)
PID = 3 - kasutatud vahetus: 0 - (ksoftirqd / 0)
PID = 5 - kasutatud vahetus: 0 - (kworker / 0: 0H)
PID = 6 - kasutatud vahetus: 0 - (kworker / u16: 0)
PID = 7 - kasutatud vahetus: 0 - (rcu_sched)
PID = 8 - kasutatud vahetus: 0 - (rcu_bh)
PID = 9 - kasutatud vahetus: 0 - (migratsioon / 0)
PID = 10 - kasutatud vahetus: 0 - (valvekoer / 0)
PID = 11 - kasutatud vahetus: 0 - (valvekoer / 1)
PID = 12 - kasutatud vahetus: 0 - (migratsioon / 1)
PID = 13 - kasutatud vahetus: 0 - (ksoftirqd / 1)
PID = 15 - kasutatud vahetus: 0 - (kworker / 1: 0H)
PID = 16 - kasutatud vahetus: 0 - (valvekoer / 2)
PID = 17 - kasutatud vahetus: 0 - (migratsioon / 2)
PID = 18 - kasutatud vahetus: 0 - (ksoftirqd / 2)
PID = 20 - kasutatud vahetus: 0 - (kworker / 2: 0H)

#

Järeldus

Linuxi tööriistakast sisaldab lõputut loendit saadaolevatest programmidest, mis aitavad teil Linuxi süsteemi mälukasutust analüüsida. Vaatasime lihtsalt lühidalt - algandmetest eeltöödeldud teabeni - kõik see on olemas. Lihtsalt teadke oma tööriistu. Nendega tutvumiseks võtke natuke aega ja mängige nendega.

See on Linuxi tuuma mäluhalduse seeria 2. osa.  1. osas käsitletakse mälu vahetamist, selle sarja kolmandas osas käsitleme, kuidas optimeerida mälukasutust. See hõlmab nii ramdiskide kui ka tihendatud swap-failide haldamist.

Lingid ja viited

Linuxi mäluhalduse seeria

Tänusõnad

Autor soovib tänada Mandy Neumeyeri ja Gerold Rupprechti toetuse eest selle artikli ettevalmistamisel.

Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...
Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...