Estamos tentando depurar taxas de transferência muito baixas para clientes remotos acessando nosso servidor da Web (IIS no 2k12 R2).
O RTT para o cliente é de cerca de 150ms e estamos lutando para obter mais de cerca de 500kbps de nosso link de 100Mbps. O cliente pode acelerar o download de mais de 300MBit / s para um servidor de teste de velocidade local, portanto, não acreditamos que o problema esteja no lado do cliente, mas no envio.
O Wireshark mostra que o remetente (IIS) nunca envia mais de 3 pacotes sem esperar por um ACK. O maior número de bytes em vôo que já vimos é de cerca de 20KB. A janela de recebimento anunciada pelo cliente é de aproximadamente 256kB, então o remetente simplesmente não está preenchendo a janela.
Tentamos muitas coisas para corrigir isso, incluindo a desativação de todas as opções de descarregamento nas configurações da NIC, desativação de heurísticas etc. etc. Isso está nos deixando malucos, já que isso significa que nossa infra-estrutura de servidor é basicamente inutilizável para essa finalidade .
Roteador: C2911 / K9
Servidores: Dell R730s com NICs broadcomm que executam hipervisores Hyper-V 2012 R2
Podemos ver a velocidade de upload para os servidores de teste de velocidade locais saturar nosso link, mas acredito apenas porque a latência é muito baixa. Os timestamps do Wireshark mostram que o remetente está aguardando ACKs pelos quais ele não deveria estar esperando.
O IIS não envia serialmente bloqueios com pequenos buffers ou algo assim?