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

How Check Memory Usage Per Process Linux



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

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







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



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



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





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

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



$пс -илиpid, пользователь,%мемкомандатопор| Сортировать -b -k3

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

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

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

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

$судоpmap917

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

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

$судоpmap917 | хвост -n 1

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

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

$судоpmap917 | хвост -n 1 | awk '/ [0-9] K / {print $ 2}'

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

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

$судоpmap917 531 | рукояткаобщий

ЗАМЕТКА: Здесь 917 и 531 - это идентификаторы процесса или PID. Вы можете указать столько PID, сколько захотите.

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

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

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

$трогатьsysmon

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

$chmod+ x sysmon

sysmon это сценарий оболочки, который отображает все запущенные процессы PID , ВЛАДЕЛЕЦ , ОБЪЕМ ПАМЯТИ (в КБ в порядке убывания) и КОМАНДА . Давайте начнем.

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

Теперь первая команда, которую я собираюсь запустить, даст мне PID , ВЛАДЕЛЕЦ а также КОМАНДА всех запущенных процессов, разделенных двоеточием (:), и сохраните его в RAWIN Переменная. Затем прокрутите вывод и распечатайте его на экране.

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

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

Как видите, я могу напечатать PID , ВЛАДЕЛЕЦ а также КОМАНДА теперь в моем собственном формате.

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

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

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

Наконец, я напечатал PID , ВЛАДЕЛЕЦ , ОБЪЕМ ПАМЯТИ (в КБ) и КОМАНДА каждого процесса в табличном формате, используя строку 14.

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

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

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

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

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

$судо мв -vsysmon/usr/являюсь

Выполнение sysmon :

Спасибо, что прочитали эту статью.