Я столкнулся с некоторыми, с моей точки зрения, противоречащими интуиции результатами некоторых тестов iperf3 между двумя серверами с интерфейсом 40 Гбит / с (остальные протоколы конфигурации стека tcp одинаковы на двух серверах).
Испытания следующие:
Server A Server B
======== ========
GRO OFF GRO ON
iperf3 CLIENT --traffic--> iperf3 SERVER
Result: 10Gbps
TCP window size: 85.3 KByte (default)
а в другую сторону:
Server A Server B
======== ========
GRO OFF GRO ON
iperf3 SERVER <--traffic-- iperf3 CLIENT
Result: 37Gbps
TCP window size: 1.03 MByte (default)
Если мы активируем GRO на сервере A, результат iperf3 вырастет до 30 Гбит / с.
Вопросы:
Мне противоречит интуиции, что GRO имеет большее влияние на «отправляющую» сторону трафика ??? Может быть, группировка в ACK имеет большое влияние?
Не уверен, почему окно tcp ТАК отличается в обоих направлениях. Может ли GRO повлиять на максимальный размер окна TCP?