Каковы за и против большого получают, разгружаются (LRO) по сравнению с универсальным получают, разгружаются (GRO)

Я отлаживал сценарий, где хост VMware ESX связывается с виртуальной машиной Linux через виртуальный коммутатор с помощью TCP/IP. После события перегрузки хост VMware ожидает ack от виртуальной машины, в то время как виртуальная машина ожидает большего количества данных из хоста VMware. Большой получают, разгружаются (LRO) включен, и проблема, кажется, что драйвер VMware не дает ядру размер подсегментов, которые это соединяет (который это может сделать через gso_size поле sk_buff структуры).

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

1) почините драйвер VMware так, чтобы он установил gso_size поле sk_buff, переданного ядру или 2) выключите LRO (использующий ethtool-K) и используйте ВАЛОВОЙ вместо этого.

Ища в сети для получения информации о LRO и ВАЛОВОЙ, я нахожу только отрывки и мнения без точных данных или категорических ссылок. Я хочу знать то, что является за и против использования LRO по сравнению с ВАЛОВЫМ.

От моих поисков в сети до сих пор я полагаю что: *), И LRO и ВАЛОВОЙ мог сократить число acks, который должен уменьшить сетевой трафик, но по-видимому мог также уменьшить скорость, которую окно перегрузки (cwnd) выращивает во время медленного запуска или предотвращения перегрузки. *), И LRO и ВАЛОВОЙ должен сократить количество прерываний и количества раз, что стопка ядра пересечена. ВАЛОВОЙ уменьшают прерывания больше, чем LRO, так как он использует новый API (NAPI)? *), LRO может иногда соединять слишком много пакетов (конкретные пакеты с отличающимися заголовками, повреждая определенные приложения). *) LRO только делает IPv4, тогда как ВАЛОВОЙ может сделать IPv6 также.

0
задан 10 February 2015 в 19:01
1 ответ

Согласно эта старая статья LWN GRO по существу предназначалась для замены LRO. Насколько я понимаю, LRO намного более агрессивен, что может привести к объединению пакетов с потерями (отбрасывание важных данных заголовка), тогда как GRO более ограничивает.

В частности, LRO, как известно, проблематичен в средах с программным обеспечением мост и / или пересылка, которые являются обычным явлением в установках виртуализации.

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

1
ответ дан 4 December 2019 в 17:03

Теги

Похожие вопросы