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 iperf
processo 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 iperf
2008R2 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 -w
parâmetro para iperf
.
Eu tentei usar netsh
autotuining
a disabled
, experimental
, normal
e highlyrestricted
- sem alteração. Mudar congestionprovider
não faz nada, assim como rss
e 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?
fonte
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.
fonte
MTU? http://networking.nitecruzr.net/2007/11/setting-mtu-in-windows-vista.html
fonte
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
fonte
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.
fonte