Памет

Как да проверя използването на паметта на процес в Linux

Как да проверя използването на паметта на процес в Linux
В наши дни компютърът може да изпълнява много програми наведнъж. Процесорът няма проблем да борави с всички тези програми, тъй като процесорите имат множество ядра за многозадачност.

Всяка от тези програми се изпълнява като един или повече процеси. Всеки процес отделя известно количество RAM или памет за себе си. От съществено значение е процесът да функционира правилно. Ако процесът не успее да разпредели достатъчно RAM или памет, тогава процесът не може да бъде създаден и програмата няма да може да се стартира.

И така, една от основните задачи, които правите на компютъра си, е да проверите колко памет или RAM (памет с произволен достъп) използва всеки от процесите. Защото RAM или паметта на вашия компютър са ограничени.

Представете си случай, в който искате да стартирате някаква програма и тя се провали, защото нямате достатъчно памет. Може би някои от процесите използват много памет, от която не се нуждаете в момента. Можете да убиете или спрете тези процеси, за да освободите RAM или памет, така че да можете да стартирате важните си програми.

В тази статия ще ви покажа как да проверите използването на паметта на всеки от процесите, работещи на вашата Linux машина. Ще използвам Debian 9 Stretch за всички демонстрации в тази статия. Но трябва да работи върху всякакви съвременни дистрибуции на Linux. Да започваме.

Проверка на използването на паметта с помощта на командата ps:

Можете да използвате пс команда за проверка на използването на паметта на всички процеси в Linux. Има един проблем с тази процедура. пс всъщност не ви показва колко памет използва процесът във формат KB или MB, но ще ви покаже колко памет се използва в проценти.

Можете да проверите използването на паметта (в проценти) от целия процес, който се изпълнява във вашата операционна система Linux, със следната команда:

$ ps -o pid, потребител,% mem, командна брадва | сортиране -b -k3 -r

Както можете да видите, всички процеси с използване на паметта в проценти са изброени в низходящ ред (Процесите, използващи по-голямата част от паметта, са изброени първо).

Проверка на използването на процесите с памет с pmap:

Можете да проверите паметта на процес или набор от процеси в човешки четим формат (в KB или килобайта) с pmap команда. Всичко, от което се нуждаете, е PID на процесите, за които искате да проверите използването на паметта.

Да кажем, че искате да проверите колко памет използва процесът с PID 917. За да направите това, стартирайте pmap както следва:

$ sudo pmap 917

Както можете да видите, общата памет, използвана от процеса 917, е 516104 KB или килобайта. Тук можете също да видите колко памет използват библиотеките и другите файлове, необходими за стартиране на процеса с PID 917.

Ако не ви интересува колко памет използват библиотеките или други зависими файлове, тогава стартирайте pmap както следва:

$ sudo pmap 917 | опашка -n 1

Както можете да видите, на екрана се отпечатва само общата памет, използвана от процеса с PID 917.

Ако искате, можете допълнително да филтрирате това с awk и получавате само размера в KB или килобайта. За да направите това, стартирайте pmap както следва:

$ sudo pmap 917 | опашка -n 1 | awk '/ [0-9] K / print $ 2'

Както можете да видите, отпечатва се само използването на памет в KB или килобайта.

Сега можете също да изброите колко памет се използва от множество процеси, използвайки техните PID pmap както следва:

$ sudo pmap 917 531 | grep общо

ЗАБЕЛЕЖКА: Тук 917 и 531 са идентификатори на процеси или PID. По този начин можете да поставите колкото искате PID.

Използване на pmap за изброяване на използването на паметта на всички процеси в килобайта:

В този раздел ще ви покажа как да напишете свой собствен скрипт за черупка, за да изброите използването на паметта на всички процеси, изпълнявани във вашата операционна система Linux, в четим от човека формат (килобайта или KB).

Първо направете нов файл sysmon в текущата работна директория със следната команда:

$ touch sysmon

Сега направете файла изпълним със следната команда:

$ chmod + x sysmon

sysmon е скриптът на черупката, който ще покаже всички работещи процеси PID, СОБСТВЕНИК, ПАМЕТ (в KB в низходящ ред) и КОМАНД. Да започваме.

Отвори sysmon скрипт с любимия ви текстов редактор, ще го използвам Кейт.

Сега първата команда, която ще изпълня, ще ми даде PID, СОБСТВЕНИК и КОМАНД от всички изпълняващи се процеси, разделени със символа двоеточие (:) и го съхранявайте в КАЧИЛО променлива. След това преминете през изхода и го отпечатайте на екрана.

Както можете да видите, получавам правилния изход.

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

Както виждате, мога да печатам PID, СОБСТВЕНИК и КОМАНД в моя собствен формат сега.

Сега е време да извлечем използването на паметта на всеки PID. Линия 10 прави точно това.

Както можете да видите, всичко работи перфектно. Сега мога да отпечатам и използването на паметта на всеки процес в килобайта (KB).

Сега остава само да форматирате изхода, за да изглежда добре. Предпочитам формата на таблицата. Ред 5 отпечатва заглавката на всяка колона на таблицата.

Накрая отпечатах PID, СОБСТВЕНИК, ПАМЕТ (в KB) и КОМАНД на всеки процес в табличен формат, използвайки ред 14.

Както можете да видите, работи доста добре. Има малко проблеми, обаче, процесите не са правилно сортирани в низходящ ред по използване на паметта.

За да поправя това, премахнах сортиране -bnr -k3 от ред 3 и уви всичко в черупкова функция sysmon_main (). След това остави работата по сортирането на вид команда.

Последният скрипт на черупката изглежда по следния начин:

Както можете да видите, работи чудесно.

Сега можете да го преместите някъде като / usr / bin и го изпълнете точно както другите команди, както следва:

$ sudo mv -v sysmon / usr / bin

Изпълнение sysmon:

Благодаря, че прочетохте тази статия.

Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...
0 А.д. Урок
От многото стратегически игри, 0 A.д. успява да се открои като изчерпателно заглавие и много дълбока, тактическа игра, въпреки че е с отворен код. Раз...
Урок за Unity3D
Въведение в Unity 3D Unity 3D е мощен двигател за разработка на игри. Това е кръстосана платформа, която ви позволява да създавате игри за мобилни уст...