LINUX.ORG.RU
решено ФорумAdmin

Мониторинг сетевой активности процесса

 ,


1

3

Задача:
убедиться, что процесс не завис (+ничего не сломалось на другой стороне), а что-то реально гоняет по сети
Что именно гоняет это не так интересно, в принципе по растущим счётчикам Tx/Rx пакетов это вполне должно быть понятно.

Вопрос:
не хочу стрелять из пушки по воробьям, и использовать tcpdump/nethogs, хотелось бы чего то лёгкого, воздушного, пригодного для скриптования.
Подумал о парсинге /proc/$PID/net/* но сходу не понял за что там можно зацепиться.
ЛОР, посоветуй

★★★★★

В случае когда у процесса всего один соединение, должно хватить разбора /proc/PID/net/dev, но чисто для спортивного интереса хотелось бы понять где посмотреть счётчики по каждому соединению, если их больше одного

zolden ★★★★★ ()

Вроде как, /proc/$PID/net/ одинаковый для всех процессов в одном сетевом пространстве (network namespace). Поэтому, там не отличить, какой из процессов качает трафик.

Если у процесса длительные соединения, то, можно по его pid'у через ″netstat″ или ″ss″ узнать их и потом искать их в выводе ″conntrack″.

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

Ну для tcp-соединений можно изучать вывод команды:
ss -o -n -p -i
Там в случае обмена данными меняются параметры ″rtt″ и ″send″. Правда, нужно посмотреть, что происходит, если приложение перестаёт читать данные из сокета, а противоположная сторона продолжает их присылать.

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

ну и мешанина там выводится, ну да ладно
спасибо, вектор я понял

zolden ★★★★★ ()

в iptables маркировать пакеты/соединения по PID/UID/... и смотреть за счетчиками

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

тоже к этом склоняюсь, правда это не так удобно будет

zolden ★★★★★ ()

Можно попробовать посмотреть strace'ом

$ strace -f -e trace=network -p <PID>
Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.