Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Mais de um bilhão de endereços IP exclusivos passam pela rede Cloudflare todos os dias; atende mais de 11 milhões de solicitações HTTP por segundo; ela está a 100 ms de 95% da população da Internet. Nossa rede abrange 200 cidades em mais de 90 países, e nossa equipe de engenheiros construiu uma infraestrutura extremamente rápida e confiável.

Temos muito orgulho do nosso trabalho e estamos comprometidos em ajudar a tornar a Internet um lugar melhor e mais seguro. Os engenheiros de hardware da Cloudflare têm um conhecimento profundo dos servidores e de seus componentes para compreender e selecionar o melhor hardware para maximizar seu desempenho.

Nossa pilha de software lida com computação de alta carga e é altamente dependente da CPU, exigindo que nossos engenheiros otimizem continuamente a eficiência e a confiabilidade da Cloudflare em todos os níveis da pilha. No lado do servidor, a maneira mais fácil de aumentar o poder de processamento é adicionando núcleos de CPU. Quanto mais núcleos um servidor puder acomodar, mais dados ele poderá processar. Isto é importante para nós porque a variedade de nossos produtos e clientes está crescendo ao longo do tempo, e o crescimento das solicitações exige maior desempenho dos servidores. Para aumentar seu desempenho, precisávamos aumentar a densidade dos núcleos – e foi exatamente isso que conseguimos. Abaixo fornecemos dados detalhados sobre processadores para servidores que implantamos desde 2015, incluindo o número de núcleos:

-
Gen 6
Gen 7
Gen 8
Gen 9

Introdução
2015
2016
2017
2018

CPU
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silver 4116
Intel Xeon Platina 6162

Núcleos físicos
2 x 8
2 x 10
2 x 12
2 x 24

TDP
2 x 85W
2 x 85W
2 x 85W
2 x 150W

TDP por núcleo
10.65W
8.50W
7.08W
6.25W

Em 2018, demos um grande salto no número total de núcleos por servidor com a Geração 9. O impacto ambiental foi reduzido em 33% em comparação com a 8ª geração, dando-nos a oportunidade de aumentar o volume e a potência computacional por rack. Requisitos de projeto para dissipação de calor (Potência de Design Térmico, TDP) são mencionados para destacar que a nossa eficiência energética também aumentou ao longo do tempo. Este indicador é importante para nós: em primeiro lugar, queremos emitir menos carbono para a atmosfera; em segundo lugar, queremos aproveitar ao máximo a energia dos data centers. Mas sabemos que temos algo pelo que lutar.

Nossa principal métrica definidora é o número de solicitações por watt. Podemos aumentar o número de solicitações por segundo adicionando núcleos, mas precisamos permanecer dentro do nosso orçamento de energia. Estamos limitados pela infraestrutura de energia do data center, que, juntamente com nossos módulos de distribuição de energia selecionados, nos dá um determinado limite superior para cada rack de servidor. Adicionar servidores a um rack aumenta o consumo de energia. Os custos operacionais aumentarão significativamente se excedermos o limite de energia por rack e tivermos que adicionar novos racks. Precisamos aumentar o poder de processamento e permanecer dentro da mesma faixa de consumo de energia, o que aumentará as solicitações por watt, nossa principal métrica.

Como você deve ter adivinhado, estudamos cuidadosamente o consumo de energia na fase de projeto. A tabela acima mostra que não devemos perder tempo implantando CPUs que consomem mais energia se o TDP por núcleo for maior que a geração atual - isso terá um impacto negativo em nossa métrica, solicitações por watt. Estudamos cuidadosamente os sistemas prontos para uso da nossa geração X no mercado e tomamos uma decisão. Estamos mudando de nosso design de soquete duplo Intel Xeon Platinum 48 de 6162 núcleos para um design de soquete único AMD EPYC 48 de 7642 núcleos.

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Microarquitetura
"Skylake"
“Zé 2”

Nome do código
“Skylake SP”
"Roma"

Processo técnico
14nm
7nm

núcleos
2 x 24
48

freqüência
1.9 GHz
2.4 GHz

Cache/soquete L3
24 x 1.375 MiB
16 x 16 MiB

Memória/soquete
6 canais, até DDR4-2400
8 canais, até DDR4-3200

TDP
2 x 150W
225W

PCIe/soquete
48 pistas
128 pistas

ISA
x86-64
x86-64

Pelas especificações fica claro que o chip da AMD nos permitirá manter o mesmo número de núcleos enquanto reduz o TDP. A 9ª geração teve um TDP por núcleo de 6,25 W, e a Xª geração será de 4,69 W. Reduzido em 25%. Graças ao aumento da frequência e talvez a um design mais simples com um soquete, pode-se presumir que o chip AMD terá um desempenho melhor na prática. No momento, estamos executando vários testes e simulações para ver o desempenho da AMD.

Por enquanto, observemos que o TDP é uma métrica simplificada das especificações do fabricante, que usamos nos estágios iniciais do projeto do servidor e na seleção da CPU. Uma rápida pesquisa no Google revela que a AMD e a Intel têm abordagens diferentes para definir o TDP, tornando a especificação pouco confiável. O consumo real de energia da CPU e, mais importante, o consumo de energia do servidor, é o que realmente usamos ao tomar nossa decisão final.

Preparação do ecossistema

Para começar nossa jornada para escolher nosso próximo processador, analisamos uma ampla variedade de CPUs de diferentes fabricantes que eram adequadas para nossa pilha de software e serviços (escritos em C, LuaJIT e Go). Já descrevemos detalhadamente um conjunto de ferramentas para medir velocidade em um dos artigos do nosso blog. Neste caso, utilizamos o mesmo conjunto - permite-nos avaliar a eficiência da CPU num tempo razoável, após o qual os nossos engenheiros podem começar a adaptar os nossos programas a um processador específico.

Testamos uma variedade de processadores com uma variedade de contagens de núcleos, contagens de soquetes e frequências. Como este artigo é sobre por que optamos pelo AMD EPYC 7642, todos os gráficos neste blog se concentram no desempenho dos processadores AMD em comparação com o Intel Xeon Platinum 6162 de nossa 9ª geração.

Os resultados correspondem a medições de um único servidor com cada variante de processador – ou seja, com dois processadores de 24 núcleos da Intel, ou com um processador de 48 núcleos da AMD (servidor para Intel com dois soquetes e servidor para AMD EPYC com um) . Na BIOS definimos os parâmetros correspondentes aos servidores em execução. Isso é 3,03 GHz para AMD e 2,5 GHz para Intel. Simplificando bastante, esperamos que com o mesmo número de núcleos, a AMD tenha um desempenho 21% melhor que a Intel.

Criptografia

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Parece promissor para a AMD. Seu desempenho é 18% melhor em criptografia de chave pública. Com uma chave simétrica, perde para as opções de criptografia AES-128-GCM, mas no geral tem desempenho comparável.

compressão

Em servidores de borda, compactamos muitos dados para economizar largura de banda e aumentar a velocidade de entrega de conteúdo. Passamos os dados pelas bibliotecas C zlib e brotli. Todos os testes foram executados no arquivo HTML blog.cloudflare.com na memória.

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

A AMD ganhou em média 29% ao usar o gzip. No caso do brotli, os resultados são ainda melhores em testes com qualidade 7, que utilizamos para compressão dinâmica. No teste do brotli-9 há uma queda acentuada - explicamos isso pelo fato do Brotli consumir muita memória e transbordar o cache. No entanto, a AMD vence por uma grande margem.

Muitos de nossos serviços são escritos em Go. Nos gráficos a seguir, verificamos novamente a velocidade de criptografia e compactação em Go with RegExp em linhas de 32 KB usando a biblioteca de strings.

Vá para a criptografia

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Vá Compressão

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Ir RegExp

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Vá cordas

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

A AMD tem um desempenho melhor em todos os testes com Go, exceto ECDSA P256 Sign, onde ficou 38% atrás – o que é estranho, visto que teve um desempenho 24% melhor em C. Vale a pena descobrir o que está acontecendo lá. No geral, a AMD não ganha muito, mas ainda apresenta os melhores resultados.

LuaJIT

Freqüentemente usamos LuaJIT na pilha. Esta é a cola que mantém todas as partes do Cloudflare unidas. E estamos felizes que a AMD também tenha vencido aqui.

No geral, os testes mostram que o EPYC 7642 tem desempenho melhor do que dois Xeon Platinum 6162. A AMD perde em alguns testes - por exemplo, AES-128-GCM e Go OpenSSL ECDSA-P256 Sign - mas vence em todos os outros, por uma média de 25%.

Simulação de carga de trabalho

Após nossos testes rápidos, executamos os servidores em outro conjunto de simulações nas quais uma carga sintética é aplicada à pilha de borda do software. Aqui simulamos um cenário de carga de trabalho com diferentes tipos de solicitações que podem ser encontradas no trabalho real. As solicitações variam em volume de dados, protocolos HTTP ou HTTPS, fontes WAF, trabalhadores e muitas outras variáveis. Abaixo está uma comparação do rendimento das duas CPUs para os tipos de solicitações que encontramos com mais frequência.

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Os resultados no gráfico são medidos em relação à linha de base das máquinas baseadas em Intel de 9ª geração, normalizadas para um valor de 1,0 no eixo x. Por exemplo, considerando solicitações simples de 10 KiB por HTTPS, podemos ver que a AMD se sai 1,5 vezes melhor que a Intel em termos de solicitações por segundo. Em média, a AMD teve um desempenho 34% melhor que a Intel nesses testes. Considerando que o TDP para um único AMD EPYC 7642 é de 225 W, e para dois processadores Intel é de 300 W, verifica-se que em termos de “solicitações por watt” a AMD apresenta resultados 2 vezes melhores que a Intel!

Neste ponto, já estávamos claramente inclinados para a opção de soquete único para o AMD EPYC 7642 como nossas futuras CPUs Gen X. Estávamos muito interessados ​​em ver como os servidores AMD EPYC funcionariam no trabalho no mundo real e imediatamente enviamos vários servidores para alguns de data centers.

Trabalho real

O primeiro passo, naturalmente, foi preparar os servidores para trabalhar em condições reais. Todas as máquinas da nossa frota trabalham com os mesmos processos e serviços, o que proporciona uma excelente oportunidade para comparar corretamente o desempenho. Como a maioria dos data centers, temos diversas gerações de servidores implantados e agrupamos nossos servidores em clusters para que cada classe contenha servidores aproximadamente das mesmas gerações. Em alguns casos, isto pode resultar em curvas de reciclagem que diferem entre clusters. Mas não conosco. Nossos engenheiros otimizaram a utilização da CPU para todas as gerações para que, independentemente de a CPU de uma determinada máquina ter 8 ou 24 núcleos, a utilização da CPU seja geralmente a mesma que o resto.

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

O gráfico ilustra nosso comentário sobre a similaridade de utilização - não há diferença significativa entre o uso de CPUs AMD em servidores da geração X e o uso de processadores Intel em servidores da geração 9. Isso significa que os servidores de teste e de linha de base são carregados igualmente . Ótimo. É exatamente isso que buscamos em nossos servidores e precisamos disso para uma comparação justa. Os dois gráficos abaixo mostram o número de solicitações processadas por um núcleo de CPU e todos os núcleos no nível do servidor.

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração
Solicitações por núcleo

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração
Solicitações ao servidor

Pode-se observar que em média a AMD processa 23% mais solicitações. Nada mal! Muitas vezes escrevemos em nosso blog sobre maneiras de aumentar o desempenho da Geração 9. E agora temos o mesmo número de núcleos, mas a AMD trabalha mais com menos energia. Fica imediatamente claro pelas especificações de número de núcleos e TDP que a AMD oferece maior velocidade com maior eficiência energética.

Mas como já mencionamos, o TDP não é uma especificação padrão e não é igual para todos os fabricantes, então vamos dar uma olhada no uso real de energia. Medindo o consumo de energia do servidor em paralelo com a quantidade de requisições por segundo, obtivemos o seguinte gráfico:

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração

Com base nas solicitações por segundo por watt gasto, os servidores da Geração X executados em processadores AMD são 28% mais eficientes. Seria de se esperar mais, visto que o TDP da AMD é 25% menor, mas deve-se lembrar que o TDP é uma característica ambígua. Vimos que o consumo real de energia da AMD é quase idêntico ao TDP declarado em frequências muito mais altas que a base; A Intel não tem isso. Esta é outra razão pela qual o TDP não é uma estimativa fiável do consumo de energia. As CPUs da Intel em nossos servidores Gen 9 são integradas em um sistema de vários nós, enquanto as CPUs da AMD operam em servidores de formato 1U padrão. Isto não é a favor da AMD, uma vez que os servidores multinode deveriam fornecer maior densidade com menor consumo de energia por nó, mas a AMD ainda ultrapassou a Intel em termos de consumo de energia por nó.

Na maioria das comparações entre especificações, simulações de teste e desempenho no mundo real, a configuração 1P AMD EPYC 7642 teve um desempenho significativamente melhor do que o 2P Intel Xeon 6162. Em algumas condições, a AMD pode ter um desempenho até 36% melhor, e acreditamos que otimizando hardware e software, podemos alcançar essa melhoria de forma contínua.

Acontece que a AMD venceu.

Gráficos adicionais mostram a latência média e a latência p99 executando o NGINX durante um período de 24 horas. Em média, os processos na AMD rodaram 25% mais rápido. No p99 ele roda de 20 a 50% mais rápido dependendo da hora do dia.

Conclusão

Os engenheiros de hardware e desempenho da Cloudflare realizam uma quantidade significativa de testes e pesquisas para determinar a melhor configuração de servidor para nossos clientes. Adoramos trabalhar aqui porque podemos resolver grandes problemas como esses e podemos ajudá-lo a resolver seus problemas com serviços como computação de borda sem servidor e uma variedade de soluções de segurança como Magic Transit, Argo Tunnel e proteção DDoS. Todos os servidores da rede Cloudflare são configurados para funcionar de maneira confiável e estamos sempre tentando tornar cada próxima geração de servidores melhor que a anterior. Acreditamos que o AMD EPYC 7642 é a resposta quando se trata de processadores Gen X.

Usando Cloudflare Workers, os desenvolvedores implantam seus aplicativos em nossa rede em expansão em todo o mundo. Temos orgulho de permitir que nossos clientes se concentrem na escrita de código enquanto nós nos concentramos na segurança e na confiabilidade na nuvem. E hoje temos ainda mais prazer em anunciar que seu trabalho será implantado em nossos servidores da geração X executando processadores AMD EPYC de segunda geração.

Cloudflare escolhe processadores da AMD para servidores de ponta de décima geração
Processadores EPYC 7642, codinome "Roma" [Roma]

Ao usar o EPYC 7642 da AMD, conseguimos aumentar nosso desempenho e facilitar a expansão de nossa rede para novas cidades. Roma não foi construída num dia, mas em breve estará mais perto de muitos de vós.

Nos últimos anos, temos experimentado muitos chips x86 da Intel e AMD, bem como processadores ARM. Esperamos que esses fabricantes de CPU continuem a trabalhar conosco no futuro para que todos possamos construir juntos uma Internet melhor.

Fonte: habr.com

Adicionar um comentário