Ajuste de desempenho de rede do Windows 7 para LAN

8

Quero ajustar a pilha TCP do Windows 7 para obter velocidade em um ambiente de LAN.

Informações básicas: Eu tenho um Citrix XenServer configurado com Windows 2008R2, Windows 7 e Debian Lenny com kernel Citrix. As máquinas Windows possuem o Tools instalado, o iperfprocesso do servidor está sendo executado em um host diferente, também o Debian Lenny. Caso contrário, os servidores estão ociosos; os testes foram repetidos algumas vezes para confirmar os resultados.

Enquanto o teste com iperf2008R2 pode atingir cerca de 600-700Mbps sem qualquer ajuste, mas não consigo encontrar nenhum guia ou conjunto de parâmetros que farão com que o Windows 7 alcance algo acima de 150Mbps sem alteração no tamanho da janela TCP usando o -wparâmetro para iperf.

Eu tentei usar netsh autotuininga disabled, experimental, normale highlyrestricted- sem alteração. Mudar congestionprovidernão faz nada, assim como rsse chimney.

Definir todas as configurações disponíveis com os mesmos valores que no host do Windows 2008R2 não ajuda.

Para resumir:

  • Configurações padrão do Windows 2008R2: 600-700Mbps
  • Debian, configurações padrão: 600 Mbps
  • Configurações padrão do Windows 7: 120 Mbps
  • Padrão do Windows 7 iperf -w 65536: 400-500Mbps

Embora os 400Mbps ausentes de desempenho sejam os culpados pela NIC Realtek de baixa qualidade no host XenServer (eu posso fazer ~ 980Mbps do meu laptop ao servidor iperf), isso não explica por que o Windows 7 não pode obter um bom desempenho sem ajustar manualmente o tamanho da janela em o nível do aplicativo.

Então, como ajustar o Windows 7?

Hubert Kario
fonte

Respostas:

2

Tente ativar o RSS e o TCP Offload Engine :

netsg int tcp set global rss=enabled
netsh int tcp set global chimney=enabled 
alvosu
fonte
Esse é o padrão no Windows 2008R2, não ajuda.
Hubert Kario
Tente desativá-los.
31411 joeyqwerty
desabilitado, habilitado sem diferença
Hubert Kario
2

Pode ser um driver de rede diferente no Windows 2008R2 e no Windows 7. Além disso, o xenserver sempre fornece o mesmo nic virtual para o Windows 2008R2 e o Windows 7? Porque se for diferente, um driver diferente será carregado.

Pode haver algumas diferenças de desempenho.

Edição: Acabei de lembrar que o Windows 7, por padrão, tem buffers de envio / recebimento muito pequenos. Em alguns aplicativos que eu estava desenvolvendo, descobri que, no Windows 7, era algo patético como 8kB. No ubuntu linux é de cerca de 120kB. Você pode ler em algum lugar que o limite é de 64kB. Na verdade, isso está incorreto para versões posteriores do Windows. Descobri que pode ser configurado para até 1 MB e além. Embora pouco aumento de desempenho seja notado quando é tão grande.

Este link fornece alguns parâmetros de ajuste tcp no registro que se aplicam ao sistema. Esteja ciente de que muitas dessas opções podem ser substituídas pelos próprios aplicativos.

http://www.psc.edu/networking/projects/tcptune/ http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html

Tente aumentar o tamanho da janela e enviar / receber buffers. Esperamos que essas configurações do registro no link ainda se apliquem no Windows 7.

Matt
fonte
Então, por que, se eu definir uma janela TCP maior, a velocidade aumenta? E não, o XenServer não altera a NIC apresentada.
Hubert Kario
Eu estava falando apenas que isso pode ser um motivo. Sou desenvolvedor e, por acaso, estou desenvolvendo um aplicativo que empurra cargas de dados quase na velocidade de gigabit. No entanto, ao desenvolver no virtualbox, descobri diferenças de desempenho com diferentes drivers de nic. Sim, o aumento da janela TCP aumentará a taxa de transferência, pois haverá menos pacotes de retorno de confirmação. Você desligou todas as outras VMs no Xen para garantir que o Windows seja o único a usá-lo?
Matt
Meu uso habitual da rede no host Xen é inferior a 60-90KiB / s. E verificado o motorista, ele carrega o mesmo. Como observação lateral, o Xen e o Virtualbox são hipervisores completamente diferentes, um é o tipo 1 e o segundo é o tipo 2. Além disso, já vi os mesmos problemas de desempenho nas instalações bare-metal. Mencionei principalmente a virtualização para descartar problemas de hardware.
Hubert Kario
Acabei de me lembrar de algo. Detalhes na resposta principal.
Matt
1

O Autotuning do TCP (que você já descartou), o MTU que já foi abordado e o MMCS (Multimedia class scheduling) geralmente são as grandes diferenças. Como o MMCS ainda não foi abordado, tente desabilitá-lo.

Certifique-se de que o dimensionamento automático da janela tcp esteja desativado se você estiver na velocidade da LAN ou perto dela.

As instruções estão disponíveis aqui: http://smallvoid.com/article/winnt-services-mmcss.html

iivel
fonte
Não tenho certeza se a mudei (como já faz mais de 6 meses), mas parece promissor, tentarei amanhã.
Hubert Kario
Não ajudou muito, fez o desempenho 10-20% melhor.
Hubert Kario
0

Você não deve ver o driver Realtek dentro do Windows como uma máquina virtual no Citrix XenServer. Se o fizer, isso significa que você não tem o XenTools instalado. A NIC da Realtek que você vê é uma emulada fornecida pelo serviço QEMU dentro do Dom 0 (domínio 0). Após a instalação do sistema operacional Windows, antes de fazer qualquer outra coisa, especialmente a instalação do aplicativo, você precisa instalar o XenTools. Além disso, a velocidade é codificada após a instalação do XenTools (conforme observado no Guia do Usuário da VM), pois não há limite para a velocidade em um dispositivo virtual.

James
fonte
1
da pergunta inicial: "Realtek NIC no host do XenServer "
Hubert Kario