Kuidas kontrollida mälu kasutamist protsessi kohta Linuxis

How Check Memory Usage Per Process Linux



Tänapäeval võib arvuti käivitada paljusid programme korraga. CPU-l ei ole probleeme kõigi nende programmide käsitsemisega, kuna protsessoritel on mitu südamikku mitme ülesande täitmiseks.

Kõik need programmid töötavad ühe või mitme protsessina. Iga protsess eraldab endale teatud hulga RAM -i või mälu. Protsessi korrektseks toimimiseks on oluline. Kui protsess ei suuda piisavalt RAM -i või mälu eraldada, ei saa protsessi luua ja programm ei saa käivituda.







Niisiis, üks teie arvuti põhiülesandeid on kontrollida, kui palju mälu või muutmälu (juhusliku juurdepääsuga mälu) iga protsess kasutab. Kuna teie arvuti RAM või mälu on piiratud.



Kujutage ette juhtumit, kus soovite mõnda programmi käivitada ja see ebaõnnestub, kuna teil pole piisavalt mälu. Võib -olla kasutavad mõned protsessid palju mälu, mida te praegu ei vaja. RAM -i või mälu vabastamiseks võite need protsessid tappa või peatada, et saaksite oma olulisi programme käivitada.



Selles artiklis näitan teile, kuidas kontrollida kõigi teie Linuxi masinas töötavate protsesside mälukasutust. Ma kasutan Debian 9 Stretchit kõigi selle artikli tutvustuste jaoks. Kuid see peaks töötama kõigi kaasaegsete Linuxi distributsioonide puhul. Alustame.





Võite kasutada ps käsk kõigi Linuxi protsesside mälukasutuse kontrollimiseks. Selle protseduuriga on üks probleem. ps ei näita teile tegelikult, kui palju mälu protsess kasutab KB- või MB -vormingus, kuid see näitab teile, kui palju mälu kasutatakse protsentides.

Saate kontrollida kogu Linuxi operatsioonisüsteemis töötava protsessi mälukasutust (protsentides) järgmise käsuga:



$ps -võipid, kasutaja,%meem,käskkirves| sorteerima -b -k3 -r

Nagu näete, on kõik protsessid, mille mälukasutus on protsentides, loetletud kahanevas järjekorras (esmalt on loetletud protsessid, mis kasutavad enamikku mälust).

Protsesside mälu kasutamise kontrollimine pmap -iga:

Saate kontrollida protsessi või protsesside komplekti mälu inimesele loetavas vormingus (KB -des või kilobaitides) pmap käsk. Kõik, mida vajate, on nende protsesside PID, mille mälukasutust soovite kontrollida.

Oletame, et soovite kontrollida, kui palju mälu PID 917 protsess kasutab. Selleks jookse pmap järgnevalt:

$sudopmap917

Nagu näete, on protsessi 917 kogu mälu 516104 KB või kilobaiti. Siin näete ka seda, kui palju mälu kasutavad teegid ja muud failid, mida on vaja protsessi käivitamiseks PID 917 -ga.

Kui te ei hooli sellest, kui palju mälestusi teegid või muud sõltuvad failid kasutavad, siis käivitage pmap järgnevalt:

$sudopmap917 | saba -n 1

Nagu näete, prinditakse ekraanile ainult kogu PID 917 abil kasutatud mälu.

Soovi korral saate seda täiendavalt filtreerida awk ja saate ainult suuruse KB -des või kilobaitides. Selleks jookse pmap järgnevalt:

$sudopmap917 | saba -n 1 | awk ' / [0-9] K / {print $ 2}'

Nagu näete, prinditakse ainult mälukasutus KB -des või kilobaitides.

Nüüd saate ka loetleda, kui palju mälu kasutavad mitmed protsessid, kasutades nende PID -sid pmap järgnevalt:

$sudopmap917 531 | haaretkokku

MÄRGE: Siin on 917 ja 531 protsessi ID või PID. Sel viisil saate panna nii palju PID -sid kui soovite.

Pmapi kasutamine kõigi protsesside mälu kasutamise loetlemiseks kilobaitides:

Selles jaotises näitan teile, kuidas kirjutada oma shelliskript, et loetleda kõigi teie Linuxi opsüsteemis töötavate protsesside mälukasutus inimloetavas vormingus (kilobaiti või KB).

Esmalt tehke uus fail sysmon oma praeguses töökataloogis järgmise käsuga:

$puudutadasysmon

Nüüd tehke fail käivitatavaks järgmise käsuga:

$chmod+x süsteem

sysmon on shelliskript, mis kuvab kõik töötavad protsessid PID , OMANIK , MÄLU (KB -des kahanevas järjekorras) ja KÄSK . Alustame.

Ava sysmon skripti oma lemmiktekstiredaktoriga, hakkan kasutama Kate .

Nüüd annab esimene käsk, mille ma käivitan, mulle PID , OMANIK ja KÄSK kõikidest käimasolevatest protsessidest, mis on eraldatud kooloniga (:) sümboliga ja salvestage see kausta RAWIN muutuja. Seejärel tehke väljundist ring ja printige see ekraanile.

Nagu näete, saan õige väljundi.

Nüüd on aeg iga rida töödelda, kooloniga piiritletud teave eraldi muutujateks salvestada. Seda tegin liinidel 7, 8 ja 9.

Nagu näete, saan printida PID , OMANIK ja KÄSK nüüd minu enda formaadis.

Nüüd on aeg hankida iga PID -i mälukasutus. 10. rida teeb just seda.

Nagu näete, töötab kõik ideaalselt. Nüüd saan printida ka iga protsessi mälukasutuse kilobaitides (KB).

Nüüd jääb üle ainult vormindada väljund kena välja. Eelistan tabeli formaati. Rida 5 prindib tabeli iga veeru päise.

Lõpuks trükkisin PID , OMANIK , MÄLU (KB -des) ja KÄSK igast protsessist tabelivormingus, kasutades rida 14.

Nagu näete, töötab see üsna hästi. Siiski on väike probleem, protsessid pole mälu kasutamise järgi kahanevas järjekorras õigesti sorteeritud.

Selle parandamiseks eemaldasin sorteeri -bnr -k3 realt 3 ja pakkis kõik kestafunktsiooni sysmon_main () . Seejärel jättis sorteerimistöö sorteerima käsk.

Lõplik kestaskript näeb välja umbes selline:

Nagu näete, töötab see suurepäraselt.

Nüüd saate selle kuhugi teisaldada /usr/bin ja täitke see nagu teisedki käsud järgmiselt:

$sudo mv -vsysmon/usr/olen

Täitmine sysmon :

Täname, et lugesite seda artiklit.