LINUX.ORG.RU

Чем можно объяснить, что на передачу сеть работает быстрее, чем на прием?

 


0

1

Тестировал железку на предмет пропускной способности сетевых интерфейсов. Железка дохленькая (не Интел). Заметил, что, если запускать тест на отправку трафика с этой железки, то получается в полтора раза вше пропускная способность, нежели запускать тест на прием трафика этой железкой. Интересно стало, как это можно объяснить.

А как ты это тестировал, мы, конечно же, должны догадаться, посмотрев в магический хрустальный шар?

post-factum ★★★★★
()

Там много причин может быть, в большинстве случаев будет зависить от сетевого адаптера + драйвера. Если затык в траффике по CPU то там большую роль будет играть сетевая (как она генерирует прерывания, как драйвер их обрабатывает, какие режимы и фичи потдерживает и тд).

zaz ★★★★
()
Ответ на: комментарий от zaz

Ну а хотя бы к примеру, что может быть не реализовано в сетевой/драйвере, что может приводить к такому дисбалансу?

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

zloy_starper ★★★
() автор топика
Ответ на: комментарий от zloy_starper

Ну хотя бы транспортный протокол обозначь для начала.

post-factum ★★★★★
()
Ответ на: комментарий от zloy_starper

Все зависит от деталей. Например сетевой адаптер может сам сщитать чексумы (и например он может это делать только для исходящего, или только для входящего траффика - а может и в обоих направлениях). Потом есть есть такая вещь как TCP Large Segment Upload - когда за одну DMA итерацию CPU может послать несколько (как правило 3) пакета. Эта фича также может работать только в одном или в обоих направлениях. Также есть несколько моделей генерации прерываний сетевой картой (упрощенно говоря сетевая может генерировать прерывание на каждый входящий пакет и CPU бедет выдергивать пакеты по одному, или просто сигнализировать что входная очередь перестала быть пустой - тогда CPU может вынимать пакеты группами). Вобщем фич очень много разных, и много разных настроек / режимов и все они могут влиять но общую производительность сетевого стека.

zaz ★★★★
()

И да еще забыл - возможно на входящий траффик может влиять более тяжолая цепочка INPUT чем OUTPUT в iptables

zaz ★★★★
()

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

mashina ★★★★★
()

Очевидно аппаратные особенности системы.

anonymous
()

Не в интернет надеюсь тестировал?

anonymous
()

Такое вполне может быть. И какие же у тебя результаты? Какая карта, чем замерял? С iperf такое видел не раз. Попробуй разные размеры окон, есть режим UDP.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.