Paano Suriin ang Paggamit ng Memory Bawat Proseso sa Linux

How Check Memory Usage Per Process Linux



Sa mga araw na ito, ang isang computer ay maaaring magpatakbo ng maraming mga programa nang sabay-sabay. Ang CPU ay walang problema sa paghawak ng lahat ng mga program na ito dahil ang mga CPU ay may maraming mga core upang mahawakan ang multi-tasking.

Ang bawat isa sa mga programang ito ay tumatakbo bilang isa o higit pang mga proseso. Ang bawat proseso ay naglalaan ng ilang halaga ng RAM o memorya para sa sarili nito. Mahalaga ito upang gumana nang tama ang proseso. Kung nabigo ang isang proseso na maglaan ng sapat na RAM o memorya, pagkatapos ay hindi malikha ang proseso at hindi masisimulan ang programa.







Kaya, ang isa sa pangunahing gawain na ginagawa mo sa iyong computer ay upang suriin kung gaano karaming memorya o RAM (Random Access Memory) ang ginagamit ng bawat proseso. Dahil, ang RAM o memorya ng iyong computer ay limitado.



Mag-isip ng isang kaso, kung saan mo nais magpatakbo ng ilang programa at nabigo ito dahil wala kang sapat na memorya. Maaaring ilan sa mga proseso ay gumagamit ng maraming memorya na hindi mo kailangan ngayon. Maaari mong patayin o itigil ang mga prosesong ito upang mapalaya ang RAM o memorya, upang masimulan mo ang iyong mahahalagang programa.



Sa artikulong ito, ipapakita ko sa iyo kung paano suriin ang paggamit ng memorya ng bawat isa sa mga proseso na tumatakbo sa iyong Linux machine. Gumagamit ako ng Debian 9 Stretch para sa lahat ng pagpapakita sa artikulong ito. Ngunit dapat itong gumana sa anumang modernong pamamahagi ng Linux. Magsimula na tayo.





Maaari mong gamitin ang ps utos na suriin ang paggamit ng memorya ng lahat ng mga proseso sa Linux. Mayroong isang problema sa pamamaraang ito. ps huwag talagang ipakita sa iyo kung magkano ang memorya na ginagamit ng isang proseso sa format na KB o MB, ngunit ipapakita nito sa iyo kung magkano ang memorya na ginagamit sa porsyento.

Maaari mong suriin ang paggamit ng memorya (sa porsyento) ng lahat ng proseso na tumatakbo sa iyong operating system ng Linux gamit ang sumusunod na utos:



$ps -o kayapid, gumagamit,%meme,utospalakol| pag-uri-uriin -b -k3 -r

Tulad ng nakikita mo, ang lahat ng mga proseso na may paggamit ng memorya sa porsyento ay nakalista sa pababang pagkakasunud-sunod (Ang mga proseso na gumagamit ng karamihan sa memorya ay nakalista muna).

Sinusuri ang Paggamit ng Memory ng Mga Proseso gamit ang pmap:

Maaari mong suriin ang memorya ng isang proseso o isang hanay ng mga proseso sa nababasa na format ng tao (sa KB o kilobytes) kasama pmap utos Ang kailangan mo lang ay ang PID ng mga proseso na nais mong suriin ang paggamit ng memorya.

Sabihin nating, nais mong suriin kung gaano karaming memorya ang ginagamit ng proseso sa PID 917. Upang gawin iyon, tumakbo pmap tulad ng sumusunod:

$sudopmap917

Tulad ng nakikita mo, ang kabuuang memorya na ginamit ng proseso 917 ay 516104 KB o kilobytes. Maaari mo ring makita kung magkano ang memorya ng mga aklatan at iba pang mga file na kinakailangan upang patakbuhin ang proseso sa paggamit ng PID 917 din dito.

Kung wala kang pakialam sa kung gaano karaming memorya ang ginagamit ng mga aklatan o iba pang mga umaasa na mga file, pagkatapos ay tumakbo pmap tulad ng sumusunod:

$sudopmap917 | buntot -n 1

Tulad ng nakikita mo, ang kabuuang memorya lamang na ginamit ng proseso na may PID 917 ang nakalimbag sa screen.

Kung nais mo, maaari mo pa itong salain sa ang awkward at makuha lamang ang laki sa KB o kilobytes. Upang gawin iyon, tumakbo pmap tulad ng sumusunod:

$sudopmap917 | buntot -n 1 | ang awkward '/ [0-9] K / {print $ 2}'

Tulad ng nakikita mo, ang paggamit lamang ng memorya sa KB o kilobytes ang nakalimbag.

Ngayon ay maaari mo ring ilista kung gaano karaming memorya ang ginagamit ng maraming proseso gamit ang kanilang mga PID pmap tulad ng sumusunod:

$sudopmap917 531 | mahigpit na pagkakahawakkabuuan

TANDAAN: Narito ang 917 at 531 ay mga proseso ng ID o PID. Maaari kang maglagay ng maraming mga PID hangga't gusto mo sa ganitong paraan.

Paggamit ng pmap sa Listahan ng Paggamit ng Memory ng Lahat ng Mga Proseso sa Kilobytes:

Sa seksyong ito, ipapakita ko sa iyo kung paano magsulat ng iyong sariling shell script upang ilista ang paggamit ng memorya ng lahat ng mga proseso na tumatakbo sa iyong operating system ng Linux sa nababasa na format ng tao (kilobytes o KB).

Gumawa muna ng bagong file sysmon sa iyong kasalukuyang gumaganang direktoryo na may sumusunod na utos:

$hawakansysmon

Ngayon ay gawing naisakatuparan ang file sa sumusunod na utos:

$chmod+ x sysmon

sysmon ay ang shell script na ipapakita ang lahat ng mga tumatakbo na proseso PID , MAY-ARI , MEMORY (sa KB sa pababang pagkakasunud-sunod) at PANUTO . Magsimula na tayo.

Buksan ang sysmon script kasama ang iyong paboritong text editor, gagamitin ko Kate .

Ngayon, ang unang utos na tatakbo ko ay bibigyan ako ng PID , MAY-ARI at PANUTO ng lahat ng mga tumatakbo na proseso na pinaghiwalay ng colon (:) simbolo at iimbak ito sa RAWIN variable. Pagkatapos loop sa pamamagitan ng output at i-print ito sa screen.

Tulad ng nakikita mo, nakakakuha ako ng tamang output.

Panahon na upang iproseso ang bawat linya, iimbak ang kolon na may delimitadong impormasyon sa magkakahiwalay na mga variable. Iyon ang ginawa ko sa linya 7, 8 at 9.

Tulad ng nakikita mo, maaari akong mag-print PID , MAY-ARI at PANUTO sa sarili kong format ngayon.

Panahon na ngayon upang kunin ang paggamit ng memorya ng bawat PID. Ginagawa lang iyon ng Line 10.

Tulad ng nakikita mo, lahat ay gumagana nang perpekto. Ngayon ay maaari kong mai-print ang paggamit ng memorya ng bawat proseso sa kilobytes (KB) din.

Ngayon ang natitira lamang na gawin ay i-format ang output upang magmukhang maganda. Mas gusto ko ang format ng talahanayan. Ang linya 5 ay naglilimbag ng header ng bawat haligi ng talahanayan.

Sa wakas, nag-print ako PID , MAY-ARI , MEMORY (sa KB) at PANUTO ng bawat proseso sa isang format na tabular gamit ang linya 14.

Tulad ng nakikita mo, gumagana ito nang maayos. Mayroong kaunting problema, ang mga proseso ay hindi maayos na pinagsunod-sunod sa pababang pagkakasunud-sunod sa pamamagitan ng paggamit ng memorya.

Upang ayusin iyon, tinanggal ko pag-uri -bnr -k3 mula sa linya 3 at nakabalot ang lahat sa isang pagpapaandar ng shell sysmon_main () . Pagkatapos iniwan ang trabaho ng pag-uuri sa pag-uri-uriin utos

Ang panghuling shell script ay ganito ang hitsura:

Tulad ng nakikita mo, mahusay itong gumagana.

Ngayon ay maaari mo na itong ilipat sa isang lugar tulad ng / usr / basurahan at isagawa ito tulad ng ibang mga utos tulad ng sumusunod:

$sudo mv -vsysmon/usr/am

Pagpapatupad sysmon :

Salamat sa pagbabasa ng artikulong ito.