Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Máis de mil millóns de enderezos IP únicos pasan pola rede Cloudflare todos os días; atende máis de 11 millóns de solicitudes HTTP por segundo; está a menos de 100 ms do 95% da poboación de internet. A nosa rede abarca 200 cidades en máis de 90 países e o noso equipo de enxeñeiros construíu unha infraestrutura extremadamente rápida e fiable.

Estamos moi orgullosos do noso traballo e comprometémonos a axudar a que Internet sexa un lugar mellor e máis seguro. Os enxeñeiros de hardware de Cloudflare teñen un profundo coñecemento dos servidores e dos seus compoñentes para comprender e seleccionar o mellor hardware para maximizar o seu rendemento.

A nosa pila de software xestiona a computación de alta carga e depende moito da CPU, polo que os nosos enxeñeiros deben optimizar continuamente a eficiencia e fiabilidade de Cloudflare en todos os niveis da pila. No lado do servidor, a forma máis sinxela de aumentar a potencia de procesamento é engadindo núcleos de CPU. Cantos máis núcleos cabe un servidor, máis datos pode procesar. Isto é importante para nós porque a variedade dos nosos produtos e clientes vai crecendo co paso do tempo, e o crecemento das solicitudes require un maior rendemento dos servidores. Para aumentar o seu rendemento, necesitabamos aumentar a densidade dos núcleos, e iso é exactamente o que conseguimos. A continuación ofrecemos datos detallados sobre os procesadores dos servidores que implantamos desde 2015, incluíndo o número de núcleos:

-
Gen 6
Gen 7
Gen 8
Gen 9

introdución
2015
2016
2017
2018

CPU
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silver 4116
Intel Xeon Platinum 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

En 2018, demos un gran salto no número total de núcleos por servidor con Gen 9. O impacto ambiental reduciuse nun 33% en comparación coa 8ª xeración, o que nos brinda a oportunidade de aumentar o volume e a potencia de cálculo por rack. Requisitos de deseño para a disipación de calor (Potencia de deseño térmico, TDP) son mencionados para destacar que a nosa eficiencia enerxética tamén aumentou co paso do tempo. Este indicador é importante para nós: en primeiro lugar, queremos emitir menos carbono á atmosfera; en segundo lugar, queremos facer o mellor uso da enerxía dos centros de datos. Pero sabemos que temos algo por que esforzarnos.

A nosa principal métrica de definición é o número de solicitudes por vatio. Podemos aumentar o número de solicitudes por segundo engadindo núcleos, pero debemos manternos dentro do noso orzamento de enerxía. Estamos limitados pola infraestrutura de enerxía do centro de datos, que, xunto cos nosos módulos de distribución de enerxía seleccionados, ofrécenos un determinado límite superior para cada rack de servidores. Engadir servidores a un rack aumenta o consumo de enerxía. Os custos operativos aumentarán significativamente se superamos o límite de enerxía por rack e temos que engadir novos bastidores. Necesitamos aumentar a potencia de procesamento mantendo o mesmo intervalo de consumo de enerxía, o que aumentará as solicitudes por watt, a nosa métrica clave.

Como xa adiviñarás, estudamos coidadosamente o consumo de enerxía na fase de deseño. A táboa anterior mostra que non debemos perder o tempo implementando CPUs con máis consumo de enerxía se o TDP por núcleo é maior que a xeración actual; isto afectará negativamente á nosa métrica, solicitudes por vatio. Estudamos coidadosamente os sistemas listos para funcionar para a nosa xeración X no mercado e tomamos unha decisión. Pasamos do noso deseño de socket dual Intel Xeon Platinum 48 de 6162 núcleos a un deseño de socket único AMD EPYC 48 de 7642 núcleos.

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Microarquitectura
"Skylake"
"Zen 2"

Nome en clave
"Skylake SP"
“Roma”

Proceso técnico
14nm
7nm

núcleos
2 x 24
48

Frecuencia
1.9 GHz
2.4 GHz

Caché/socket L3
24 x 1.375 MiB
16 x 16 MiB

Memoria/socket
6 canles, ata DDR4-2400
8 canles, ata DDR4-3200

TDP
2 x 150W
225W

PCIe/socket
48 carrís
128 carrís

É UN
x86-64
x86-64

Polas especificacións queda claro que o chip de AMD permitiranos manter o mesmo número de núcleos mentres baixamos o TDP. A novena xeración tiña un TDP por núcleo de 9 W, e a X xeración será de 6,25 W. Reducida nun 4,69%. Grazas ao aumento da frecuencia, e quizais a un deseño máis sinxelo cun só socket, pódese supoñer que o chip AMD funcionará mellor na práctica. Actualmente estamos realizando varias probas e simulacións para ver canto mellor vai facer AMD.

Polo momento, teñamos en conta que TDP é unha métrica simplificada das especificacións do fabricante, que utilizamos nas primeiras etapas do deseño do servidor e da selección da CPU. Unha busca rápida en Google revela que AMD e Intel teñen diferentes enfoques para definir TDP, o que fai que a especificación non sexa fiable. O consumo real de enerxía da CPU e, máis importante, o consumo de enerxía do servidor, é o que realmente usamos ao tomar a nosa decisión final.

Preparación do ecosistema

Para comezar a nosa viaxe para escoller o noso próximo procesador, analizamos unha ampla gama de CPU de diferentes fabricantes que se adaptaban ben á nosa pila de software e servizos (escritos en C, LuaJIT e Go). Xa describimos en detalle un conxunto de ferramentas para medir a velocidade nun dos artigos do noso blog. Neste caso, usamos o mesmo conxunto: permítenos avaliar a eficiencia da CPU nun tempo razoable, despois do cal os nosos enxeñeiros poden comezar a adaptar os nosos programas a un procesador específico.

Probamos unha variedade de procesadores cunha variedade de números de núcleos, de sockets e de frecuencias. Dado que este artigo trata sobre por que nos decidimos polo AMD EPYC 7642, todos os gráficos deste blog céntranse en como funcionan os procesadores AMD en comparación co Intel Xeon Platinum 6162 de a nosa 9a xeración.

Os resultados corresponden a medicións dun servidor con cada variante de procesador, é dicir, con dous procesadores de 24 núcleos de Intel, ou cun procesador de 48 núcleos de AMD (servidor para Intel con dous sockets e servidor para AMD EPYC cun). Na BIOS establecemos os parámetros correspondentes aos servidores en execución. Isto é 3,03 GHz para AMD e 2,5 GHz para Intel. Simplificando moito, esperamos que co mesmo número de núcleos, AMD teña un 21% mellor de rendemento que Intel.

Criptografía

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Parece prometedor para AMD. Ten un 18% mellor de rendemento na criptografía de clave pública. Cunha clave simétrica, perde as opcións de cifrado AES-128-GCM, pero en xeral ten un rendemento comparable.

Compresión

Nos servidores Edge, comprimimos moitos datos para aforrar ancho de banda e aumentar a velocidade de entrega de contido. Pasamos os datos polas bibliotecas C zlib e brotli. Todas as probas executáronse no ficheiro HTML blog.cloudflare.com na memoria.

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

AMD gañou unha media do 29 % ao usar gzip. No caso do brotli, os resultados son aínda mellores nas probas con calidade 7, que usamos para a compresión dinámica. Na proba de brotli-9 hai unha forte caída; explicámolo polo feito de que Brotli consome moita memoria e desborda a caché. Non obstante, AMD gaña por unha gran marxe.

Moitos dos nosos servizos están escritos en Go. Nos seguintes gráficos, comprobamos dúas veces a velocidade da criptografía e a compresión en Go with RegExp en liñas de 32 KB usando a biblioteca de cadeas.

Vaia criptografía

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Vaia Compresión

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Vaia Regexp

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Go Strings

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

AMD ten un mellor rendemento en todas as probas con Go, excepto en ECDSA P256 Sign, onde quedou un 38% por detrás, o que é estraño, dado que funcionou un 24% mellor en C. Paga a pena descubrir o que está a pasar alí. En xeral, AMD non gaña moito, pero aínda mostra os mellores resultados.

LuaJIT

Moitas veces usamos LuaJIT na pila. Este é o pegamento que mantén todas as partes de Cloudflare xuntas. E estamos contentos de que AMD gañe tamén aquí.

En xeral, as probas mostran que o EPYC 7642 funciona mellor que dous Xeon Platinum 6162. AMD perde nun par de probas, por exemplo, AES-128-GCM e Go OpenSSL ECDSA-P256 Sign, pero gaña en todas as demais, nunha media. do 25%.

Simulación de carga de traballo

Despois das nosas probas rápidas, executamos os servidores a través doutro conxunto de simulacións nas que se aplica unha carga sintética á pila de borde do software. Aquí simulamos unha carga de traballo de escenario con diferentes tipos de solicitudes que se poden atopar no traballo real. As solicitudes varían en volume de datos, protocolos HTTP ou HTTPS, fontes WAF, traballadores e outras moitas variables. A continuación móstrase unha comparación do rendemento das dúas CPU para os tipos de solicitudes que atopamos con máis frecuencia.

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Os resultados do gráfico mídense coa liña de base das máquinas baseadas en Intel de novena xeración, normalizadas a un valor de 9 no eixe x. Por exemplo, tomando solicitudes simples de 1,0 KiB a través de HTTPS, podemos ver que AMD fai 10 veces mellor que Intel en canto a solicitudes por segundo. De media, AMD desempeñou un 1,5% mellor que Intel para estas probas. Tendo en conta que o TDP para un só AMD EPYC 34 é de 7642 W e para dous procesadores Intel é de 225 W, resulta que en termos de "solicitudes por watt" AMD mostra 300 veces mellores resultados que Intel!

Neste punto, xa estabamos claramente inclinados pola opción de socket único para o AMD EPYC 7642 como as nosas futuras CPU Gen X. Estabamos moi interesados ​​en ver como funcionarían os servidores AMD EPYC no traballo no mundo real e inmediatamente enviamos varios servidores a algúns dos centros de datos.

Traballo de verdade

O primeiro paso, naturalmente, foi preparar os servidores para traballar en condicións reais. Todas as máquinas da nosa flota funcionan cos mesmos procesos e servizos, o que proporciona unha excelente oportunidade para comparar correctamente o rendemento. Como a maioría dos centros de datos, temos varias xeracións de servidores implantadas e recompilamos os nosos servidores en clústeres para que cada clase conteña servidores aproximadamente da mesma xeración. Nalgúns casos, isto pode producir curvas de reciclaxe que difiran entre os grupos. Pero non con nós. Os nosos enxeñeiros optimizaron a utilización da CPU para todas as xeracións de xeito que, independentemente de que a CPU dunha máquina en particular teña 8 núcleos ou 24, a utilización da CPU é xeralmente a mesma que o resto.

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

O gráfico ilustra o noso comentario sobre a semellanza de utilización: non hai diferenzas significativas entre o uso de CPU AMD nos servidores da xeración X e o uso de procesadores Intel nos servidores da xeración 9. Isto significa que tanto os servidores de proba como os de referencia se cargan por igual. . Genial. Isto é exactamente o que nos esforzamos nos nosos servidores, e necesitamos isto para unha comparación xusta. Os dous gráficos seguintes mostran o número de solicitudes procesadas por un núcleo de CPU e todos os núcleos a nivel de servidor.

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración
Solicitudes por núcleo

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración
Solicitudes ao servidor

Pódese ver que de media AMD procesa un 23% máis de solicitudes. Non está nada mal! Moitas veces escribimos no noso blog sobre formas de aumentar o rendemento da Gen 9. E agora temos o mesmo número de núcleos, pero AMD traballa máis con menos potencia. As especificacións para o número de núcleos e TDP despréndese inmediatamente que AMD proporciona unha maior velocidade cunha maior eficiencia enerxética.

Pero como xa mencionamos, TDP non é unha especificación estándar e non é o mesmo para todos os fabricantes, así que vexamos o uso real de enerxía. Medindo o consumo enerxético do servidor en paralelo co número de solicitudes por segundo, obtivemos o seguinte gráfico:

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración

Segundo as solicitudes por segundo por watt gastado, os servidores da xeración X que se executan en procesadores AMD son un 28 % máis eficientes. Pódese esperar máis, dado que o TDP de AMD é un 25% inferior, pero hai que lembrar que o TDP é unha característica ambigua. Vimos que o consumo de enerxía real de AMD é case idéntico ao TDP indicado a frecuencias moito máis altas que a base; Intel non ten iso. Esta é outra razón pola que o TDP non é unha estimación fiable do consumo de enerxía. As CPU de Intel nos nosos servidores Gen 9 están integradas nun sistema de varios nodos, mentres que as CPU de AMD funcionan en servidores estándar de factor de forma 1U. Isto non é a favor de AMD, xa que os servidores multinodo deberían proporcionar unha maior densidade cun menor consumo de enerxía por nodo, pero AMD aínda superou a Intel en termos de consumo de enerxía por nodo.

Na maioría das comparacións entre especificacións, simulacións de proba e rendemento no mundo real, a configuración 1P AMD EPYC 7642 funcionou significativamente mellor que o Intel Xeon 2 6162P. Nalgunhas condicións, AMD pode funcionar ata un 36 % mellor, e cremos que ao optimizar hardware e software, podemos conseguir esta mellora de forma continua.

Resulta que AMD gañou.

Os gráficos adicionais mostran a latencia media e a latencia p99 executando NGINX durante un período de 24 horas. De media, os procesos en AMD correron un 25 % máis rápido. Na p99 corre un 20-50 % máis rápido dependendo da hora do día.

Conclusión

Os enxeñeiros de hardware e rendemento de Cloudflare realizan unha gran cantidade de probas e investigacións para determinar a mellor configuración do servidor para os nosos clientes. Encántanos traballar aquí porque podemos resolver grandes problemas como estes e podemos axudarche a resolver os teus problemas con servizos como a informática de borde sen servidor e unha variedade de solucións de seguridade como Magic Transit, Argo Tunnel e protección DDoS. . Todos os servidores da rede Cloudflare están configurados para funcionar de forma fiable e sempre estamos tentando que cada xeración de servidores sexa mellor que a anterior. Cremos que o AMD EPYC 7642 é a resposta cando se trata de procesadores Gen X.

Usando Cloudflare Workers, os desenvolvedores implantan as súas aplicacións na nosa rede en expansión por todo o mundo. Estamos orgullosos de permitir que os nosos clientes se centren en escribir código mentres nos centramos na seguridade e fiabilidade na nube. E hoxe estamos aínda máis satisfeitos de anunciar que o seu traballo será despregado nos nosos servidores da xeración X con procesadores AMD EPYC de segunda xeración.

Cloudflare elixe procesadores de AMD para servidores de borde de décima xeración
Procesadores EPYC 7642, nome en clave "Roma" [Roma]

Ao usar o EPYC 7642 de AMD, puidemos aumentar o noso rendemento e facilitar a expansión da nosa rede a novas cidades. Roma non se construíu nun día, pero pronto estará máis preto de moitos de vós.

Nos últimos dous anos estivemos experimentando con moitos chips x86 de Intel e AMD, así como con procesadores de ARM. Agardamos que estes fabricantes de CPU sigan traballando connosco no futuro para que todos poidamos construír unha Internet mellor xuntos.

Fonte: www.habr.com

Engadir un comentario