GCP, AWS, and Azure ARM-Based Server Performance Comparison
Shirui Zhao
August 12, 2022
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:
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:
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:
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.
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
eprometheus
, 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.
A figura abaixo é o resultado do teste de atraso de resposta em milissegundos. Quanto menor o número, melhor o desempenho.
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 / vCPU | 1 | 2 | 4 | 8 | 16 | 32 | 64 |
---|---|---|---|---|---|---|---|
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 anual | Relação custo-benefício (QPS/custo) | |
---|---|---|
AWS c7g.large | $633.3 | 36.3 |
GCP t2a-standard-2 | $674.5 | 16.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.