Я хочу измерить производительность сети, особенно задержку. Мы проводим стресс-тесты системы, которая отправляет аудио / видео данные в реальном времени по сети. Когда существует несколько одновременных подключений (например, 100 подключений), мы наблюдаем, что отправка данных от одной стороны ко второй занимает слишком много времени. В настоящее время я не знаю, связано ли это с производительностью сервера или с сетью.
Нагрузка на сервер действительно низкая (около 15% загрузки процессора), однако это все еще может быть проблемой сервера из-за переключения контекста потоков, и возможно, что данные ждут, пока сервер начнет обработку. Моя установка выглядит следующим образом:
Клиент -> Балансировщик нагрузки -> Прокси-сервер -> Сервер приложений -> Агент
Я хочу измерить, сколько времени требуется для отправки данных между каждыми двумя элементами (исключая только балансировщик нагрузки), например между клиентом и прокси-сервером.
Серверы - Windows Server 2008R2, клиент и агент - Windows XP / 7.
Я думал, что могу установить wirehark на каждую машину, синхронизировать часы и вручную проверять пакеты, захваченные на каждой машине. Однако я надеюсь, что есть лучшее решение.
Psping от Руссиновича выполняет пинг ICMP, пинг TCP, тестирование полосы пропускания и многое другое.
http://technet.microsoft.com/en-us/sysinternals/jj729731.aspx
У него есть серверный компонент и клиентский компонент, поэтому вы должны запустить его на обеих машинах для более сложных тестов.
Wireshark может быть полезен для выборочной проверки одной или двух станций, у которых проявляются симптомы. Он имеет отличную возможность построения графика времени приема-передачи (RTT). Если вы действительно теряете пакеты, вам потребуется больше, вам нужно будет выполнить коррелированный захват - по одному с каждой стороны и определить, где пакет может быть отправлен, но не получен, или что-то еще, например, повторная передача. Вы также можете определить, происходит ли много повторных передач.
Если вы отправляете много небольших TCP-пакетов, возможно, вы столкнетесь с задержанным подтверждением по умолчанию на 200 мс. Если симптом воспроизводится, он может проявляться в захвате пакета как 200-миллисекундные промежутки между пакетами и соответствующими ACK.
Wireshark кажется излишним, если вы просто тестируете сеть. ping
будет работать, в простейшем случае просто запустив заданное количество эхо-запросов во время вашего теста и затем проанализировав результаты, или немного пойдем дальше, написав небольшую программу, которая запускает тест по расписанию, а затем сохраняет данные в файл CSV. Вы можете запустить это между любыми двумя узлами в сети, между которыми вы хотите проверить задержку.
Если вы ищете общую задержку для программы, вам понадобится что-то другое.
Я бы не стал доверять wirehark и синхронизированным часам для проверки этого, поскольку вы будете искать миллисекундные различия, которые могут не отображаться точно между двумя разными хостами в одной сети.