Измерение пропускной способности Ethernet канала / Хабрахабр. Возникла задача измерить пропускную способность Ethernet канала и предоставить отчет, причем измерения нужно проводить 2. Какими способами это можно сделать? Чем Сервис speedtest. Интернет до некого сервера.
Нам не подходит так как данный сервис меряет не конкретный канал связи, а всю линию до определенного сервера, так же измеряемый канал связи не имеет выхода в Интернет; Скачать объемный файл из одного конца канала в другой. Не совсем подходит так как отсутствует необходимая точность измерения; Iperf — клиент- серверная утилита, позволяющая проводить измерения заданное время с предоставлением простенького отчета. С ней мы сейчас и поработаем. Как. Применение инструмента iperf очень простое: с одной стороны канала на компьютере запускается сервер, который ждет соединения от клиента: d@i: ~$ iperf - s. Server listening on TCP port 5. TCP window size: 8.
KByte (default). - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -. С другой стороны канала на другом компьютере запускается клиент с указанием ip сервера: d@i: ~$ iperf - c 1. Client connecting to 1. TCP port 5. 00. 1.
TCP window size: 2. MByte (default). - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -. Отлично, но нам нужно измерять скорость целые сутки. Смотрим параметры iperf - -help и находим там кучу полезной информации.
В итоге у меня получилось примерно так: d@i: ~$ iperf - c 1. Client connecting to 1. TCP port 5. 00. 1. TCP window size: 2. MByte (default). - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -. Уже лучше, но не совсем удобно просматривать такой отчет за целые сутки (в таком отчете будет 8. Смотрим help дальше и видим что iperf умеет предоставлять отчет в виде: -y, - -reportstyle C report as a Comma- Separated Values.

Проверяем: d@i: ~$ iperf - c 1. C. 2. 01. 41. 13. Гнатюк Основы Теории Коммуникации Читать Онлайн.
Расширенные функции тестирования сетей Ethernet, TrueSpeed по RFC. Программа интерпретатора событий рефлектограммы Smart Link Mapper. Программа, позволяющая замерять скорость передачи данных в локальной сети.
Отлично! То, что нужно! Теперь iperf выдает статистику удобную для обработки. Параметры в отчете разделены запятыми. Первая колонка — дата и время, потом видны ip адреса и порты клиента и сервера, в конце пропускная способность в битах/с. Перенаправим этот отчет в файл: d@i: ~$ iperf - c 1.
C > stat. txt. Поcле окончания суточного теста в файле stat. И что теперь с этим делать? Просматривать глазами каждую из нескольких тысяч строк и делать анализ конечно можно, но когда- то люди придумали компьютеры в первую очередь для облегчения себе труда, а не для просмотра котиков в вконтактиках и мы воспользуется этим изобретением.

В файле отчета лежат данные необходимые и не очень. Избавимся от лишних. Нас интересует дата/время измерения и скорость в эту дату/время. Это первый и последний параметр в каждой строке файла stat. Я обработал этот файл наспех написанным скриптом на python. В файле est. txt получается: d@i: ~/project/iperf.
Показана дата, время результат измерения в Мбит/с. Для этого примера взяты результаты измерения за 1.

Но всё еще результат в виде текстового файла не сильно удобного для анализа. Надо нарисовать график!
Для рисования графиков есть специальные и крутые программы. Я советую gnuplot за ее супергибкость, бесплатность, кучу примеров в интернете. После получаса копаний в результатах запроса к гуглу «gnuplot example» у меня родился следующий скрипт: #! Запускаем и появляется файл graph. Результат. В результате появилась простая методика измерения пропускной способности канала с визуально удобным отчетом и два скрипта обработки данных.

В эти скрипты можно напихать кучу всего другого для гибкости вроде: отчет за заданный интервал времени, более подробную детализацию графика для более пристального расматривания, прикрутить анализ по времени отклика ping, параллельно с сбором суточных даных снимать с каналообразующего оборудования по SNMP другие данные типа уровней сигнала на радиоканале и показателей BER, но это уже другая история.
