LINUX.ORG.RU

Нужен тул для анализа дерева процессов


0

1

Есть сложный скрипт на bash, который вызывает кучу разных скиптов, из которых в свою очередь вызывается куча различных программ. Хочется по результатам выполнения скрипта получить информацию по тому, какие программы были запущены и сколько времени заняло их выполнение.

Результат должен быть в виде дерева, например:

my_script.sh (10 sec)
|
|---> another_script.sh (2 sec)
|
|---> yet_another_script.sh (5 sec)
       |
       |---> make (3 sec)
              |
              |---> gcc (1 sec)
Теоретически написать такую программу не сложно (но геморно), так как вся необходимая информация есть в выводе «strace -fF -T -tt -s1000» и нужно по сути написать парсер. Ну или же написать упрощенный strace, который отслеживает только некоторые нужные нам системные вызовы (fork, execve, etc).

Долго гуглил, но не нашел готового решения для данной задачи. Может кто знает готовый тул?

Спасибо!

Krivenok_Dmitry> Ну или же написать упрощенный strace, который отслеживает только некоторые нужные нам системные вызовы (fork, execve, etc).

В вопрос сильно не вникал, но у strace есть фильтр (опция -e)

вобщем: man strace

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

В вопрос сильно не вникал, но у strace есть фильтр (опция -e)

Он не сильно помогает, просто немного легче парсить.

Krivenok_Dmitry
() автор топика

Если ядро с utrace (rhel, fedora), то такая фигня на systemtap за 5 минут пишется.

mv ★★★★★
()

htop это не то? Дерево, процессорное время и пр. показывает.

Ok
()

strace? а это не стрельба из пушки по воробьям?

из man proc следует что нужно всего-то пошуршать в /proc/$PID/stat

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

ps, top и htop показывают состояние процессов в данный конкретный момент времени, но мне нужно не это. Меня интересует граф вызовов процессов уже после завершения родительского процесса и всех его прямых и косвенных потомков, а главное статистика по времени.

Скрипт, кстати, уже почти написал, но он, конечно, не умеет пока обрабатывать все возможные варианты. Посмотрю еще в сторону systemtap.

Спасибо!

Krivenok_Dmitry
() автор топика

pstree из пакета psmisc строит дерево процессов.

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