Как найти потребление памяти определенного процесса в linux за каждые 5 секунд
Я просто хочу знать, как найти потребление памяти определенного процесса в течение определенного времени (скажем, 5 секунд)
Я новичок в linux. Итак, подробные шаги по выполнению этого будут оценены
4 ответов
вы можете использовать SNMP для получения памяти и использования процессора процесса на определенном устройстве в сети:)
требования:
- на устройстве, на котором выполняется процесс, должен быть установлен и запущен snmp
- snmp должен быть настроен для приема запросов, из которых вы будете запускать скрипт ниже (он может быть настроен в snmpd.conf)
- вы должны знать идентификатор процесса(PID) процесса, который вы хотите монитор
Примечания:
хост-ресурсы-MIB:: hrSWRunPerfCPU - это количество centi-секунд общих ресурсов процессора системы, потребляемых этим процессом. Обратите внимание, что в многопроцессорной системе это значение может увеличиваться более чем на одну сотую секунды в одну сотую секунды реального времени (настенные часы).
хост-ресурсы-MIB:: hrSWRunPerfMem is общий объем системной памяти, выделенной на этот процесс.
**
процесс мониторинга скрипт:
**
echo "IP: "
read ip
echo "specfiy pid: "
read pid
echo "interval in seconds:"
read interval
while [ 1 ]
do
date
snmpget -v2c -c public $ip HOST-RESOURCES-MIB::hrSWRunPerfCPU.$pid
snmpget -v2c -c public $ip HOST-RESOURCES-MIB::hrSWRunPerfMem.$pid
sleep $interval;
done
использовать top -p PID
где PID-идентификатор процесса. Должна отображаться информация о процессе, включая процент используемой системной памяти. Тип d
и целое число в секундах, чтобы изменить частоту обновления.
использовать посмотреть периодически выполнять скрипт. вот пример:
watch 'cat /proc/status' --interval=5
watch 'ps aux' --interval=5
этот ранее опубликованный вопрос:
как измерить фактическое использование памяти приложения или процесса?
похоже, что он может полностью решить Ваш вопрос.
edit: моя личная любимая утилита Linux для проверки использования ресурсов процессов сверху, хотя это может вводить в заблуждение по причинам, которые объясняются в вопросе, который я связал.