Iperf: Reduza o tamanho padrão do pacote UDP para fisicamente MTU - use WSA Registered IO no Windows para receber pacotes UDP

Criado em 25 jan. 2021  ·  4Comentários  ·  Fonte: esnet/iperf

Descobri, qual é o motivo, que as filas RSS UDP não estão funcionando: o adaptador de rede convergente Ethernet Intel(R) X550-T2 não envia pacotes jumbo mesmo se configurado (outra NIC faz), então todos os pacotes UDP maiores que os 1500MTU padrão são divididos em pacotes IP. Os pacotes IP não têm portas e o algoritmo UDP-RSS-Hashing não funciona. Mesmo que saiba que o pacote IP faz parte de um pacote UDP.

A única maneira é reduzir o tamanho da MTU no lado de envio do iperf para a MTU fisicamente.
Além disso, o Windows não recebe mais de um pacote UDP do kernel, ao usar a API WINSOCK padrão. O que resultará em uma carga de CPU muito alta. Para resolver este iperf deve-se usar a API de E/S Registrada WSA.

_Originalmente postado por @Febbe em https://github.com/esnet/iperf/issues/1049#issuecomment -766829448_

Comentários muito úteis

Enviado PR #1119 para adicionar opção para definir o sinalizador de não fragmentar.

Todos 4 comentários

Que bom que você conseguiu descobrir o que está causando esse problema! Infelizmente, a ESnet não suporta iperf3 no Windows, então se houver uma solução, ela terá que vir da comunidade (além de não quebrar o iperf3 para plataformas suportadas).

"ESnet não suporta iperf3 no Windows" significa que você como ESnet não vai consertar isso, mas você aceitará PR's da comunidade?

Como eu sei, RSS-Queues também são utilizados em plataformas Linux, então mesmo lá faria sentido, pelo menos, adicionar um sinalizador para proibir a fragmentação de pacotes para udp, em vez de usar o sinalizador padrão -l 8K.

"ESnet não suporta iperf3 no Windows" significa que você como ESnet não vai consertar isso, mas você aceitará PR's da comunidade?

Pegaremos PRs da comunidade se eles não quebrarem a funcionalidade (use compilação condicional se possível, existem vários exemplos na árvore) ou causar grandes mudanças no design do design do iperf3. Não temos a capacidade de realmente testar PRs específicos para Windows em nosso ambiente, portanto, a melhor chance de obter uma PR aceita é se for pequena e facilmente compreendida por desenvolvedores que não são do Windows.

Enviado PR #1119 para adicionar opção para definir o sinalizador de não fragmentar.

Esta página foi útil?
0 / 5 - 0 avaliações