O uso da funcionalidade EVC (Enhanced Vmotion Compatibility) degrada a performance?

O uso da funcionalidade EVC (Enhanced Vmotion Compatibility) degrada a performance?

Com certa frequência escuto esta pergunta, mas antes de respondê-la, vamos entender o que é o EVC ou Enhanced Vmotion Compatibility. O EVC é um recurso que permite um cluster VSphere composto de hosts (servidores físicos) com versões diferentes de processadores sejam compatíveis com a movimentação de máquinas virtuais a quente (Vmotion). Quando uma máquina virtual está em execução e ela é movida para outro host é necessário que o processador do host de destino seja compatível com o conjunto de instruções do processador do host de origem (arquiteturas, ou ISA’s compatíveis entre si). Na figura abaixo temos o EVC habilitado em um cluster com compatibilidade a nível de instruções com a família Intel Skylake (os processadores mais recentes como os modelos Xeon Bronze, Silver, Gold e Platinum).

EVC
Detalhe da ativação do EVC em um cluster.

Agora a resposta à pergunta, se o uso do EVC degrada a performance: A resposta simples é SIM.

 A resposta completa (que eu prefiro) é: DEPENDE.

De uma forma geral é muito comum as pessoas acreditarem que o uso do EVC limita o acesso ao clock mais elevado do processador, acesso aos “cores” do processador ou ainda que limita a velocidade e o acesso a quantidade de memória do host. Na prática isso não ocorre, o que o EVC faz é mascarar novas instruções que são disponibilizadas a cada nova geração de processadores. Então o impacto na performance dependerá muito do tipo de máquinas virtuais executadas no cluster, mas especificamente o tipo de carga de trabalho.

Como saber se minhas cargas de trabalho são afetadas ou não pelo uso do EVC?

Existem duas formas, uma é consultar a documentação ou diretamente o fabricante do software e a outra maneira é através da experimentação (testes).

Qual o impacto médio na performance?

Isso vai depender da carga de trabalho, por exemplo, um cluster composto por quatro hosts (servidores físicos), sendo três deles com processador Intel Xeon E5540 (arquitetura Nehalem) e um host com processador Intel Xeon E5-2420 (arquitetura Sandy Bridge) com EVC ativado (neste caso com o nível de compatibilidade do processador mais antigo, ou seja, Nehalem), as instruções disponibilizadas com a arquitetura Sandy Bridge como Intel AVX, XSAVE, AES e ULE, não serão expostas as máquinas virtuais que estão em execução no host com processador Xeon E5-2420, instruções como estas melhoram significativamente o processamento de criptografia, por exemplo, (funcionalidades como Transparent Data Encryption disponíveis no Oracle e MS SQL Server). Existe um estudo antigo, porém ainda relevante da Vmware que ilustra o impacto da performance em cluster com EVC ativado (Impact of Enhanced vMotion Compatibility on Application Performance). Na figura abaixo temos um gráfico presente no estudo que me chamou bastante a atenção, relacionado à performance de criptografia SSL.

Velocidade de encriptação OpenSSL (algoritmo AES) em diferentes modos de compatibilidade EVC.

Posso possuir um cluster composto por Hosts com processadores Intel e AMD?

Sim. Não existem restrições, exceto o fato que neste cenário é impossível realizar vMotion entre os hosts com processadores de fabricantes diferentes. Nem mesmo será possível ativar o EVC neste cluster, pois o EVC é limitado ao nível de arquitetura de um mesmo fabricante.

A funcionalidade VSphere H.A. irá funcionar em um cluster composto por processadores de diferentes gerações sem a ativação do EVC?

Sim. O funcionamento do VSphere H.A. (High Availability ou alta disponibilidade) é diferente do EVC, pois o H.A. atua quando um host (servidor físico) fica indisponível e neste caso as máquinas virtuais que estavam em execução neste host, são “ligadas” nos hosts remanescentes, ou seja, não houve transferência do estado de execução das máquinas virtuais, quando o host se tornou indisponível, as máquinas virtuais foram “desligadas” e na sequencia foram “ligadas” em outro host. Inclusive o H.A. funcionará em cluster composto de hosts com processadores de fabricantes diferentes (AMD e Intel).

Posso mover uma máquina virtual desligada em um cluster composto por processadores de diferentes gerações sem a ativação do EVC?

Sim. Neste caso o processo será similar ao explicado anteriormente no caso do VSphere H.A., não ocorrerá transferência de estado de execução.

Bem, creio que esclareci praticamente todas as dúvidas referentes a clusters compostos de processadores de diferentes fabricantes e de diferentes gerações. Se ainda persistirem dúvidas, sugiro a leitura do artigo: EVC and CPU Compatibility FAQ (1005764) ou ainda deixar sua dúvida nos comentários.

Consultor veterano na área de Tecnologia da Informação, com passagem em grandes empresas, graduado em Ciência da Computação com especialização em microeletrônica e gestão de projetos, detentor de diversas certificações de mercado (Microsoft, Cisco, Brocade, Vmware, etc.).

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *