Аналогично вопросу Как регистрировать загрузку процессора? Я хотел бы зарегистрировать память процесса.
Процесс, который я хочу зарегистрировать, уничтожен на удаленном сервере, и я хочу выяснить загрузку процессора и использование памяти непосредственно перед его уничтожением.
[Обновить]
И аккуратный маленький сценарий Python Стефано Палаццо и
Выходные значения Michał в одну строку меньше, чем top
для CPU и Mem. У тебя есть идея почему?
выходной верх:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2312 schXX 20 0 1241m 328m 58m S 100 0.3 11:56.68 MATLAB
вывод сценария Стефано Палаццо на python:
python memlogger.py 2312
%CPU %MEM
76.00 0.20
76.00 0.20
command-line
cpu-load
logging
memory-usage
Framester
источник
источник
ps
может отличаться отtop
: stackoverflow.com/questions/131303/…Ответы:
Вы можете создать однострочник в оболочке:
для регистрации процесса с pid = 123 просто:
или посмотреть и записать журнал в файл:
Если вы хотите, чтобы другие данные были зарегистрированы, измените
-o {this}
параметры. См.man ps
Раздел «ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ ФОРМАТА» для получения информации о доступных параметрах. Если вы хотите другое разрешение по времени, изменитеsleep {this}
функциюlogpid()
.источник
Если вы точно следите за
top
статистикой, вы можете запустить ееtop
в пакетном режиме, указав pid процесса, за которым вы работаете. Взяв пример с этой страницы ( http://www.dedoimedo.com/computers/linux-cool-hacks.html ), если вы напечаталиВы бы «запустили верх в пакетном режиме (-b). Он будет обновляться каждые 10 секунд, как указано в флаге задержки (-d), для общего количества 3 итераций (-n). Вывод будет отправлен в файл. " В том числе
-p
вы можете указатьpid
процесс, который вы после. Это, конечно, вернет больше, чем просто процессор и оперативная память, но будет содержать эти поля. Например, в моем случае я получу следующее при мониторинге pid 9189top -b -d 10 -n 3 -p 9189 >> ~/top-file
:источник
watch
не кажется мне идеальным для этого: superuser.com/questions/281347/filtering-top-command-outputЭтот простой скрипт на Python должен делать то, что вы хотите:
Сначала вам нужно узнать идентификатор процесса программы, которую вы хотите отслеживать, затем вы можете запустить скрипт с PID в качестве аргумента:
Он будет печатать использование процессора и оперативной памяти в процентах два раза в секунду:
Затем вы можете перенаправить его вывод в файл, чтобы позже импортировать его в электронную таблицу (
python log.py 9391 > firefox_log.txt
) и импортировать данные в электронную таблицу, выбрав вTab
качестве разделителя.Программа завершает работу, когда вы нажимаете Ctrl + C или когда процесс завершается.
источник