Назад | Перейти на главную страницу

Максимальная пропускная способность на коммутаторе с разной скоростью соединения

Выполняя сравнительный анализ сетевого приложения, я обнаружил странное поведение, которое связано с клиентами Ethernet 100 Мбит и 1 Гбит, подключенными через коммутатор (at-gs900 / 8e). У меня один сервер (Гбит) и несколько клиентов, сетевое приложение использует TCP / IPv4. Каждый клиент получает большие потоки данных по одному соединению.

Пока данные с сервера получают только клиенты со скоростью GBit, все в порядке, восходящий канал сервера загружается даже одним клиентом; когда данные получают несколько клиентов, пропускная способность распределяется между ними поровну. Но как только один 100-мегабитный клиент также получает данные от сервера, производительность падает примерно до 100 Мбит / с на клиента, даже для гигабитных. Таким образом, когда только 100-битный клиент получает данные, я получаю 100 Мбит / с на выходе, с дополнительным гигабитным клиентом я получаю 200 Мбит / с и так далее ... Моя первая идея была такой: «Возможно, сетевая карта сервера переключится обратно на 100 Мбит / с FD», но это явно не имеет никакого смысла, поскольку я получаю выход 100 МБит / с на клиента, не все.

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

Обновить: Я обнаружил, что это вызвано управлением потоком Ethernet, а именно так называемыми кадрами паузы. Я не понял, кто создает эти фреймы, 100-мегабитный клиент или сам коммутатор, но мне все еще странно, что он не дросселирует сервер до 100 Мбит / с в целом, вместо 100 Мбит / с на клиента. . Итак, «решение» на сервере - отключить управление потоком, что, по крайней мере, в моем сценарии нормально, поскольку TCP справляется с перегрузкой самостоятельно: ethtool -A eth0 autoneg off rx off tx off приведет к 100 Мбит / с для клиента со 100 Мбит / с и 900 Мбит / с для второго клиента с поддержкой GBit. :-)

Однажды у меня был переключатель буферизации, который вел себя примерно так же: если один порт в потоке работал с более низкой скоростью, другие порты перетаскивались на более низкую скорость при обмене данными с ним.

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

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

--дэйв