Atmintis

„Linux“ atminties valdymo komandos

„Linux“ atminties valdymo komandos
UNIX / Linux sistemose yra komandinės eilutės įrankis beveik viskam. Tai taip pat apima programas, skirtas atminties tvarkymui. Šiame straipsnyje parodome komandų pasirinkimą, kuris jums, kaip „Linux“ vartotojui, yra labai naudingas.

Aptikite aparatinę įrangą naudodami „dmidecode“

Automatinis aparatūros aptikimas visada buvo šiek tiek panašus į loteriją, tačiau per pastaruosius metus jis pagerėjo, nes daugelis gamintojų išsamiau dokumentuoja savo produktus ir turi konkrečią informaciją internete. Norėdami sužinoti apie aparatūros informaciją apie jūsų kompiuteryje įdiegtą RAM, naudokite dmidekodas komanda („Debian GNU / Linux“, „Ubuntu“ ir „Linux Mint“ paketas: dmidecode).

Be kitos informacijos, šis įrankis pateikia išsamius duomenis apie įdiegtus sistemos komponentus, tokius kaip procesorius, pagrindinė plokštė ir RAM. Informacija pagrįsta darbalaukio valdymo sąsaja (DMI) [1], kuri yra sistema, kuri klasifikuoja atskirus darbalaukio, nešiojamojo kompiuterio ar serverio komponentus, abstrahuodama šiuos komponentus iš juos valdančios programinės įrangos [2]. Variantas --tipo atmintis reiškia atminties įrenginius. Kitų DMI klasių ieškokite vadovo puslapyje dmidekodas.

# dmidecode - tipo atmintis
# dmidekodas 2.12
SMBIOS 2.7 dabar.
Rankena 0x0007, DMI tipas 16, 23 baitai
Fizinės atminties masyvas
Vieta: sistemos plokštė arba pagrindinė plokštė
Naudojimas: sistemos atmintis
Klaidų taisymo tipas: nėra
Didžiausia talpa: 16 GB
Klaidos informacijos tvarkyklė: nepateikta
Įrenginių skaičius: 1
Rankena 0x0008, DMI tipas 17, 34 baitai
Atminties įrenginys
Masyvo rankena: 0x0007
Klaidos informacijos tvarkyklė: nepateikta
Bendras plotis: 64 bitai
Duomenų plotis: 64 bitai
Dydis: 8192 MB
Formos faktorius: SODIMM
Rinkinys: nėra
Lokatorius: ChannelA-DIMM0
Banko lokatorius: BANK 0
Tipas: DDR3
Tipo informacija: Sinchroninis
Greitis: 1600 MHz
Gamintojas: „Samsung“
Serijos numeris: 25252105
Turto žyma: nėra
Dalies numeris: M471B1G73DB0-YK0
Reitingas: nežinoma
Konfigūruotas laikrodžio greitis: 1600 MHz

Šiuo metu šioje mašinoje yra 8G DDR3 RAM su sukonfigūruotu 1600 MHz taktiniu dažniu. Kaip matote, didžiausia RAM atminties talpa yra 16G, o tai reiškia, kad ją galima išplėsti antruoju 8G moduliu.

Grafinė informacija atmintyje

Jei norite gauti grafinę sąsają, kad gautumėte šią informaciją, įrankiai „Hardinfo“ [3] ir „Hardware Lister“ (GTK + versija) [4] gali jus dominti. Debian GNU / Linux, Ubuntu ir Linux Mint šias programas galima rasti paketuose hardinfo ir lshw-gtk. 2 paveiksle parodyta „Hardinfo“ vartotojo sąsaja, rodanti atminties informaciją „Xubuntu“ diegime.

Kiek atminties šiuo metu yra

Kartais mažiau yra daugiau. Komandų eilutėje informaciją apie atmintį galima rasti naudojant Laisvas komandą. Debian GNU / Linux, Ubuntu ir Linux Mint ši programa yra procps paketo dalis [5]. 2 paveiksle parodytas išėjimas terminalo lange.

Kaip kitų variantų pasirinkimas, Laisvas priima įvairius parametrus, tokius kaip:

3 paveiksle išvestis rodoma megabaitais, naudojant parinktį -m. Sistemoje yra 4G RAM, o šiuo metu naudojama 725M.

Atminties informacija „Linux“ branduolio požiūriu

Aukščiau paminėti įrankiai remiasi neapdorota informacija, kuri laikoma „Linux“ branduolio proc failų sistemoje. Norėdami parodyti šią informaciją, išveskite failo turinį / proc / meminfo naudojant katė naudingumas terminale:

$ cat / proc / meminfo
Iš viso: 7888704 kB
„MemFree“: 302852 kB
Galimas: 448824 kB
Buferiai: 17828 kB
Talpykla: 326104 kB
„SwapCached“: 69592 kB
Aktyvus: 2497184 kB
Neaktyvus: 650912 kB
Aktyvus (anonas): 2338748 kB
Neaktyvus (anonas): 525316 kB
Aktyvus (failas): 158436 kB
Neaktyvus (byla): 125596 kB
Neišvengiama: 64 kB
Užrakinta: 64 kB
Apsikeitimo suma: 16150524 kB
Nemokamas apsikeitimas: 15668480 kB
Purvinas: 3008 kB
Nurašymas: 0 kB
„AnonPages“: 2774656 kB
Žemėlapis: 4414752 kB
Šmemas: 59900 kB
Plokštė: 130216 kB
Reikalaujama: 61748 kB
Nereikalauti: 68468 kB
„Branduolio krūva“: 7328 kB
Puslapių lentelės: 42844 kB
NFS_ nestabilus: 0 kB
Atmetimas: 0 kB
WritebackTmp: 0 kB
„CommitLimit“: 20094876 kB
Įsipareigota_AS: 10344988 kB
Iš viso: 34359738367 kB
Naudotas: 367296 kB
„VmallocChunk“: 34359345768 kB
Aparatinė įranga sugadinta: 0 kB
„AnonHugePages“: 0 kB
„HugePages_Total“: 0
„HugePages_Free“: 0
„HugePages_Rsvd“: 0
„HugePages_Surp“: 0
Puslapio dydis: 2048 kB
„DirectMap4k“: 78448 kB
„DirectMap2M“: 2756608 kB
„DirectMap1G“: 5242880 kB
$

Norėdami gauti daugiau statistinės informacijos apie procesoriaus naudojimą, atmintį ir procesus, galite pažvelgti į įrankius vmstat, ir iostat („Debian“ paketai procps ir sysstat).

Darbas su procesais - ps, htop ir pstree

Norėdami parodyti aktyvius „Linux“ sistemos procesus, naudokite ps komandą. Paprastai išvestis rūšiuojama abėcėlės tvarka. Bet ps komanda gali padaryti daug daugiau. Naudojant parinktis aux --rūšiuoti -rss procesų sąrašo išvestis rūšiuojama pagal jų atminties naudojimą tvarka iš viršaus į apačią. 4 paveiksle parodyti procesai, kurių atminties poreikis yra didžiausias. Išvestis rūšiuojama pagal 6-ąjį stulpelį RSS, kuris sutrumpina gyventojo rinkinio dydį. Vertė pateikiama kilobaitais.

Komandos ps, pstree ir htop yra glaudžiai susiję su informacija, kurią rodo šie įrankiai. Tiek pstree ir htop rodyti grafiką, kad būtų galima vizualizuoti proceso priklausomybes. htop veikia kaip interaktyvi versija, leidžianti slinkti procesų sąrašą aukštyn ir žemyn. 5 paveiksle parodyta htop darbalaukio sistemoje su procesų pasirinkimu, surūšiuotu pagal konkretų atminties naudojimą (5 stulpelis).

Ieškokite procesų, kurie naudoja „Swap“ atmintį

Kuo daugiau procesų paleidžiama, tuo daugiau atminties naudojama tuo pačiu metu. Kai tik jūsų „Linux“ sistemoje baigsis nenaudojami atminties puslapiai, „Linux“ branduolys nusprendžia pakeisti atminties puslapius į diską naudodamas mažiausiai naudojamų (LRU) metodą. Norėdami atsakyti į klausimą, kurie procesai naudoja apsikeitimo atmintį ir kiek jų naudojama ypač, galite pažvelgti į geriausios programos išvestį. 2016 m. Erikas Ljungstromas paskelbė trumpą aprašymą, kaip gauti tą informaciją ir išplėsti šį stulpelį iki viršutinės dalies išvesties [6]. 6 paveiksle parodyta ši išvestis sistemoje, kurioje yra daug atminties puslapių RAM atmintyje ir kuri šiuo metu nenaudoja „Swap“.

Be to, 2011 m. Jis jau paskelbė „bash“ scenarijų, kuriame vertinama informacija iš proc failų sistemos, kad būtų rodomas apsikeitimo proceso naudojimas pagal procesą [7]. Net praėjus 7 metams ir jau apibūdinamas kaip pasenęs, scenarijus vis dar yra puikus ir parodo, kaip automatizuoti užduotis „Linux“ sistemoje. Štai kodėl esame tikri, kad naudinga tai dar kartą parodyti.

Scenarijaus išvestis yra tokia (paleiskite kaip šaknis gauti visus duomenis):

# ./ sukeisti.sh
PID = 1 - naudotas apsikeitimas: 0 - (systemd)
PID = 2 - naudotas apsikeitimas: 0 - (kthreadd)
PID = 3 - naudotas apsikeitimas: 0 - (ksoftirqd / 0)
PID = 5 - naudotas apsikeitimas: 0 - („kworker“ / 0: 0H)
PID = 6 - naudotas apsikeitimas: 0 - („kworker“ / u16: 0)
PID = 7 - naudotas apsikeitimas: 0 - (rcu_sched)
PID = 8 - naudotas apsikeitimas: 0 - (rcu_bh)
PID = 9 - naudotas apsikeitimas: 0 - (migracija / 0)
PID = 10 - naudotas apsikeitimas: 0 - (sargas / 0)
PID = 11 - naudotas apsikeitimas: 0 - (sargas / 1)
PID = 12 - naudotas apsikeitimas: 0 - (migracija / 1)
PID = 13 - naudotas apsikeitimas: 0 - (ksoftirqd / 1)
PID = 15 - naudotas apsikeitimas: 0 - („kworker“ / 1: 0H)
PID = 16 - naudotas apsikeitimas: 0 - (sargas / 2)
PID = 17 - naudotas apsikeitimas: 0 - (migracija / 2)
PID = 18 - naudotas apsikeitimas: 0 - (ksoftirqd / 2)
PID = 20 - naudotas apsikeitimas: 0 - („kworker“ / 2: 0H)

#

Išvada

„Linux“ įrankių rinkinyje yra begalinis galimų programų sąrašas, kuris padės analizuoti „Linux“ sistemos atminties naudojimą. Mes ką tik trumpai apžvelgėme - nuo neapdorotų duomenų iki iš anksto apdorotos informacijos - visa tai yra. Tiesiog žinok savo įrankius. Norėdami su jais susipažinti, skirkite šiek tiek laiko ir žaiskite su jais.

Tai yra „Linux Kernel Memory Management“ serijos 2 dalis.  1 dalyje aptariama „Swap Memory“, trečioje šios serijos dalyje aptarsime, kaip optimizuoti atminties naudojimą. Tai apims ramdiskų, taip pat suglaudintų apsikeitimo failų valdymą.

Nuorodos ir nuorodos

„Linux“ atminties valdymo serija

Padėkos

Autorius norėtų padėkoti Mandy Neumeyer ir Gerold Rupprecht už palaikymą rengiant šį straipsnį.

„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...
Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...