Потребление памяти процессом

Как мы можем узнать, какой процесс использует сколько памяти по отдельности?

0
02.01.2017, 09:22
3 ответа

1 - Использование 'ps'

Это покажет вам 10 лучших процессов, которые используют больше всего памяти:

ps aux --sort=-%mem | awk 'NR<=10{print $0}'

Вы можете манипулировать 10 процессами, если хотите.

2 - Использование 'top'

, когда вы открыли верхнее нажатие m , сократит процесс в зависимости от использования памяти.

1
28.01.2020, 02:47

Проблема определения того, сколько памяти потребляет отдельный процесс, является открытой и в основном основана на определении.

Проблема в значительной степени возникает из-за разделяемых библиотек - как бы вы рассчитали использование памяти процессом, который использует тот же .so, что и 3 других процесса? Вы бы сказали, что он потребляет всю память, выделенную библиотеке, поскольку без нее не может работать? Вы бы сказали, что он потребляет пропорциональную часть (1/4, поскольку есть 3 других процесса, которые используют его одновременно - pss)? Вы бы сказали, что процесс не зависит от каких-либо библиотек, которые он загружает для запуска?
Включите ли вы выгруженную память или только физические резидентные страницы RAM? А как насчет нескольких потоков или дочерних процессов? Форки используют ту же память, что и их родительский объект, если не вносятся изменения - вы бы посчитали это выделение памяти для каждого процесса или только для родительского?

Этот вопрос задавался и отвечал на него здесь и на других сайтах много раз, поэтому Я просто дам несколько ссылок и общий вывод.

Первая наиболее цитируемая статья по этой теме - https://emilics.com/notebook/enblog/p871.html
Несколько вопросов SO и U&L по той же теме:
https: / /stackoverflow.com/questions/7880784/what-is-rss-and-vsz-in-linux-memory-management
com / questions / 118307 / a-way-to-define-a-processs-real-memory-usage-ie-private-dirty-rss
Правильное определение использования памяти в Linux

Заключение - / prc / [pid] / smap согласно doc

/ proc / PID / smaps - это расширение, основанное на картах, показывающее потребление памяти для каждого сопоставления процесса.

Или используйте команду pmap .

0
28.01.2020, 02:47

Я предпочитаю запускать htop, чтобы я мог наблюдать за изменениями со временем.

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

Вы можете настроить сортировку по ЦП (по умолчанию) или по памяти.

Если его нет в вашей системе, его можно легко установить.

0
28.01.2020, 02:47

Теги

Похожие вопросы