Cloudflare sceglie i processori AMD per i server edge di decima generazione

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Ogni giorno più di un miliardo di indirizzi IP univoci transitano attraverso la rete Cloudflare; serve più di 11 milioni di richieste HTTP al secondo; si trova entro 100 ms dal 95% della popolazione Internet. La nostra rete si estende su 200 città in oltre 90 paesi e il nostro team di ingegneri ha costruito un'infrastruttura estremamente veloce e affidabile.

Siamo molto orgogliosi del nostro lavoro e ci impegniamo a contribuire a rendere Internet un luogo migliore e più sicuro. Gli ingegneri hardware di Cloudflare hanno una profonda conoscenza dei server e dei loro componenti per comprendere e selezionare l'hardware migliore per massimizzarne le prestazioni.

Il nostro stack software gestisce l'elaborazione a carico elevato ed è fortemente dipendente dalla CPU, richiedendo ai nostri ingegneri di ottimizzare continuamente l'efficienza e l'affidabilità di Cloudflare a ogni livello dello stack. Sul lato server, il modo più semplice per aumentare la potenza di elaborazione è aggiungere core della CPU. Più core può contenere un server, più dati può elaborare. Questo è importante per noi perché la varietà dei nostri prodotti e dei nostri clienti cresce nel tempo e la crescita delle richieste richiede maggiori prestazioni da parte dei server. Per aumentare le loro prestazioni, dovevamo aumentare la densità dei core e questo è esattamente ciò che abbiamo ottenuto. Di seguito forniamo dati dettagliati sui processori per i server che abbiamo implementato dal 2015, incluso il numero di core:

-
Sesso 6
Sesso 7
Sesso 8
Sesso 9

Guida introduttiva
2015
2016
2017
2018

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

Nuclei fisici
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 per nucleo
10.65W
8.50W
7.08W
6.25W

Nel 2018 abbiamo fatto un grande passo avanti nel numero totale di core per server con la Gen 9. L'impatto ambientale è stato ridotto del 33% rispetto all'ottava generazione, dandoci l'opportunità di aumentare il volume e la potenza di calcolo per rack. Requisiti di progettazione per la dissipazione del calore (Potenza termica del design, TDP) sono menzionati per evidenziare che anche la nostra efficienza energetica è aumentata nel tempo. Questo indicatore è importante per noi: in primo luogo, vogliamo emettere meno carbonio nell'atmosfera; in secondo luogo, vogliamo sfruttare al meglio l'energia dei data center. Ma sappiamo che abbiamo qualcosa per cui lottare.

Il nostro principale parametro di definizione è il numero di richieste per watt. Possiamo aumentare il numero di richieste al secondo aggiungendo core, ma dobbiamo rimanere nei limiti del nostro budget energetico. Siamo limitati dall'infrastruttura di alimentazione del data center che, insieme ai nostri moduli di distribuzione dell'alimentazione selezionati, ci fornisce un certo limite superiore per ciascun rack di server. L'aggiunta di server a un rack aumenta il consumo energetico. I costi operativi aumenteranno in modo significativo se superiamo il limite energetico per rack e dobbiamo aggiungere nuovi rack. Dobbiamo aumentare la potenza di elaborazione rimanendo nello stesso intervallo di consumo energetico, il che aumenterà le richieste per watt, il nostro parametro chiave.

Come avrai intuito, abbiamo studiato attentamente il consumo energetico in fase di progettazione. La tabella sopra mostra che non dovremmo perdere tempo implementando CPU più assetate di energia se il TDP per core è superiore a quello della generazione attuale: ciò avrà un impatto negativo sulla nostra metrica, richieste per watt. Abbiamo studiato attentamente i sistemi pronti all'uso per la nostra generazione X presenti sul mercato e abbiamo preso una decisione. Stiamo passando dal design dual-socket Intel Xeon Platinum 48 a 6162 core a un design single-socket AMD EPYC 48 a 7642 core.

Cloudflare sceglie i processori AMD per i server edge di decima generazione

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Microarchitettura
"Lago Sky"
"Zen 2"

Nome del codice
Skylake SP
"Roma"

Processo tecnico
14nm
7nm

core
2 x 24
48

frequenza
1.9 GHz
2.4 GHz

Cache/socket L3
24x1.375MiB
16x16MiB

Memoria/presa
6 canali, fino a DDR4-2400
8 canali, fino a DDR4-3200

TDP
2 x 150W
225W

PCIe/presa
48 corsie
128 corsie

È UN
x86-64
x86-64

Dalle specifiche è chiaro che il chip di AMD ci permetterà di mantenere lo stesso numero di core abbassando il TDP. La nona generazione aveva un TDP per core di 9 W, mentre la X generazione sarà di 6,25 W. Ridotto del 4,69%. Grazie alla maggiore frequenza e forse ad un design più semplice con un socket, si può presumere che il chip AMD funzionerà meglio nella pratica. Stiamo attualmente eseguendo vari test e simulazioni per vedere quanto miglioreranno le prestazioni di AMD.

Per ora, notiamo che il TDP è un parametro semplificato dalle specifiche del produttore, che abbiamo utilizzato nelle prime fasi di progettazione del server e di selezione della CPU. Una rapida ricerca su Google rivela che AMD e Intel hanno approcci diversi alla definizione di TDP, rendendo la specifica inaffidabile. Il consumo energetico reale della CPU, e soprattutto il consumo energetico del server, è ciò che utilizziamo realmente quando prendiamo la decisione finale.

Prontezza dell’ecosistema

Per iniziare il nostro viaggio verso la scelta del nostro prossimo processore, abbiamo esaminato un'ampia gamma di CPU di diversi produttori che si adattavano bene al nostro stack software e ai nostri servizi (scritti in C, LuaJIT e Go). Abbiamo già descritto in dettaglio una serie di strumenti per misurare la velocità in uno degli articoli del nostro blog. In questo caso abbiamo utilizzato lo stesso set: ci consente di valutare l'efficienza della CPU in un tempo ragionevole, dopodiché i nostri ingegneri possono iniziare ad adattare i nostri programmi a un processore specifico.

Abbiamo testato una varietà di processori con una varietà di conteggi di core, conteggi di socket e frequenze. Poiché questo articolo spiega il motivo per cui abbiamo scelto l'AMD EPYC 7642, tutti i grafici in questo blog si concentrano sulle prestazioni dei processori AMD rispetto all'Intel Xeon Platinum 6162 di la nostra nona generazione.

I risultati corrispondono alle misurazioni di un singolo server con ciascuna variante di processore, ovvero con due processori a 24 core di Intel o con un processore a 48 core di AMD (server per Intel con due socket e server per AMD EPYC con uno) . Nel BIOS impostiamo i parametri corrispondenti ai server in esecuzione. Questo è 3,03 GHz per AMD e 2,5 GHz per Intel. Semplificando notevolmente, prevediamo che con lo stesso numero di core, AMD avrà prestazioni migliori del 21% rispetto a Intel.

crittografia

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Sembra promettente per AMD. Ha prestazioni migliori del 18% sulla crittografia a chiave pubblica. Con una chiave simmetrica, perde rispetto alle opzioni di crittografia AES-128-GCM, ma nel complesso ha prestazioni comparabili.

compressione

Sui server periferici, comprimiamo molti dati per risparmiare larghezza di banda e aumentare la velocità di consegna dei contenuti. Passiamo i dati attraverso le librerie C zlib e brotli. Tutti i test sono stati eseguiti sul file HTML blog.cloudflare.com in memoria.

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Cloudflare sceglie i processori AMD per i server edge di decima generazione

AMD ha vinto in media del 29% utilizzando gzip. Nel caso di brotli i risultati sono ancora migliori nei test con qualità 7, che utilizziamo per la compressione dinamica. Nel test Brotli-9 c'è un forte calo: lo spieghiamo con il fatto che Brotli consuma molta memoria e trabocca la cache. Tuttavia, AMD vince con un ampio margine.

Molti dei nostri servizi sono scritti in Go. Nei grafici seguenti controlliamo la velocità di crittografia e compressione in Go con RegExp su linee da 32 KB utilizzando la libreria strings.

Vai alla crittografia

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Vai alla compressione

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Vai a Regexp

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Vai alle corde

Cloudflare sceglie i processori AMD per i server edge di decima generazione

AMD si comporta meglio in tutti i test con Go tranne ECDSA P256 Sign, dove è rimasta indietro del 38% - il che è strano, dato che ha ottenuto risultati migliori del 24% in C. Vale la pena capire cosa sta succedendo lì. Nel complesso, AMD non vince molto, ma mostra comunque i migliori risultati.

LuaJIT

Utilizziamo spesso LuaJIT in stack. Questa è la colla che tiene insieme tutte le parti di Cloudflare. E siamo contenti che AMD abbia vinto anche qui.

Nel complesso, i test mostrano che l'EPYC 7642 ha prestazioni migliori di due Xeon Platinum 6162. AMD perde in un paio di test - ad esempio AES-128-GCM e Go OpenSSL ECDSA-P256 Sign - ma vince in media in tutti gli altri del 25%.

Simulazione del carico di lavoro

Dopo i nostri rapidi test, abbiamo sottoposto i server a un'altra serie di simulazioni in cui viene applicato un carico sintetico allo stack software edge. Qui simuliamo uno scenario di carico di lavoro con diversi tipi di richieste che possono essere riscontrate nel lavoro reale. Le richieste variano in termini di volume di dati, protocolli HTTP o HTTPS, origini WAF, lavoratori e altre numerose variabili. Di seguito è riportato un confronto tra il throughput delle due CPU per i tipi di richieste che incontriamo più spesso.

Cloudflare sceglie i processori AMD per i server edge di decima generazione

I risultati nel grafico sono misurati rispetto alla linea di base delle macchine basate su Intel di nona generazione, normalizzati su un valore di 9 sull'asse x. Ad esempio, prendendo semplici richieste da 1,0 KiB su HTTPS, possiamo vedere che AMD fa 10 volte meglio di Intel in termini di richieste al secondo. In media, AMD ha ottenuto risultati migliori del 1,5% rispetto a Intel in questi test. Considerando che il TDP per un singolo AMD EPYC 34 è di 7642 W e per due processori Intel è di 225 W, risulta che in termini di "richieste per watt" AMD mostra risultati 300 volte migliori di Intel!

A questo punto, eravamo già chiaramente propensi all'opzione single socket per AMD EPYC 7642 come future CPU Gen X. Eravamo molto interessati a vedere come si sarebbero comportati i server AMD EPYC nel mondo reale e ne abbiamo immediatamente inviato diversi server ad alcuni dai data center.

Lavoro vero

Il primo passo, ovviamente, è stato quello di preparare i server per funzionare in condizioni reali. Tutte le macchine della nostra flotta funzionano con gli stessi processi e servizi, il che offre un'eccellente opportunità per confrontare correttamente le prestazioni. Come la maggior parte dei data center, disponiamo di diverse generazioni di server distribuiti e raccogliamo i nostri server in cluster in modo che ciascuna classe contenga server approssimativamente delle stesse generazioni. In alcuni casi, ciò può comportare curve di riciclaggio che differiscono tra i cluster. Ma non con noi. I nostri ingegneri hanno ottimizzato l'utilizzo della CPU per tutte le generazioni in modo che, indipendentemente dal fatto che la CPU di una particolare macchina abbia 8 o 24 core, l'utilizzo della CPU è generalmente lo stesso del resto.

Cloudflare sceglie i processori AMD per i server edge di decima generazione

Il grafico illustra il nostro commento sulla somiglianza di utilizzo: non vi è alcuna differenza significativa tra l'uso di CPU AMD nei server di generazione X e l'uso di processori Intel nei server di generazione 9. Ciò significa che sia i server di test che quelli di base vengono caricati allo stesso modo . Grande. Questo è esattamente ciò a cui miriamo nei nostri server e ne abbiamo bisogno per un confronto equo. I due grafici seguenti mostrano il numero di richieste elaborate da un core della CPU e da tutti i core a livello di server.

Cloudflare sceglie i processori AMD per i server edge di decima generazione
Richieste per core

Cloudflare sceglie i processori AMD per i server edge di decima generazione
Richieste al server

Si può vedere che in media AMD elabora il 23% di richieste in più. Non è affatto male! Abbiamo spesso scritto sul nostro blog come aumentare le prestazioni della Gen 9. E ora abbiamo lo stesso numero di core, ma AMD lavora di più con meno potenza. Dalle specifiche relative al numero di core e al TDP risulta immediatamente chiaro che AMD fornisce maggiore velocità con maggiore efficienza energetica.

Ma come abbiamo già detto, il TDP non è una specifica standard e non è la stessa per tutti i produttori, quindi diamo un'occhiata al consumo energetico effettivo. Misurando il consumo energetico del server parallelamente al numero di richieste al secondo, abbiamo ottenuto il seguente grafico:

Cloudflare sceglie i processori AMD per i server edge di decima generazione

In base alle richieste al secondo per watt speso, i server Gen X eseguiti su processori AMD sono più efficienti del 28%. Ci si potrebbe aspettare di più, dato che il TDP di AMD è inferiore del 25%, ma va ricordato che il TDP è una caratteristica ambigua. Abbiamo visto che il consumo energetico effettivo di AMD è quasi identico al TDP dichiarato a frequenze molto più alte di quelle base; Intel non ce l'ha. Questo è un altro motivo per cui il TDP non è una stima affidabile del consumo energetico. Le CPU Intel nei nostri server Gen 9 sono integrate in un sistema multi-nodo, mentre le CPU AMD funzionano in server con fattore di forma 1U standard. Ciò non è a favore di AMD, poiché i server multinodo dovrebbero fornire una maggiore densità con un minore consumo energetico per nodo, ma AMD ha comunque superato Intel in termini di consumo energetico per nodo.

Nella maggior parte dei confronti tra specifiche, simulazioni di test e prestazioni nel mondo reale, la configurazione AMD EPYC 1 7642P ha funzionato significativamente meglio dell'Intel Xeon 2 6162P. In alcune condizioni, AMD può funzionare fino al 36% in più e riteniamo che ottimizzando hardware e software, possiamo ottenere questo miglioramento su base continuativa.

Si scopre che AMD ha vinto.

Ulteriori grafici mostrano la latenza media e la latenza p99 che eseguono NGINX in un periodo di 24 ore. In media, i processi su AMD sono stati eseguiti il ​​25% più velocemente. Su p99 funziona il 20-50% più velocemente a seconda dell'ora del giorno.

conclusione

Gli ingegneri hardware e prestazionali di Cloudflare eseguono una quantità significativa di test e ricerche per determinare la migliore configurazione del server per i nostri clienti. Adoriamo lavorare qui perché possiamo risolvere grandi problemi come questi e possiamo aiutarti a risolvere i tuoi problemi con servizi come edge computing serverless e una serie di soluzioni di sicurezza come Magic Transit, Argo Tunnel e protezione DDoS. . Tutti i server nella rete Cloudflare sono configurati per funzionare in modo affidabile e cerchiamo sempre di rendere ogni generazione successiva di server migliore della precedente. Riteniamo che l'AMD EPYC 7642 sia la risposta quando si tratta di processori Gen X.

Utilizzando Cloudflare Workers, gli sviluppatori distribuiscono le loro applicazioni sulla nostra rete in espansione in tutto il mondo. Siamo orgogliosi di lasciare che i nostri clienti si concentrino sulla scrittura del codice mentre noi ci concentriamo sulla sicurezza e l'affidabilità nel cloud. E oggi siamo ancora più lieti di annunciare che il loro lavoro verrà implementato sui nostri server di generazione X con processori AMD EPYC di seconda generazione.

Cloudflare sceglie i processori AMD per i server edge di decima generazione
Processori EPYC 7642, nome in codice "Roma" [Roma]

Utilizzando l'EPYC 7642 di AMD, siamo stati in grado di aumentare le nostre prestazioni e facilitare l'espansione della nostra rete in nuove città. Roma non è stata costruita in un giorno, ma presto sarà più vicina a molti di voi.

Negli ultimi due anni abbiamo sperimentato molti chip x86 di Intel e AMD, nonché processori ARM. Ci aspettiamo che questi produttori di CPU continuino a lavorare con noi in futuro in modo che tutti noi possiamo costruire insieme un Internet migliore.

Fonte: habr.com

Aggiungi un commento