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

В наши дни компьютер может запускать сразу несколько программ. У ЦП нет проблем с обработкой всех этих программ, потому что ЦП имеет несколько ядер для обработки многозадачности.

Каждая из этих программ работает как один или несколько процессов. Каждый процесс выделяет себе некоторый объем оперативной памяти или памяти. Важно, чтобы процесс работал правильно. Если процессу не удается выделить достаточно ОЗУ или памяти, то процесс не может быть создан и программа не сможет запуститься.

Итак, одна из основных задач, которые вы выполняете на своем компьютер должен проверить, сколько памяти или RAM (оперативной памяти) использует каждый процесс. Потому что объем оперативной памяти или памяти вашего компьютера ограничен.

Представьте себе случай, когда вы хотите запустить какую-то программу, но она не работает из-за нехватки памяти. Возможно, некоторые процессы используют много памяти, которая вам сейчас не нужна. Вы можете убить или остановить эти процессы, чтобы освободить оперативную память или память и запустить важные программы.

В этой статье я покажу вам, как проверить использование памяти каждым из процессов. работает на вашем компьютере с Linux. Я буду использовать Debian 9 Stretch для всей демонстрации в этой статье. Но он должен работать в любых современных дистрибутивах Linux. Приступим.

Вы можете использовать команду ps , чтобы проверить использование памяти всеми процессами в Linux. Есть одна проблема с этой процедурой. ps на самом деле не показывает вам, сколько памяти использует процесс в формате КБ или МБ, но показывает, сколько памяти используется в процентах.

Вы можете проверить использование памяти (в процентах) всем процессом, запущенным в вашей операционной системе Linux, с помощью следующей команды:

$ ps -o pid, user,% mem, командирский топор | sort -b -k3 -r

Как видите, все процессы с использованием памяти в процентах перечислены в порядке убывания (процессы, использующие большую часть памяти, указаны первыми).

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

Вы можете проверить память процесса или набора процессов в удобочитаемый формат (в КБ или килобайтах) с помощью команды pmap . Все, что вам нужно, это PID процессов, которыми вы хотите проверить использование памяти.

Допустим, вы хотите проверить, сколько памяти использует процесс с PID 917. Для этого запустите pmap следующим образом:

$ sudo pmap 917

Как видите, общая память, используемая процессом 917, составляет 516104 КБ или килобайт. Вы также можете увидеть, сколько памяти используют библиотеки и другие файлы, необходимые для запуска процесса с PID 917, здесь.

Если вас не волнует, сколько памяти используют библиотеки или другие зависимые файлы, запустите pmap следующим образом:

$ sudo pmap 917 | tail -n 1

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

При желании можно дальше отфильтруйте это с помощью awk и получите только размер в КБ или килобайтах. Для этого запустите pmap следующим образом:

$ sudo pmap 917 | tail -n 1 | awk ‘/[0-9] K/{print $ 2}’

Как видите, только печатается использование памяти в КБ или килобайтах.

Теперь вы может также указать, сколько памяти используется несколькими процессами, используя их PID с pmap следующим образом:

$ sudo pmap 917 531 | grep total

ПРИМЕЧАНИЕ : Здесь 917 и 531 — это процесс. ID или PID. Вы можете указать столько PID, сколько захотите.

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

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

Сначала создайте новый файл sysmon в вашем текущем рабочем каталоге с помощью следующей команды:

$ touch sysmon

Теперь сделайте файл исполняемым с помощью следующей команды:

$ chmod + x sysmon

sysmon — это сценарий оболочки, который отображает все запущенные процессы PID , OWNER , MEMORY (в КБ в порядке убывания) и COMMAND . Начнем.

Откройте скрипт sysmon в вашем любимом текстовом редакторе, я собираюсь использовать Kate .

Теперь первая команда, которую я собираюсь запустить, даст мне PID , OWNER и COMMAND всех запущенных процессов, разделенных двоеточием (:), и сохраните его в RAWIN переменная. Затем прокрутите вывод и распечатайте его на экране.

Как видите, я получаю правильный результат.

Теперь пора обработать каждую строку, сохранить информацию, разделенную двоеточиями, в отдельных переменных. Это то, что я сделал в строках 7, 8 и 9.

Как видите, я могу напечатать PID , OWNER и COMMAND в моем собственном формате.

Теперь пора для получения информации об использовании памяти для каждого PID. Строка 10 делает именно это.

Как видите, все работает отлично. Теперь я могу вывести данные об использовании памяти каждым процессом в килобайтах (КБ).

Теперь все, что осталось сделать, это отформатировать вывод, чтобы он выглядел красиво. Я предпочитаю формат таблицы. Строка 5 печатает заголовок каждого столбца таблицы. .

Наконец, я напечатал PID , OWNER , MEMORY (в КБ) и COMMAND каждого процесса в табличном формате с использованием строки 14.

Как видите, он работает вроде как с эл. Однако есть небольшая проблема: процессы неправильно отсортированы в порядке убывания использования памяти.

Чтобы исправить это, я удалил sort -bnr -k3 из строки 3 и заключил все в функцию оболочки sysmon_main () . Затем оставил работу по сортировке команде sort .

Окончательный сценарий оболочки выглядит примерно так:

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

Теперь вы можете переместить его куда-нибудь вроде /usr/bin и просто запустить как и другие команды:

$ sudo mv -v sysmon/usr/bin

Запуск sysmon :

Спасибо за чтение этой статьи.

Оцените статью
nanomode.ru
Добавить комментарий