GCP, AWS, and Azure ARM-Based Server Performance Comparison

Shirui Zhao

August 12, 2022

Ecosystem

Contexto

O design da arquitetura de microprocessadores RISC utiliza um conjunto de instruções altamente otimizado para permitir que processadores pequenos lidem eficientemente com tarefas complexas. A ARM tornou-se a pedra angular do maior ecossistema de computação e dispositivos móveis do mundo e é considerada por muitos especialistas como o futuro da computação em nuvem devido ao seu baixo consumo de energia, licenciamento flexível e baixo custo.

Portanto, os principais fornecedores de nuvem liderados pela AWS, Google Cloud Platform (GCP) e Azure lançaram sucessivamente servidores com arquitetura ARM. Entre eles, a AWS lançou o primeiro processador de servidor AWS Graviton baseado na arquitetura ARM em 2018.

AWS Graviton

O AWS Graviton é uma série de processadores de servidor baseados na arquitetura ARM lançados pela AWS em 2018. A primeira geração de processadores AWS Graviton utiliza chips personalizados e núcleos Neoverse de 64 bits.

Lançado em 2020, os processadores AWS Graviton2 representam um grande salto em desempenho e funcionalidade em comparação com os processadores AWS Graviton de primeira geração. 7x mais rápido em desempenho, 4x mais núcleos, 2x mais cache, 5x mais rápido em memória e muito mais.

Os mais recentes processadores AWS Graviton3, a serem lançados no final de maio de 2022, são baseados no design mais avançado Neoverse V1, oferecendo até o dobro do desempenho em ponto flutuante, o dobro do desempenho criptográfico e três vezes o desempenho em ML em comparação com os processadores AWS Graviton2, incluindo suporte para bfloat16. A figura abaixo mostra os principais modelos equipados com processadores AWS Graviton3:

Processadores AWS Graviton3

Google Cloud Platform T2A

A máquina virtual Tau T2A do Google Cloud Platform (GCP) é uma prévia da primeira máquina virtual baseada em ARM do Google em julho de 2022, alimentada por processadores Ampere® Altra® Arm baseados no design Neoverse N1. As VMs Tau T2A vêm em uma variedade de formas predefinidas com até 48 vCPUs por VM e 4GB de memória por vCPU.

Elas oferecem até 32 Gbps de largura de banda de rede e uma ampla gama de opções de armazenamento conectado à rede, tornando a VM Tau T2A adequada para cargas de trabalho de escalonamento horizontal, incluindo servidores web, microsserviços conteinerizados, processamento de registros de dados, transcodificação de mídia e aplicativos Java. Os principais modelos são os seguintes:

VM Tau T2A

Máquinas Virtuais Azure baseadas em ARM

Em abril, a Microsoft anunciou uma prévia de sua família de máquinas virtuais Azure baseadas em processadores Ampere® Altra® Arm. As novas VMs são projetadas para executar eficientemente cargas de trabalho de escalonamento horizontal, servidores web, servidores de aplicativos, bancos de dados de código aberto, aplicativos nativos em nuvem e ricos em .NET, aplicativos Java, servidores de jogos, servidores de mídia e muito mais. A nova série de VMs inclui as VMs gerais Dpsv5 e as VMs otimizadas para memória Epsv5. Os principais modelos são os seguintes:

VMs Dpsv5 e Epsv5

Teste de desempenho de servidores ARM de três fornecedores de nuvem

Neste artigo, refletiremos o desempenho geral de cada servidor testando o desempenho de núcleo único. Aqui, o gateway de API intensivo em IO de rede Apache APISIX é selecionado para vincular um único núcleo de CPU para testes de estresse em três modelos: AWS c7g.large, GCP t2a-standard-2 e Azure D2ps v5 (pertencente à série Dpsv5, CPU de núcleo duplo), e analisar o desempenho do servidor através dos dois indicadores de QPS e atraso de resposta.

Apache APISIX é um gateway de API nativo em nuvem, de alto desempenho e escalável. Baseado em NGNIX + LuaJIT e etcd, o APISIX tem as características de roteamento dinâmico e carregamento a quente de plugins em comparação com gateways de API tradicionais, o que é especialmente adequado para o gerenciamento de API sob arquitetura nativa em nuvem.

Apache APISIX

A seguir, usaremos o script de teste de desempenho de código aberto oficial do APISIX para testes.

Caso de teste

Testaremos o desempenho do Apache APISIX em dois cenários típicos para obter dados de teste mais realistas e ricos:

  • Cenário 1: Upstream único. Neste cenário, um upstream único (sem nenhum plugin) é usado para testar o desempenho do APISIX no modo de proxy puro de retorno à origem.
  • Cenário 2: Upstream único + múltiplos plugins. Este cenário usa um upstream único com múltiplos plugins e dois plugins são usados aqui. Ele testa principalmente o desempenho do APISIX quando os dois plugins de consumo de desempenho central, limit-count e prometheus, estão ativados.

Resultados do Teste

A figura abaixo é o resultado do teste de QPS (consultas por segundo) e quanto maior o número, melhor o desempenho.

Resultado de QPS

A figura abaixo é o resultado do teste de atraso de resposta em milissegundos. Quanto menor o número, melhor o desempenho.

Resultados de atraso de resposta

Do ponto de vista de QPS e atraso de resposta, em gateways de API intensivos em IO de rede como o Apache APISIX, o AWS C7g tem uma melhoria de desempenho de 100% em comparação com o GCP T2A, e o Azure Dpsv5 tem uma liderança de desempenho de cerca de 15% em comparação com o GCP T2A.

Comparação de custo-benefício

Como este artigo se concentra apenas em testar o desempenho de máquinas ARM de diferentes fornecedores de nuvem, ignoraremos a mudança de "o mesmo número de núcleos de CPU com memória diferente" e analisaremos a relação custo-benefício do AWS Graviton3 e do GCP T2A apenas do ponto de vista do número de núcleos de CPU.

No cenário de teste atual, a relação custo-benefício pode ser entendida como: QPS/custo.

A tabela abaixo compara os preços por hora de servidores para diferentes núcleos para AWS C7g (US East Ohio), GCP T2A (us-central1) e Azure Dpsv5 (East US):

Série de VM / vCPU1248163264
AWS C7g$0.0361$0.0723$0.1445$0.289$0.5781$1.1562$1.7342
GCP T2A$0.0385$0.077$0.154$0.308$0.616$1.232$1.848
Azure Dpsv5*$0.077$0.154$0.308$0.616$1.232$1.848

A tabela a seguir resume o custo e a relação custo-benefício do AWS c7g.large e do GCP t2a-standard-2 em execução por um ano, referindo-se aos dados de QPS para um upstream único no teste de desempenho do Apache APISIX. Quanto maior o número, maior o QPS que pode ser obtido no preço unitário.

Custo anualRelação custo-benefício (QPS/custo)
AWS c7g.large$633.336.3
GCP t2a-standard-2$674.516.8
Azure D2ps v5$398.0(41% off)33.6

A partir dos resultados do teste, o AWS C7g é mais custo-efetivo do que o GCP T2A e o Azure Dpsv5. Embora o Azure Dpsv5 tenha apenas uma melhoria de desempenho de 15% em comparação com o GCP T2A, o custo-benefício é quase o dobro.

Resumo

A AWS lançou o primeiro processador baseado em ARM, o AWS Graviton, em 2018. Foi cerca de 4 anos à frente do GCP para a implantação do campo de servidores baseados em ARM. Agora, o processador AWS Graviton já está na terceira geração.

Através dos resultados de teste de desempenho e análise de relação custo-benefício do Apache APISIX, podemos ver que o AWS Graviton3 tem maior desempenho e custo-benefício do que o GCP T2A e o Azure Dpsv5. Isso é inseparável do fato de a AWS estar profundamente envolvida no campo de servidores baseados em ARM há muitos anos.

Além disso, usamos testes de núcleo único vinculados ao Apache APISIX durante nossos testes, e a relação custo-benefício do AWS Graviton 3 pode ser ainda mais aprimorada se múltiplos núcleos forem usados.

Referência

Tags: