Мы исследуем проблемы производительности в одном из нашего развертывания программного обеспечения между нашими серверами приложений (Windows) и нашими экземплярами Redis (Linux).
На ссылке на 10 Гбит/с единственные соединения TCP могут по-видимому только достигнуть 10 Мбит/с. Открытие нескольких соединений TCP позволяет нам достигать более высокого bandwitch. UDP, кажется, не затронут этими ограничениями и достигает полной скорости ссылки. Это отчасти заставляет нас подозревать, что некоторое сетевое устройство (брандмауэр, проксируйте?) в сети вызывает эти различия в пропускной способности.
Мы сделали те измерения использование iperf
(та же версия) и на серверах Windows и на Linux один.
Наша сетевая команда однако, полностью отбрасывания, они заканчиваются на основе того, которое "iperf официально не поддерживается в Windows и таким образом, результатам нельзя доверять". В то же время они отклоняют для обеспечения альтернативного инструмента, чтобы сделать те измерения и утверждать, что "сеть прекрасна".
Таким образом, мой вопрос: может iperf
надежно используйтесь для измерения TCP и производительности UDP между серверами Windows и Linux? Если бы не, какой инструмент Вы рекомендовали бы?
iperf можно было бы использовать, интересно, какие параметры вы использовали, когда сообщали 10 Мбит/с.
Другой полезный инструмент - Netpipe (доступен в репозитории Linux) и для Windows я бы порекомендовал использовать версию Java, доступную здесь :
Информация о том, как запустить Netpipe, находится здесь .
Мы можем помочь вам в выявлении проблемы, связанной с доступом к Redis. Какого сетевого поставщика вы используете?
.iperf отлично поддерживается в Windows, по крайней мере, с 2005 года. Сейчас у вас даже есть разные версии для iperf3 в Windows : доступны 32-битные, 64-битные и даже версии UWP.
Как только у вас будет одна и та же версия (и под версией я подразумеваю сборку, например v3. 1.3, например) iperf3 как на клиенте, так и на сервере, вы можете протестировать скорость 10 Гбит / с, выполнив следующие действия:
iperf3 -s
Должен показать такой вывод:
------------------------
Server listening on 5201
------------------------
iperf3 -P XX -c $ server_ip
Где:
Это должно вывести что-то вроде:
[SUM] 0.00-10.00 sec 10.9 GBytes 9.30 Gbits/sec sender
[SUM] 0.00-10.00 sec 10.8 GBytes 9.28 Gbits/sec receiver
Если это не удается, вы можете попробовать поиграть с размером окна TCP. Вы можете изменить его на стороне клиента с помощью флага -w XXu
, где XX - размер, а u - единица измерения (k, m).
] Другой способ проверить пропускную способность сети - обслуживать http-файл с одного из концов и использовать какой-нибудь инструмент загрузки, который позволяет выполнять параллельные потоки (wget, filezilla или почти все диспетчеры загрузки). Или запустить тестовый инструмент, но я бы остался с iperf, который обычно является инструментом по умолчанию для работы (почти) для всех.