hyperthreading da instância do AWS EC2

5

Atualmente, estou realizando alguns testes de desempenho de aplicativos da web que movemos para a AWS.

Uma das coisas que notamos é que o desempenho de vCPU não parece ser tão bom quanto esperávamos. De fato, em uma máquina de vCPU altamente utilizada, reconhecemos que 50% do uso de CPU relatado (via vmstat) foram relatados como roubo de CPU. Nós parecíamos estar recebendo apenas metade dos ciclos principais.

Depois de fazer algumas pesquisas, parece que na maioria das instâncias do EC2, uma vCPU significa que você obtém um dos hyperthreads disponíveis em um único núcleo. Efetivamente, isso significa que cada vCPU só pode ser usada em 50% dos ciclos do núcleo físico.

Existem vários artigos que encontramos que parecem confirmar o que estamos vendo: link

É verdade que uma vCPU é, na verdade, apenas um único hyperthread em um núcleo ou estamos interpretando os dados incorretamente? Se for verdade, existem tipos de instância em que realmente obteríamos acesso a ambos os hyperthreads do núcleo?

Obviamente, poderíamos configurar instâncias do EC2 com o dobro da contagem de vCPUs, mas isso tem implicações de licença de software, pois o software proprietário que executamos está atualmente licenciado pelos núcleos. O fornecedor de software atualmente não diferencia entre uma vCPU e um núcleo. Não queremos pagar o dobro dos custos de licenciamento porque as definições de CPU do nosso provedor de infra-estrutura e do fornecedor de software não estão alinhadas.

    
por zmcmahon 11.02.2015 / 20:18

1 resposta

6

Recebi uma confirmação da Amazon de que uma vCPU é, na verdade, uma única hyperthread em um único núcleo.

Em uma nota lateral, isso era novidade para o fornecedor de software com o qual estávamos trabalhando (uma das maiores empresas corporativas por aí) e eles eram bons o suficiente para ajustar os termos das licenças para software em execução nos ambientes da AWS.

    
por 21.06.2016 / 16:12