FastNetMon

Thursday 19 November 2009

strace нескольких процессов

Часто работающий процесс представляет собой связку процессов и мониторить их необходимо все, т.к. заранее неизвестно, каким их процессов будет отработан наш запрос. На этот случай strace умеет принимать набор pid ов процессов, на каждый процесс свой аргумент -p

Получаем список всех процессов по имени:
pidof apache2


Собираем список аргументов:
pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g'


Вызываем strace:
strace -s 1024 -f $(pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g')


На CentOS имя процесса другое:
strace -s 1024 -f $(pidof httpd | sed 's/\([0-9]*\)/\-p \1/g')


Для трейса php-cgi процессов команда будет следующая:

strace -s 1024 -f $(pidof php5-cgi | sed 's/\([0-9]*\)/\-p \1/g')
А вот боеле гибкий вариант для выборки процессов по регулярному выражению:
strace -s 1024 -f $(pgrep php5-fastcgi | sed 's/\([0-9]*\)/\-p \1/g')

А для Nginx:

strace -s 1024 -f $(pidof nginx | sed 's/\([0-9]*\)/\-p \1/g')
Для php5-fpm:

 strace -s 1024 -f $(pidof php5-fpm | sed 's/\([0-9]*\)/\-p \1/g')
Для Apache wsgi:
strace -s 1024 -f $(ps aux|grep wsgi|grep -v 'grep'|awk '{print $2}'| sed 's/\([0-9]*\)/\-p \1/g') 

взято с: отличного сайта

No comments :

Post a Comment

Note: only a member of this blog may post a comment.