Quando uma máquina virtual Windows em vSphere transmite grandes pacotes UDP, o rendimento é menor do que o esperado ou está oscilando mesmo quando outro tráfego é insignificante.
Problema
Quando uma máquina virtual Windows transmite pacotes UDP maiores que 1.024 bytes, você experimenta uma taxa de transferência menor do que o esperado ou oscilante, mesmo quando outro tráfego é insignificante. No caso de um servidor de streaming de vídeo, a reprodução do vídeo é pausada.
Causa
Para cada pacote UDP maior que 1.024 bytes, a pilha de rede Windows aguarda uma interrupção de conclusão de transmissão antes de enviar o próximo pacote. vSphere não fornece uma solução alternativa transparente para a situação.
Solução
- Aumente o limite em bytes no qual Windows altera seu comportamento para pacotes UDP modificando o registro do sistema operacional convidado Windows.
- Localize a chave de registro HKLM\System\CurrentControlSet\Services\Afd\Parameters.
- Adicione um valor com o nome FastSendDatagramThreshold do tipo DWORD igual a 1500.
- Modifique as configurações de união da NIC da máquina virtual.
Se a máquina virtual Windows tiver um adaptador VMXNET3 vNIC, configure um dos seguintes parâmetros no arquivo
.vmx da máquina virtual. Use o
vSphere Client ou modifique diretamente o arquivo
.vmx.
Ação |
Parâmetro |
Valor |
Aumente a taxa de interrupção da máquina virtual para uma taxa de pacote mais alta do que a esperada. Por exemplo, se a taxa de pacotes esperada for de 15.000 interrupções por segundo, defina a taxa de interrupção como 16.000 interrupções por segundo. Defina o parâmetro ethernetX.coalescingScheme como rbc e o parâmetro ethernetX.coalescingParams como 16000. A taxa de interrupção padrão é de 4.000 interrupções por segundo. |
ethernetX.coalescingScheme ethernetX.coalescingParams |
rbc 16000 |
Desative a coalescência para cargas de trabalho de baixa taxa de transferência ou sensíveis à latência. Para obter informações sobre como configurar cargas de trabalho de baixa latência, consulte Práticas recomendadas para ajuste de desempenho de cargas de trabalho sensíveis à latência em vSphereVMs. |
ethernetX.coalescingScheme |
desativado |
Reverta para o algoritmo de união das versões ESXi anteriores.
Observação: A capacidade de reverter para o algoritmo anterior não estará disponível nas versões vSphere posteriores.
|
ethernetX.coalescingScheme |
calibrar |
X ao lado de ethernet representa o número de sequência da vNIC na máquina virtual.
Para obter mais informações sobre como configurar parâmetros no arquivo .vmx, consulte a vSphere Administração de máquina virtualdocumentação.
- Modifique as configurações de coalescência do host ESXi.
Essa abordagem afeta todas as máquinas virtuais e todas as NICs de máquinas virtuais no host.
Você pode editar a lista de configurações avançadas do sistema para o host no vSphere Client ou usando um comando de console do vCLI no host do ESXi Shell.
Ação |
Parâmetro no vSphere Client |
Parâmetro para o comando esxcli system settings sdvanced set |
Valor |
Defina uma taxa de interrupção padrão superior à taxa de pacote esperada. Por exemplo, defina a taxa de interrupção como 16.000 se forem esperadas 15.000 interrupções por segundo. |
Net.CoalesceScheme Net.CoalesceParams |
/Net/CoalesceScheme /Net/CoalesceParams |
rbc 16000 |
Desative a coalescência para cargas de trabalho de baixa taxa de transferência ou sensíveis à latência. Para obter informações sobre como configurar cargas de trabalho de baixa latência, consulte Práticas recomendadas para ajuste de desempenho de cargas de trabalho sensíveis à latência em vSphereVMs. |
Net.CoalesceDefaultOn |
/Net/CoalesceDefaultOn |
0 |
Reverta para o esquema de união das versões ESXi anteriores.
Observação: A capacidade de reverter para o algoritmo anterior não estará disponível nas versões vSphere posteriores.
|
Net.CoalesceScheme |
/Net/CoalesceScheme |
calibrar |
Para obter informações sobre como configurar um host do vSphere Client, consulte a documentação do vCenter Server e gerenciamento de host. Para obter informações sobre como configurar propriedades do host usando um comando vCLI, consulte a documentação do Referência de ESXCLI.