2015-10-01 3 views
2

Этот вопрос может звучать довольно повторяющимся, но есть тонкие детали, которые делают его немного другим.Мониторинг сетевого использования процесса

Я ищу простой инструмент (для Ubunut/Linux) для мониторинга сетевого использования, так что он дает минимальный, максимальный, средний и временной график использования сети: 1) одним процессом; и 2) систему; только в то время, когда процесс выполнялся. Основное требование состоит в том, что я не ищу инструмент, основанный на графическом интерфейсе (или терминальном графическом интерфейсе), но я хочу, чтобы эта информация мониторинга была перенесена в файл, чтобы я мог выполнить некоторую пост-обработку.

Я наткнулся на следующую ссылку, в которой перечислены различные варианты: http://www.binarytides.com/linux-commands-monitor-network/. Однако большинство инструментов основаны на графическом интерфейсе и те, которые не предоставляют выше информации.

Любая помощь будет высоко оценена.

+0

Можете ли вы пояснить, почему не GUI является требованием? До тех пор, пока регистрация не является графическим интерфейсом, было бы приемлемо иметь статистику, которую вы запросили для всех вычислений в пост-обработке графическим интерфейсом (необязательно на другой машине)? – twm

+0

Я буду запускать несколько процессов несколько раз, используя скрипт. Каждый раз, когда скрипт вызывает этот процесс, я не хочу физически сидеть и контролировать использование сети, чтобы сообщать данные мониторинга. Следовательно, я ищу что-то, что может быть перенесено в файл, чтобы впоследствии я мог его обработать. –

+0

Обратите внимание, что вывод 'dstat -nt' может быть перенесен в файл, из которого я могу вычислить min/max/average/etc. Тем не менее, задержка составляет 1 секунду, и я ищу что-то с миллисекундной детализацией. –

ответ

2

Wireshark может работать, в зависимости от того, насколько вы готовы отказаться от требований, не относящихся к GUI, и простота определения местоположения ваших целевых процессов. Wireshark, конечно же, является графическим интерфейсом, но команда tshark, которая поставляется вместе с ней, безголовна и может использоваться для захвата пакетов в файл. После захвата всех пакетов на интерфейсе вы можете снова запустить tshark в файле pcap, чтобы фильтровать файл с помощью Wireshark «Отображать фильтры» и извлекать только пакеты для вашего процесса. Это одна из частей, которая может быть или не быть простой, в зависимости от того, можете ли вы идентифицировать свой процесс из содержимого сетевого трафика, порта (ов) или путем добавления некоторых данных-дозорных фиктивных данных. Тогда у вас будет два файла pcap, один для всего сетевого интерфейса и один для всего процесса.

Команда capinfos сообщит о средней пропускной способности. Wireshark может использоваться для генерации графика времени трафика с миллисекундной (или другой) детализацией через меню «Статистика >> IO Graph». Что касается min и max, вы можете либо заглянуть в него из графика времени, либо использовать editcap, чтобы разбить файлы pcap на куски, запустите capinfos на каждом фрагменте и вычислите min и max по всем фрагментам.

Это может быть не самый простой подход, это то, что произошло со мной с головы.

+0

Должен быть простой способ сделать это? Я был бы удивлен, если бы мне пришлось сделать эту утомительную процедуру. –

+0

Было бы полезно, если бы вы предоставили небольшую демонстрацию о tshark, например 'tshark' на' wget google.com'. Переместил точку к этому вопросу [здесь] (https://stackoverflow.com/questions/45524246/how-to-monitor-a-single-process-with-tshark). – hhh