Како проверити употребу меморије по процесу на Линук -у

How Check Memory Usage Per Process Linux



Ових дана рачунар може покренути више програма одједном. ЦПУ нема проблема са руковањем свим овим програмима јер ЦПУ-и имају више језгара за руковање више задатака.

Сваки од ових програма ради као један или више процеса. Сваки процес додељује одређену количину РАМ -а или меморије за себе. Неопходно је да процес правилно функционише. Ако процес не успе да додели довољно РАМ -а или меморије, процес се не може креирати и програм неће моћи да се покрене.





Дакле, један од основних задатака које радите на свом рачунару је да проверите колико меморије или РАМ -а (меморије са случајним приступом) сваки процес користи. Јер, РАМ или меморија вашег рачунара су ограничени.



Замислите случај у којем желите покренути неки програм и он не успије јер немате довољно меморије. Можда неки од процеса користе пуно меморије која вам тренутно није потребна. Можете убити или зауставити ове процесе да бисте ослободили РАМ или меморију, тако да можете покренути важне програме.



У овом чланку ћу вам показати како да проверите заузетост меморије сваког од процеса који се извршавају на вашој Линук машини. Користићу Дебиан 9 Стретцх за све демонстрације у овом чланку. Али требало би да ради на свим модерним Линук дистрибуцијама. Хајде да почнемо.





Можете користити пс команда за проверу коришћења меморије свих процеса на Линук -у. Постоји један проблем са овом процедуром. пс не показују вам колико меморије процес користи у КБ или МБ формату, али ће вам показати колико меморије се користи у процентима.

Употребу меморије (у процентима) свих процеса који се извршавају на вашем оперативном систему Линук можете проверити помоћу следеће команде:



$пс -илипид, корисник,%Мима,командасекира| врста -к3

Као што видите, сви процеси са процентуалном употребом меморије наведени су опадајућим редоследом (први су наведени процеси који користе већину меморије).

Провера коришћења меморије процеса помоћу пмап -а:

Можете проверити меморију процеса или скупа процеса у читљивом формату (у КБ или килобајтима) помоћу пмап команда. Све што вам је потребно је ПИД процеса за које желите да проверите заузетост меморије.

Рецимо, желите да проверите колико меморије процес са ПИД 917 користи. Да бисте то урадили, трчите пмап као што следи:

$судопмап917

Као што видите, укупна меморија коју користи процес 917 износи 516104 КБ или килобајта. Овде такође можете видети колико меморије користе библиотеке и друге датотеке потребне за покретање процеса са ПИД 917.

Ако вас не занима колико меморије користе библиотеке или друге зависне датотеке, покрените их пмап као што следи:

$судопмап917 | Реп 1

Као што видите, на екрану се штампа само укупна меморија коју процес користи са ПИД 917.

Ако желите, ово можете додатно филтрирати помоћу авк и добити само величину у КБ или килобајтима. Да бисте то урадили, трчите пмап као што следи:

$судопмап917 | Реп 1 | авк ' / [0-9] К / {одштампајте $ 2}'

Као што видите, штампа се само употреба меморије у КБ или килобајтима.

Сада можете такође навести колико меморије користи више процеса користећи своје ПИД -ове пмап као што следи:

$судопмап917 531 | дршкаукупно

БЕЛЕШКА: Овде су 917 и 531 ИД процеса или ПИД. На овај начин можете поставити колико год желите ПИД -ова.

Коришћењем пмап -а за попис употребе меморије свих процеса у килобајтима:

У овом одељку ћу вам показати како да напишете сопствену скрипту љуске како бисте навели употребу меморије свих процеса који се извршавају на вашем оперативном систему Линук у читљивом формату (килобајти или КБ).

Прво направите нову датотеку сисмон у вашем тренутном радном директоријуму са следећом командом:

$додирсисмон

Сада учините датотеку извршном следећом командом:

$цхмод+к сисмон

сисмон је љуска скрипта која ће приказати све покренуте процесе ПИД , ВЛАСНИК , МЕМОРИЈА (у КБ у опадајућем редоследу) и КОМАНДОВАТИ . Почнимо.

Отвори сисмон скрипту са вашим омиљеним уређивачем текста, коју ћу користити Кате .

Прва команда коју ћу покренути ће ми дати ПИД , ВЛАСНИК и КОМАНДОВАТИ свих покренутих процеса одвојених симболом двоточке (:) и сачувајте га у РАВИН променљива. Затим прођите кроз излаз и одштампајте га на екрану.

Као што видите, добијам исправан излаз.

Сада је време за обраду сваког реда, чување информација раздвојених двотачком у засебним променљивим. То сам урадио на линијама 7, 8 и 9.

Као што видите, могу да штампам ПИД , ВЛАСНИК и КОМАНДОВАТИ сада у свом формату.

Сада је време за преузимање меморије сваког ПИД -а. Ред 10 чини управо то.

Као што видите, све ради савршено. Сада могу исписати и потрошњу меморије сваког процеса у килобајтима (КБ).

Сада је само преостало да форматирате излаз да изгледа лепо. Више волим формат табеле. Ред 5 штампа заглавље сваке колоне табеле.

На крају сам штампао ПИД , ВЛАСНИК , МЕМОРИЈА (у КБ) и КОМАНДОВАТИ сваког процеса у табеларном формату користећи ред 14.

Као што видите, ради прилично добро. Постоји мали проблем, међутим, процеси нису правилно сортирани у опадајућем редоследу према употреби меморије.

Да бих то исправио, уклонио сам сортирај -бнр -к3 из реда 3 и омотао све у функцију љуске сисмон_маин () . Затим је посао сортирања препустио врста команда.

Коначна љуска скрипта изгледа отприлике овако:

Као што видите, ради одлично.

Сада га можете преместити на неко место попут /уср/бин и извршите га као и остале команде на следећи начин:

$судо мв сисмон/уср/сам

Извршавање сисмон :

Хвала што сте прочитали овај чланак.