Я пытаюсь написать простой сценарий, который может обнаружить провалы в сетевом трафике (как пропускная способность, так и задержка в обоих направлениях) между двумя произвольными узлами в моей сети с течением времени. Есть ли инструмент для этого?

При необходимости я планирую написать пару сценариев клиент / сервер в bash для выполнения этого тестирования с использованием nc (netcat), но если уже существующее решение фиксирует то, что я пытаюсь сделать, пожалуйста, дайте мне знать.

Сначала я определю, сколько данных я могу отправить за 1 секунду между произвольными хостами. Мы назовем это "полезной нагрузкой". Начальные тесты показывают, что полезная нагрузка составляет ~ 50 МБ.

Тогда я выполню следующее:

  1. Клиент отправляет полезную нагрузку на сервер.
  2. Когда сервер получает всю полезную нагрузку, он немедленно отвечает, отправляя полезную нагрузку клиенту.
  3. Когда клиент получит всю полезную нагрузку, он будет спать в течение 30 секунд. Перейти к 1.

При этом я получу следующие данные (двунаправленная пропускная способность и задержка):

  1. Записывая time выполнения nc от клиента к серверу в (1), я получу пропускную способность, отправляющую данные от клиента к серверу.
  2. Записав time выполнения nc с сервера на клиент в (2), я получу пропускную способность, отправляющую данные с сервера на клиент.
  3. Каким-то образом я определю задержку пакетов, возможно, с помощью инструмента мониторинга или определения временных меток между первым пакетом полезной нагрузки, отправленной из источника, и первым пакетом полезной нагрузки, полученной в месте назначения.

2 ответа2

0

Вы должны проверить, что iperf делает то, что вам нужно.

Исходя из моего понимания ваших вопросов, я думаю, что должно.

0

iPerf - хороший инструмент для тестирования производительности. Вместо того, чтобы написать сценарий для мониторинга загрузки, как вы предлагаете, я бы посмотрел на Nagios (и интегрировал PNP4Nagios, который будет разбирать уведомления для вас и предоставлять вам графики производительности с течением времени.

Я действительно задаюсь вопросом, насколько практично перемещать данные между такими хостами на постоянной основе в долгосрочной перспективе, поскольку это приводит к потере пропускной способности, которая в противном случае была бы доступна. Разве вам не лучше контролировать реальную пропускную способность канала и соотносить ее с задержкой и потерей пакетов, чтобы определить, получаете ли вы то, за что платите, когда вам это нужно? (Я "дал пощечину") провайдерам, которые - играя в самую старую игру из книги провайдеров, - настаивали на том, чтобы проблема не была в их сети более одного раза, используя это, особенно при мониторинге нескольких точек)

Я отмечаю, что, хотя задержка, потеря пакетов и пропускная способность не полностью зависят друг от друга, существует (для канала с известными / контрактными / ожидаемыми характеристиками) корреляция между этими факторами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .