Kuptoni lehtësisht përdorimin tuaj të RAM-it në Linux me Smem
Përdorimi i memories Linux mund të jetë i vështirë për t'u interpretuar dhe i vështirë për t'u kuptuar. Me smem
është e lehtë të zbulosh se çfarë memorie po përdor një proces dhe cilat procese po përdorin më shumë.
Përdorimi i memories
Linux ju ofron shumë mënyra për të kontrolluar se çfarë po ndodh me RAM-in e kompjuterit tuaj. Problemi është se menaxhimi i kujtesës është një sfidë e ndërlikuar për sistemin tuaj operativ. Ai duhet të mashtrojë RAM-in fizik, RAM-in virtual në formën e hapësirës së shkëmbimit dhe kërkesat e llojeve të ndryshme të proceseve që po ekzekutohen në çdo kohë.
Proceset konsumojnë RAM ndërsa ngarkohen në memorie. Ata më pas kërkojnë më shumë RAM, në mënyrë që të kenë hapësirë për të kryer çfarëdo detyre që janë krijuar për të bërë. Disa procese vështirë se ndikojnë në RAM, të tjerët janë shumë të etur për memorie.
Kerneli dhe pjesa tjetër e sistemit operativ, mjedisi i desktopit tuaj dhe çdo aplikacion ose sesion i linjës së komandës që ekzekutoni, të gjitha kërkojnë një pjesë të sasisë së kufizuar të RAM-it të instaluar në kompjuterin tuaj. Disa procese krijojnë procese të tjera. Disa procese ndajnë RAM-in me procese të tjera.
Duke u përpjekur të deshifroni të gjitha këto dhe të gjeni një përgjigje të thjeshtë për pyetjen Sa RAM përdor ky program ose proces? mund të jetë një sfidë befasuese. Granulariteti është i shkëlqyeshëm dhe ka vendin e vet, por, po ashtu, mbivlerësimi i informacionit mund të jetë një pengesë.
Për shembull, përdorimi i cat
për të parë në sistemin e pseudo skedarëve /proc/meminfo ktheu 50 rreshta daljeje në makinën e përdorur për të kërkuar këtë artikull. Nga filloni?
cat /proc/meminfo
Dhe disa shërbime Linux japin përgjigje të ndryshme. Në makinën tonë të provës, kishim një shembull të më pak
që po funksiononte, i cili kishte një ID të procesit 2183.
Ne mund të përdorim mjetin pmap
me opsionin -x
(të zgjeruar) për të marrë një pamje të plotë të përdorimit të memories së një procesi. Ne do ta përdorim atë me ID-në e procesit të shembullit tonë të më pak
:
pmap -x 2183
Në fund të daljes, marrim një total për madhësinë e grupit Resident, që është sasia e RAM-it kryesor që përdoret.
Më pas përdorëm mjetin ps
me opsionin -o
(output), zgjodhëm kolonën RSS
dhe ia kaluam ID-në e procesit të së njëjtës shembull i më pak
:
ps -o rss 2183
Ne marrim një rezultat tjetër. Ky është një vendim projektimi nga ana e autorëve të ps
. Kjo është nga faqja ps
man
:
Autorët e shërbimeve të tjera kanë pikëpamjet e tyre se si të masin përdorimin e RAM-it.
RSS, USS dhe PSS
Madhësia e grupit rezident (RSS) është sasia e RAM-it të alokuar për një proces, duke përjashtuar hapësirën e shkëmbimit, por duke përfshirë çdo RAM të kërkuar nga bibliotekat e përbashkëta që procesi po përdor.
RSS pothuajse gjithmonë mbi-raporton përdorimin e RAM-it. Nëse dy ose më shumë procese përdorin një ose më shumë biblioteka të përbashkëta, RSS thjesht do të shtojë përdorimin e RAM-it të secilës bibliotekë në numrin e saj të përdorimit të RAM-it për secilin prej këtyre proceseve. Përveç pasaktësisë, kjo ka një ironi të caktuar. Bibliotekat e përbashkëta nënkuptojnë se çdo proces nuk ka nevojë të ngarkojë shembullin e tij privat të një biblioteke. Nëse biblioteka është tashmë në memorie, ajo do ta ndajë atë - dhe do të zvogëlojë koston e RAM-it.
Madhësia proporcionale e grupit përpiqet ta trajtojë këtë duke e ndarë sasinë e kujtesës së përbashkët midis proceseve që e ndajnë atë. Nëse ka katër procese që ndajnë memorie, PSS raporton se 25% e RAM-it të përbashkët përdoret nga secili prej këtyre proceseve. Ky është një përafrim, por i ngjan më shumë asaj që po ndodh sesa fotografia që paraqet RSS.
Madhësia unike e grupit është sasia e RAM-it që përdoret ekskluzivisht nga një proces, pavarësisht nëse konsumohet drejtpërdrejt nga procesi, ose përdoret nga bibliotekat që janë vetëm në përdorim nga procesi. Përsëri, ai injoron hapësirën e shkëmbimit. Është i interesuar vetëm për RAM-in e vërtetë fizik.
USS dhe PSS janë terma dhe koncepte që u propozuan nga Matt Mackall, autori i smem
.
Shërbimi smem
Shërbimi smem
raporton për memorien e përdorur nga proceset, përdoruesit, hartëzimi ose në të gjithë sistemin. Në të gjitha shpërndarjet që testuam, kërkohej instalimi. Për ta instaluar atë në Ubuntu, përdorni këtë komandë:
sudo apt install smem
Për të instaluar smem
në Fedora, duhet të shkruani:
sudo dnf install smem
Për të instaluar smem
në Manjaro përdorni:
sudo pacman -Sy smem
Përdorimi i smem
pa opsione ju jep një listë të proceseve që përdorin RAM.
smem
Një tabelë informacioni shfaqet në dritaren e terminalit.
Kolonat janë:
- PID: ID e procesit të procesit që përdor kujtesën.
- Përdoruesi: Emri i përdoruesit që zotëron procesin.
- Komanda: Linja e komandës që nisi procesin.
- Swap: Sa hapësirë shkëmbimi po përdor procesi.
- USS: Madhësia unike e grupit.
- PSS: Madhësia proporcionale e grupit.
- RSS: Madhësia e grupit të banorit.
Për të parë madhësitë e shprehura në përqindje, përdorni opsionin -p
(përqindje).
smem -p
Madhësitë në bajt janë zëvendësuar me përqindje.
Për të parë figurat e paraqitura në një formë më miqësore për njerëzit, përdorni opsionin -k
(shkurt). Kjo zvogëlon shifrat dhe shton treguesit e njësisë.
smem -k
Në vend të bajteve të papërpunuara, madhësitë tregohen në megabajt, gigabajt, e kështu me radhë.
Për të shtuar një linjë totale, përdorni opsionin -t
(totals).
smem -k -t
Rreshti i fundit i daljes tregon totalet për secilën kolonë.
Përpunimi i Raportit
Mund t'i kërkoni smem
të raportojë mbi përdorimin e kujtesës nga përdoruesit, hartëzimin (bibliotekat) ose në të gjithë sistemin. Për të filtruar daljen sipas përdoruesit, përdorni opsionin -u
(përdoruesi). Vini re se nëse doni të shihni më shumë sesa thjesht përdorimin tuaj, do t'ju duhet të ekzekutoni smem
me sudo
.
smem -u
sudo smem -u
Siç mund ta shihni, dalja del jashtë formës për emrat e përdoruesve më të gjatë se tetë karaktere.
Për të parë përdorimin e përcaktuar me bibliotekat që janë në përdorim, pavarësisht se cilat procese i përdorin bibliotekat, as cilët përdorues i zotërojnë ato procese, përdorni opsionin -m
(mapping).
smem -m -k -t
Kemi kërkuar edhe vlera të lexueshme nga njeriu dhe një total.
Për të parë përdorimin e kujtesës në të gjithë sistemin, përdorni opsionin -w
(sistem-gjerë).
smem -w -k -t
Raportimi për një program të vetëm
Me pak magji të linjës së komandës, ne mund të raportojmë për një program të vetëm dhe të gjitha nën-proceset e tij. Do ta dërgojmë daljen nga smem
në tail
dhe do t'i kërkojmë tail
të shfaqë vetëm rreshtin e fundit. Ne do t'i themi smem
të përdorë vlera të lexueshme nga njeriu dhe të japë një total. Totali do të jetë rreshti i fundit, dhe kjo është rreshti bisht
që do të shfaqet për ne.
Ne do të përdorim opsionin -c
(kolona) me smem
dhe do t'i tregojmë se cilat kolona duam të përfshihen në daljen tonë. Ne do ta kufizojmë këtë në kolonën e madhësisë së grupit proporcional. Opsioni -P
(filtri i procesit) na lejon t'i japim një varg kërkimi smem
. Do të përfshihen vetëm linjat e prodhimit që përputhen.
smem -c pss -P firefox -k -t | tail -n 1
Kjo është një mënyrë e shpejtë dhe e saktë për të zbuluar konsumin e RAM-it të një programi dhe proceset e tij të fëmijës.
Gjenerimi i grafikëve
Mund të kaloni opsionet --pie
ose --bar
për të krijuar grafikët smem
. Duhet thënë se me shumë kategori, grafikët bëhen shpejt të pakuptueshëm, por ato mund të jenë të dobishme për një pasqyrë të shpejtë vizuale.
Formati i komandës është:
smem --pie name -s uss
Grafiku i byrekut shfaqet në dritaren e vet të shikuesit.
Për të parë parcela të tjera, përdorni pss
ose rss
në vend të uss
. Për të parë një grafik me shtylla, përdorni --bar
në vend të --pie
.
Që kjo të funksionojë, duhet të keni të instaluar Python, së bashku me bibliotekën matplotlib
. Këto ishin instaluar tashmë në shpërndarjet Ubuntu, Fedora dhe Manjaro që testuam.
Gjërat e mira vijnë në paketa të vogla
Shërbimi smem
ka disa hile të tjera në mëngë dhe ju inkurajoheni të shikoni faqen e tij man
. Repertori i tij kryesor është ai që kemi përshkruar këtu dhe është një mjet i vogël i shkëlqyeshëm për ta pasur në kutinë tuaj të veglave CLI.