Spomin

Kako preveriti porabo pomnilnika na proces v Linuxu

Kako preveriti porabo pomnilnika na proces v Linuxu
Danes lahko računalnik izvaja več programov hkrati. CPU nima težav z ravnanjem z vsemi temi programi, ker imajo CPU več jeder za večopravilnost.

Vsak od teh programov deluje kot en ali več procesov. Vsak postopek zase dodeli določeno količino RAM-a ali pomnilnika. Bistveno je, da postopek pravilno deluje. Če procesu ne uspe dodeliti dovolj RAM-a ali pomnilnika, potem procesa ni mogoče ustvariti in program se ne bo mogel zagnati.

Torej, ena od osnovnih nalog vašega računalnika je preveriti, koliko pomnilnika ali RAM-a (pomnilnik z naključnim dostopom) uporablja vsak postopek. Ker je RAM ali pomnilnik vašega računalnika omejen.

Predstavljajte si primer, ko želite zagnati neki program in ta ne uspe, ker nimate dovolj pomnilnika. Morda nekateri procesi uporabljajo veliko pomnilnika, ki ga trenutno ne potrebujete. Te procese lahko ubijete ali ustavite, da sprostite RAM ali pomnilnik, tako da lahko zaženete pomembne programe.

V tem članku vam bom pokazal, kako preverite uporabo pomnilnika za vsak proces, ki se izvaja na vašem računalniku Linux. Za vse predstavitve v tem članku bom uporabil Debian 9 Stretch. Vendar bi moralo delovati na vseh sodobnih distribucijah Linuxa. Začnimo.

Preverjanje uporabe pomnilnika z ukazom ps:

Lahko uporabite ps ukaz za preverjanje uporabe pomnilnika vseh procesov v Linuxu. Pri tem postopku obstaja ena težava. ps vam v resnici ne pokaže, koliko pomnilnika proces porabi v KB ali MB, bo pa prikazal, koliko pomnilnika porabite v odstotkih.

Uporabo pomnilnika (v odstotkih) celotnega procesa, ki se izvaja v vašem operacijskem sistemu Linux, lahko preverite z naslednjim ukazom:

$ ps -o pid, uporabnik,% mem, ukaz ax | razvrsti -b -k3 -r

Kot lahko vidite, so vsi procesi s porabo pomnilnika v odstotkih navedeni v padajočem vrstnem redu (najprej so navedeni procesi, ki uporabljajo večino pomnilnika).

Preverjanje uporabe pomnilnika procesov s pmap:

S pomočjo lahko preverite pomnilnik procesa ali nabora procesov v berljivi obliki (v KB ali kilobajtih) pmap ukaz. Vse, kar potrebujete, je PID procesov, za katere želite preveriti porabo pomnilnika.

Recimo, da želite preveriti, koliko pomnilnika uporablja proces s PID 917. Če želite to narediti, zaženite pmap kot sledi:

$ sudo pmap 917

Kot lahko vidite, skupni pomnilnik, ki ga uporablja postopek 917, znaša 516104 KB ali kilobajtov. Tu lahko vidite tudi, koliko pomnilnika uporabljajo knjižnice in druge datoteke, potrebne za zagon procesa s PID 917.

Če vas ne zanima, koliko pomnilnika uporabljajo knjižnice ali druge odvisne datoteke, zaženite pmap kot sledi:

$ sudo pmap 917 | rep -n 1

Kot lahko vidite, je na zaslon natisnjen le celoten pomnilnik, ki ga je postopek uporabil s PID 917.

Če želite, lahko to še filtrirate z awk in dobite samo velikost v KB ali kilobajtih. Če želite to narediti, zaženite pmap kot sledi:

$ sudo pmap 917 | rep -n 1 | awk '/ [0-9] K / print $ 2'

Kot vidite, se natisne samo poraba pomnilnika v KB ali kilobajtih.

Zdaj lahko tudi navedete, koliko pomnilnika uporablja več procesov z uporabo njihovih PID-jev pmap kot sledi:

$ sudo pmap 917 531 | grep skupaj

OPOMBA: Tu sta 917 in 531 ID procesa ali PID. Na ta način lahko vstavite toliko PID-jev, kot želite.

Uporaba pmapa za naštevanje uporabe pomnilnika vseh procesov v kilobajtih:

V tem razdelku vam bom pokazal, kako napišete svoj skript lupine, da navedete uporabo pomnilnika vseh procesov, ki se izvajajo v vašem operacijskem sistemu Linux, v berljivi obliki (kilobajti ali KB).

Najprej ustvarite novo datoteko sysmon v trenutnem delovnem imeniku z naslednjim ukazom:

$ touch sysmon

Zdaj naredite datoteko izvršljivo z naslednjim ukazom:

$ chmod + x sysmon

sysmon je skript lupine, ki bo prikazal vse tekoče procese PID, LASTNIK, SPOMIN (v KB v padajočem vrstnem redu) in UKAZ. Začnimo.

Odprite sysmon skript z vašim najljubšim urejevalnikom besedil, ga bom uporabil Kate.

Zdaj mi bo prvi ukaz, ki ga bom zagnal, dal PID, LASTNIK in UKAZ vseh tekočih procesov, ločenih s dvopičjem (:), in jih shranite v RAWIN spremenljivka. Nato zavijte skozi izhod in ga natisnite na zaslon.

Kot lahko vidite, dobim pravi rezultat.

Zdaj je čas, da obdelamo vsako vrstico in shranimo podatke, ločene s dvopičjem, v ločene spremenljivke. To sem počel na vrsticah 7, 8 in 9.

Kot vidite, lahko tiskam PID, LASTNIK in UKAZ v svojem formatu.

Zdaj je čas, da pridobimo porabo pomnilnika za vsak PID. Vrstica 10 naredi ravno to.

Kot vidite, vse deluje odlično. Zdaj lahko natisnem tudi porabo pomnilnika vsakega procesa v kilobajtih (KB).

Zdaj nam preostane le še oblikovanje izhoda, da bo videti lepo. Raje imam obliko tabele. Vrstica 5 natisne glavo vsakega stolpca tabele.

Končno sem natisnil PID, LASTNIK, SPOMIN (v KB) in UKAZ vsakega procesa v tabelarni obliki z uporabo vrstice 14.

Kot vidite, deluje nekako dobro. Nekaj ​​težav je, vendar procesi niso pravilno razvrščeni v padajočem vrstnem redu glede na porabo pomnilnika.

Da bi to popravil, sem ga odstranil razvrsti -bnr -k3 iz vrstice 3 in vse zavil v funkcijo lupine sysmon_main (). Nato je delo razvrščanja prepustilo razvrsti ukaz.

Končni skript lupine je videti nekako takole:

Kot vidite, deluje odlično.

Zdaj ga lahko premaknete nekam všeč / usr / bin in ga izvršite tako kot druge ukaze, kot sledi:

$ sudo mv -v sysmon / usr / bin

Izvršitev sysmon:

Hvala, ker ste prebrali ta članek.

Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...
Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...