Отправка данных с одной машины на несколько машин, как найти фактор перегрузки? - PullRequest
1 голос
/ 28 января 2012

Я не сетевой парень, поэтому не буду использовать сетевой жаргон для безопасности.У меня есть машина с достаточно современной сетевой картой (100 Мбит / с?), И я отправляю данные с этой машины на многие машины (50-500), которые имеют аналогичную пропускную способность сети.Для этого моя программа использует несколько каналов TCP.Никаких других забавных оптимизаций TCP там нет, просто многоканальные TCP-каналы.Я хочу определить, каковы будут факторы, ограничивающие объем данных, которые я могу отправить на эти машины.

Одним из таких факторов, о котором я мог подумать, является перегрузка на хосте.Но сколько именно заторов?Какие факторы определяют заторы?Любые другие предположения или неправильные предположения, которые я здесь делаю?

Редактировать: Вот что я знаю об архитектуре сети: Исходный компьютер является частью университетской сети.Брандмауэр установлен, но порт, через который происходит передача, открыт.Я не совсем уверен, через какие коммутаторы или маршрутизаторы будут передаваться мои данные в конечные пункты назначения.Говоря о местах назначения, это машины, которые географически распределены по разным университетам, поэтому они также находятся под университетской инфраструктурой.Я знаю, что нет ничего конкретного в информации, которую я предоставил выше, но это все, что я знаю на данный момент.Существуют ли какие-либо конкретные команды, которые я мог бы использовать на своем хосте (окно linux), чтобы получить больше информации?Спасибо.

1 Ответ

1 голос
/ 03 февраля 2012

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

Вы можете угадать верхнюю границу, определив самую медленную скорость соединения в каждом пути. Например, если в данной сети имеется восходящая линия связи со скоростью 10 мегабит в секунду, то вы знаете, что любой путь, пересекающий эту восходящую линию связи, будет медленнее, чем 10 мегабит в секунду, независимо от того, насколько быстрым может быть любое другое оборудование. Если у вас есть несколько сеансов, совместно использующих одну ссылку, их общее количество не может быть быстрее, чем ссылка, но они могут не распределять пропускную способность одинаково.

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

Это вопрос, который я часто слышу, поэтому я написал пару статей на эту тему.

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

Потеря, задержка и скорость описывает, как вы можете собирать и интерпретировать статистику о конкретном пути для диагностики его характеристик производительности. Это может помочь вам выбрать инструменты измерения производительности и интерпретировать их результаты.

...