Velocidade de rede do Windows Server 2008 lenta, Xen 3.4.3 HVM ISO

2

Eu configurei uma VM executando o Windows Server 2008 em um nó host executando o Xen 3.4.3-5 e o seguinte kernel: 2.6.18-308.1.1.el5xen # 1 SMP Wed Mar 7 05:38:01 EST 2012 i686 i686 i386 GNU / Linux

A velocidade da rede na VM é muito lenta - usando os testes de velocidade on-line, só posso aumentar para 8-9mbps. A linha é 100mbps burstable e o nó host não tem nenhum problema em atingir essas velocidades. Se eu configurar uma VM executando o CentOS (em vez do Windows Server 2008), essa VM do CentOS não terá problemas para atingir essas velocidades - apenas o Win2K8 se esforça.

Eu fiz uma solução de problemas bastante exaustiva, mas nada ajudou:

  • Novas instalações de VM do Win2k8 têm o mesmo problema de rede.
  • A atualização para o kernel-xen mais recente não ajudou (2.6.18-308.1.1.el5xen).
  • A atualização do xen 3.4.0 para o xen 3.4.3-5 não ajudou.
  • Desativar o firewall do Windows, etc, não ajudou.
  • A alteração da configuração do dispositivo da placa de rede, da negociação automática para o modo manual full duplex de 100 mbps, não ajudou.
  • Alterar o tamanho do pacote de buffer de recepção da rede não ajudou (tentei todos os combos de 64k para 8k).

Neste ponto, estou praticamente sem idéias - qualquer ajuda seria apreciada!

EDIT: Eu finalmente resolvi esse problema. Veja minha resposta aceita abaixo.

    
por Elliot B. 12.04.2012 / 03:12

2 respostas

7

Eu resolvi esse problema instalando drivers de paravirtualização Xen para a NIC e outros componentes no Windows. Os drivers padrão no convidado do Windows estavam interagindo horrivelmente com o nó do host Xen. Percebi que baixar um arquivo no Internet Explorer na VM aumentaria a CPU no nó do host para 75 a 90%. A instalação dos drivers GPLPV da James Harper para o Windows Server 2008 32bit resolveu o problema.

Se alguém tiver um problema semelhante, basta baixar e instalar o conjunto apropriado de drivers GPLPV encontrados aqui: link

No entanto, para o meu servidor em particular, a instalação dos drivers GPLPV não foi suficiente. Os drivers GPLPV restauraram as velocidades de download para níveis normais (~ 66mbps), mas as velocidades de upload ficaram em torno de 2mbps. Em seguida, tentei novamente as dicas fornecidas pelo @WesleyDavid para desativar todas as formas de descarregamento na configuração da NIC (por meio do gerenciador de dispositivos) e isso aumentou as velocidades de upload para até 36 MBps. Desde então, instalei drivers GPLPV em outros sistemas e não foi necessário modificar a configuração da NIC.

Atualização:

Desde que postei essa pergunta há um ano, instalei o Windows em várias máquinas Xen diferentes. Toda vez que eu instalei os drivers GPLPV de James Harper, tanto o desempenho da rede quanto o desempenho geral do sistema melhoraram drasticamente. Eu nunca consegui atingir velocidades de download / upload completas sem o uso dos drivers GPLPV da Harper.

Qualquer um que virtualize o Windows com o Xen em uma máquina host do RHEL / CentOS deve definitivamente testar os drivers fornecidos em link

    
por 12.04.2012 / 07:39
7

O problema é provável com o convidado do Windows e como ele está se comunicando com o NIC virtual. Aqui estão algumas coisas para tentar:

Desative o descarregamento de chaminés TCP no convidado do Windows. Para determinar se está habilitado, execute netsh int tcp show global . Para desativá-lo, execute netsh int tcp set global chimney=disabled

Desativar o descarregamento de TCP na NIC no convidado do Windows. Na instalação do Windows convidada, acesse o gerenciador de dispositivos, abra a NIC em questão, vá para a guia avançada e procure por qualquer opção TCP / UDP, checksum, largesend e / ou TCP / IP offloading. Desative-os. Se ele diz "offloading" desativá-lo.

Desativar o dimensionamento do lado do recebimento no convidado do Windows. Verifique se ele está ativado com netsh int tcp show global . Desativar com netsh int tcp set global rss=disabled .

Desative o NetDMA no convidado do Windows. Verifique se ele está ativado com netsh int tcp show global . Para habilitar / desabilitar manualmente, uma chave de registro precisa ser adicionada. Verifique se já existe com get-itemproperty -path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -name EnableTCPA . Se ele não existir e o NetDMA estiver habilitado, crie a seguinte chave do Registro com o PowerShell:

New-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableTCPA
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "EnableTCPA" -Value 0 -PropertyType "DWord"

Desative o descarregamento de tarefas de rede do Windows no Windows Guest. Verifique se a chave do Registro existe usando o PowerShell: get-itemproperty -path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -name DisableTaskOffload . Se isso não acontecer, adicione essa chave do Registro ao PowerShell: New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "DisableTaskOffload" -Value 1 -PropertyType "DWord"

Desative o ajuste automático no Windows Guest. Primeiro, verifique se ele está ativado: Netsh interface tcp show global . Se estiver, desative-o com: Netsh interface tcp set global autotuning=disabled

Desative a Compactação Diferencial Remota no Windows Guest, se estiver ativada. Vá para o comando run e execute appwiz.cpl, selecione "Ativar ou desativar recursos do Windows" e desmarque a compactação diferencial remota. / p>

Verifique se o Antivírus está configurado para verificar o tráfego ao vivo. As ferramentas antivírus podem ser configuradas para verificar todo o tráfego proveniente do host em busca de algo mal-intencionado. Se esse for o caso do seu convidado do Windows, desative-o temporariamente para testar.

EDIT 1

Alguns últimos esforços para isso incluem:

  • Um dos meus palpites era que havia uma incompatibilidade de velocidade de porta - mas você resolveu isso. A menos que haja mais opções com as quais você possa se preocupar,
  • Eu geralmente recomendo atualizar o driver de rede, mas isso é menos necessário em uma VM, já que a NIC virtual é bastante baunilha.
  • Instale as ferramentas de guest mais recentes no Windows Guest.
  • Eu vi alguns problemas com o IPv6 em clientes Windows causando lentilhas misteriosas de TCP / IP. Não faço ideia do porquê; Eu não pesquisei profundamente. Eu suponho que você poderia desinstalar / remover v6 da NIC.
  • Verifique as estatísticas de TCP / IP no convidado do Windows para ver se há muitos erros ou outros números interessantes. netstat -es fará o truque.
  • Por último, mas com certeza não menos importante, instale o Network Monitor e inspecione o tráfego em busca de algo incomum. Erros de CRC, reconexões, pacotes descartados ... quem sabe. Qualquer coisa que pareça feia.
por 12.04.2012 / 04:33