Performance de rede no Hyper-V 2012 R2 com o vRSS – Parte 1


Olá Pessoal!

Hoje vamos falar de um assunto muito importante, a performance de rede no Hyper-V do Windows Server 2012 R2.

O que temos na verdade, ao tratarmos de rede no Windows Server 2012 R2, é uma verdadeira “salada de frutas” de conceitos que não são tão simples de entender, mas que são fundamentais para que se consiga atingir grandes níveis de performance, como o SR-IOV, VMQ, DVMQ, RSS, vRSS…

Bom, para falar de vRSS, obrigatoriamente temos que entender também alguns desses conceitos, e nesse artigo, falaremos especificamente do RSS, VMQ e DVMQ.

O RSS (Receive Side Scaling) é uma tecnologia que habilita uma distribuição eficiente da carga de processamento de rede, pois permite que o tráfego de entrada de uma única placa de rede, seja distribuído por mais de um único núcleo de processador. A placa de rede precisa suportar o RSS. No Windows Server 2003 já era possível habilitar o RSS, porém era necessário instalar o “Microsoft’s Scalable Networking Pack”, que inclusive, já estava integrado no Windows Server 2003 SP2, não precisando ser instalado, sendo então necessário apenas habilitar o RSS.

Para habilitar o RSS no Windows Server 2003, é preciso apenas acessar as propriedades avançadas do adaptador de rede, no gerenciador de dispositivos. Uma informação importante é que o RSS no Windows Serve 2003 costumava dar bastante dor de cabeça, sendo necessário desabilitar a tecnologia em alguns casos.

Já a partir do Windows Server 2008, o RSS é habilitado por padrão.

“No Windows Server 2012 o RSS foi bastante aprimorado, incluindo computadores com mais de sessenta e quatro processadores… Além disso, o RSS no Windows Server 2012 fornece recursos de balanceamento automático de carga para tráfego não TCP”. Technet (2016)

O VMQ (Virtual Machine Queues) é uma tecnologia de enfileiramento do Microsoft Hyper-V, introduzida no Windows Server 2008 R2, e que utiliza as capacidades da tecnologia VMDq (Virtual Machine Device Queues) das placas de rede Intel, ou seja, são tecnologias complementares.

Então através da utilização das tecnologias VMQ e VMDq, o que acontece é que são criadas na placa de rede física, “filas” virtuais para cada Máquina Virtual existente no Host Hyper-V. O que acontece então nesse caso, é que os pacotes são entregues diretamente para a máquina virtual, ou seja, remove a sobrecarga da CPU associada a cópia de dados e filtragem do switch virtual no Host.

No Windows Server 2008 R2 é preciso habilitar o VMQ no sistema operacional de gerenciamento (host hyper-v), através de modificações nas configurações de chaves de registro específicas e na placa de rede física. Na placa de rede física é bem fácil, é preciso apenas acessar as propriedades avançadas do adaptador de rede, no gerenciador de dispositivos. Depois ao associar a interface de rede física ao adaptador virtual, a máquina virtual conseguirá utilizar o VMQ.

Esse processo acontece de maneira estática, ou seja, as filas para as diferentes VMs são relacionadas aos processadores do host pelo método conhecido como “round-robin”, e o processador relacionado a determinada fila, será sempre o mesmo, até a VM ser reiniciada.

Esse vídeo é excelente para melhor entender a tecnologia:

A maioria dos adaptadores de rede possuem a funcionalidade habilitada.

Já no Windows Server 2012, a tecnologia foi aprimorada, resultando no conceito conhecido como DVMQ (Dynamic Virtual Machine Queue, ou Fila de Máquina Virtual Dinâmica).

O que ocorre com o VMQ dinâmico, é que os núcleos de processador do host são alocados dinamicamente, resultando em uma dispersão melhor do processamento do tráfego de rede. Podemos dizer então que no Windows Server 2012, o VMQ ficou mais inteligente, utilizando filas dinâmicas.

Então quando estamos falando de VMQ hoje (a partir do Windows Server 2012), estamos falando de DVMQ. Em adaptadores de rede de 1Gbps, o VMQ é desabilitado por padrão, pois de acordo com a Microsoft, não há nenhuma diferença na performance com VMQ e adaptadores de 1Gbps.

Segue agora um diagrama da Microsoft ilustrando o VMQ:

perf1

Agora vai uma informação muito importante pois, conforme afirma Savill (2014), mesmo com o VMQ entregando o pacote diretamente para a VM, cada máquina virtual, internamente, ainda estará limitada a um núcleo de processador específico (vCPU), levando a uma largura de banda de cerca de 3 a 4 Gbps, mas isto é melhor do que o tráfego combinado de todas as VMs sendo limitado a 3 a 4 Gbps. Nos processadores mais modernos, é possível atingir uma largura de banda de 5 a 6 Gbps.

No próximo artigo, iremos verificar como resolver essa limitação, falar sobre as demais tecnologias e principalmente, sobre o vRSS, então até a próxima pessoal!!

Acesse a nossa página no Facebook e mantenha-se conectado com o melhor da tecnologia.