LINUX.ORG.RU

Мониторинг изменения RSS/VSS процесса

 


0

1

Есть большое количество прожорливых процессов по которым необходимо периодически сохранять информацию из /proc/<pid>/smaps для последующего анализа.

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

Небольшая оптимизация - все еще делаем polling, но уже /proc/<pid>/stat файлов и сохраняем большой smaps файл только в случае если в stat файле для процесса изменились RSS или VSS.
Не очень надежно, так как smaps может измениться даже если RSS/VSS остались неизменны по сравнению с предыдущей итерацией опроса, но более или менее работоспособно.

Вопрос собственно вот какой - можно ли каким-либо образом мониторить изменение RSS/VSS произвольно процесса не используя polling файлов в /proc?
Есть ли подобные механизмы в ядре?

P.S.
Это можно сделать через SystemTAP, но пока ищу другие альтернативы.

эээ, systemtap на sbrk? Или типа того...

Но я бы всё же поллинг сделал. Да и smaps разве вам целиком нужны? Выдерите оттуда только то что нужно и храните это.

true_admin ★★★★★ ()

Кстати, можно и свою обёртку через LD_PRELOAD сделать и мониторить. Клёво я придумал?

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

Да, SMAPS нужны целиком, так как в перспективе будет использоваться вся информация которая там содержится.

Krivenok_Dmitry ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.