У меня есть два сервера, которые находятся в корпоративной сети. Сервер A имеет карту 10 Гбит / с rnet, а сервер B имеет карту 1 Гбит / с rnet.
Я копировал файлы из B в A и заметил, что это слишком медленно (~ 100 Мбит / с).
Итак, я использовал iperf3
для проверки пропускной способности между серверами.
При использовании TCP от A до BI получаем 1 Гбит / с, как и ожидалось. Но от B до AI получаешь всего ~ 100 Мбит / с.
Я продемонстрировал это, используя iperf -s
на обоих серверах, а также пробуя флаг -R
, который переворачивает поток.
Если я переключаюсь для UDP вот так:
iperf3 -c serverB -R -u -b 2000M
тогда я получаю 1 Гбит / с.
Итак, что-то ограничивает TCP-соединение? Что бы это могло быть и как мне его отрегулировать?
update: я заметил, что потеря пакетов в UDP-соединении была около 1%. Это кажется высоким. Действительно, когда пропускная способность TCP составляет 1 Гбит / с, потеря пакетов близка к 0%. Итак, теперь этот вопрос как раз о том, как выяснить источник потери пакетов. Используя traceroute
, я сузил его до одного маршрутизатора и сообщил об этом своему ИТ-отделу. Надеюсь, они могут выяснить, является ли это плохой порт или плохой кабель.