Cloudflare wählt AMD-Prozessoren für Edgeserver der zehnten Generation aus



Täglich passieren mehr als eine Milliarde eindeutige IP-Adressen das Cloudflare-Netzwerk. Es bedient mehr als 11 Millionen HTTP-Anfragen pro Sekunde. Es befindet sich in einer Entfernung von nicht mehr als 100 ms von 95% der Internetbevölkerung. Unser Netzwerk umfasst 200 Städte in mehr als 90 Ländern, und unser Engineering-Team hat eine extrem schnelle und zuverlässige Infrastruktur aufgebaut.

Wir sind sehr stolz auf unsere Arbeit und setzen uns dafür ein, das Internet besser und sicherer zu machen. Cloudflare-Ingenieure, deren Arbeit sich auf Hardware bezieht, sind mit Servern und ihren Komponenten bestens vertraut, um die besten Geräte zu verstehen und auszuwählen, um deren Effizienz zu maximieren.

Unser Software-Stack verarbeitet High-Load-Computing und ist stark von der CPU-Geschwindigkeit abhängig. Deshalb müssen unsere Ingenieure die Effizienz und Zuverlässigkeit von Cloudflare auf allen Ebenen des Stacks ständig optimieren. Auf der Serverseite besteht der einfachste Weg darin, die Rechenleistung durch Hinzufügen von CPU-Kernen zu erhöhen. Je mehr Kerne in einen Server passen, desto mehr Daten können verarbeitet werden. Dies ist wichtig für uns, da die Vielfalt unserer Produkte und Kunden im Laufe der Zeit zunimmt und das Wachstum der Anforderungen erfordert, dass Server die Produktivität steigern. Um ihre Produktivität zu steigern, mussten wir die Dichte der Kerne erhöhen - und genau das haben wir erreicht. Nachfolgend finden Sie Details zu Prozessordaten für Server, die wir seit 2015 bereitstellen, einschließlich der Anzahl der Kerne:

--- ---.Gen 6Gen 7Gen 8Gen 9
Arbeitsbeginn2015201620172018
ZentralprozessorIntel Xeon E5-2630 v3Intel Xeon E5-2630 v4Intel Xeon Silver 4116Intel Xeon Platinum 6162
Physische Kerne2 x 82 x 102 x 122 x 24
TDP2 x 85W2 x 85W2 x 85W2 x 150W
TDP pro Kern10,65 W.8,50 W.7,08W6,25 W.


Im Jahr 2018 haben wir mit der 9. Generation einen großen Sprung in der Gesamtzahl der Kerne pro Server gemacht. Die Umweltbelastung wurde im Vergleich zur 8. Generation um 33% reduziert, was uns die Möglichkeit gab, das Volumen und die Rechenleistung pro Rack zu erhöhen. Die Designanforderungen für Thermal Design Power (TDP) werden erwähnt, um zu betonen, dass auch unsere Energieeffizienz im Laufe der Zeit gewachsen ist. Dieser Indikator ist wichtig für uns: Erstens wollen wir weniger Kohlenstoff in die Atmosphäre abgeben; Zweitens möchten wir die Energie von Rechenzentren optimal nutzen. Aber wir wissen, wonach wir streben müssen.

Unsere wichtigste definierende Metrik ist die Anzahl der Anforderungen pro Watt. Wir können die Anzahl der Anfragen pro Sekunde erhöhen, indem wir Kerne hinzufügen, aber wir müssen innerhalb unseres Energiebudgets bleiben. Wir sind durch die Energieinfrastruktur von Rechenzentren begrenzt, die uns zusammen mit unseren ausgewählten Energieverteilungsmodulen eine bestimmte Obergrenze für jedes Server-Rack gibt. Das Hinzufügen von Servern zu einem Rack erhöht den Stromverbrauch. Die Betriebskosten werden dramatisch steigen, wenn wir über die Begrenzung der Energie pro Rack hinausgehen und neue Racks hinzufügen müssen. Wir müssen die Rechenleistung erhöhen und im gleichen Energiebereich bleiben, was die Anzahl der Anforderungen pro Watt erhöht - unsere Schlüsselmetrik.

Wie Sie vielleicht erraten haben, haben wir den Energieverbrauch in der Entwurfsphase sorgfältig untersucht. Die obige Tabelle zeigt, dass wir keine Zeit damit verschwenden sollten, energieintensivere CPUs einzusetzen, wenn die TDP pro Kern höher ist als die aktuelle Generation - dies wirkt sich negativ auf unsere Metrik aus, die Anzahl der Anforderungen pro Watt. Wir haben die betriebsbereiten Systeme für unsere Generation X auf dem Markt sorgfältig geprüft und eine Entscheidung getroffen. Wir wechseln von unserer Schaltung mit 48 Intel Xeon Platinum 6162-Kernen und zwei Sockeln zu einem 48-Kern AMD EPYC 7642 mit einem Sockel.



--- ---.IntelAMD
ZentralprozessorXeon Platinum 6162EPYC 7642
Mikroarchitektur"Skylake""Zen 2"
Code Name"Skylake SP""Rom"
Prozesstechnik14nm7nm
Kerne2 x 2448
Frequenz1,9 GHz2,4 GHz
L3 Cache / Socket24 x 1,375 MB16 x 16 MB
Speicher / Sockel6 Kanäle, bis zu DDR4-24008 Kanäle bis DDR4-3200
TDP2 x 150W225W
PCIe / Socket48 Fahrspuren128 Fahrspuren
IST EINx86-64x86-64


Aus den Spezifikationen geht hervor, dass der Chip von AMD es uns ermöglicht, die gleiche Anzahl von Kernen zu belassen, wodurch die TDP gesenkt wird. In der 9. Generation betrug die TDP pro Kern 6,25 Watt und in der X. Generation 4,69 Watt. Ein Rückgang von 25%. Aufgrund der Frequenzerhöhung und möglicherweise einer einfacheren Schaltung mit einem einzigen Sockel können wir davon ausgehen, dass sich der AMD-Chip als besser erweisen wird. Während wir verschiedene Tests und Simulationen durchführen, um zu verstehen, wie viel besser AMD sein wird.

In der Zwischenzeit stellen wir fest, dass TDP eine vereinfachte Metrik aus den Herstellerspezifikationen ist, die wir in den frühen Phasen des Serverdesigns und der CPU-Auswahl verwendet haben. Eine schnelle Google-Suche zeigt, dass AMD und Intel unterschiedliche Ansätze zur Definition von TDP verfolgen, weshalb diese Spezifikation nicht zuverlässig ist. Der tatsächliche Stromverbrauch der CPU und vor allem der Stromverbrauch des Servers werden bei der endgültigen Entscheidung wirklich verwendet.

Vorbereitung auf das Ökosystem


Zu Beginn unserer Reise zur Auswahl des nächsten Prozessors haben wir eine große Auswahl an CPUs verschiedener Hersteller untersucht, die für unseren Software-Stack und unsere Services (geschrieben in C, LuaJIT und Go) gut geeignet sind. In einem Artikel in unserem Blog haben wir bereits eine Reihe von Tools zur Geschwindigkeitsmessung ausführlich beschrieben . In diesem Fall haben wir denselben Satz verwendet. Dadurch können wir die Effizienz der CPU in angemessener Zeit bewerten. Danach können unsere Ingenieure beginnen, unsere Programme an einen bestimmten Prozessor anzupassen.

Wir haben verschiedene Prozessoren mit einer Vielzahl von Kernen, Sockeln und Frequenzen getestet. Da dieser Artikel beschreibt, warum wir uns für den AMD EPYC 7642 entschieden haben, konzentrieren sich alle Grafiken in diesem Blog auf die Leistung von AMD-Prozessoren im Vergleich zum Intel Xeon Platinum 6162 vonunsere 9. Generation .

Die Ergebnisse entsprechen Messungen des Betriebs eines Servers mit jeder Prozessorvariante - dh mit zwei 24-Kern-Prozessoren von Intel oder mit einem 48-Kern-Prozessor von AMD (Server für Intel mit zwei Sockeln und Server für AMD EPYC mit einem). Im BIOS legen wir die Parameter fest, die den Arbeitsservern entsprechen. Dies sind 3,03 GHz für AMD und 2,5 GHz für Intel. Wir gehen davon aus, dass AMD bei gleicher Anzahl von Kernen 21% bessere Ergebnisse erzielen wird als Intel.

Kryptographie






Für AMD sieht es vielversprechend aus. Bei der Kryptografie mit öffentlichen Schlüsseln funktioniert es um 18% besser. Mit einem symmetrischen Schlüssel verliert es für die AES-128-GCM-Verschlüsselungsoptionen, zeigt sich aber im Allgemeinen vergleichbar.

Kompression


Auf Edgeservern komprimieren wir viele Daten, um Bandbreite zu sparen und die Geschwindigkeit der Inhaltsbereitstellung zu erhöhen. Wir leiten Daten durch die Bibliotheken zlib und brotli C. Alle Tests fanden in der HTML-Datei blog.cloudflare.com im Speicher statt.





AMD gewann bei Verwendung von gzip durchschnittlich 29%. Bei brotli sind die Ergebnisse bei Tests mit Qualität 7, die wir für die dynamische Komprimierung verwenden, noch besser. Beim brotli-9-Test tritt ein starker Abfall auf - wir führen dies auf die Tatsache zurück, dass Brotli viel Speicher verbraucht und den Cache überläuft. AMD gewinnt jedoch mit großem Vorsprung.

Viele unserer Dienstleistungen sind in Go geschrieben. In den folgenden Diagrammen überprüfen wir die Kryptografie- und Komprimierungsraten von Go with RegExp in 32-KB-Zeilen mithilfe der Zeichenfolgenbibliothek.

Gehen Sie Kryptographie




Komprimierung durchführen






Gehen Sie regexp






Gehen Sie Saiten




AMD zeigt die besten Ergebnisse in allen Tests mit Go, mit Ausnahme des ECDSA P256-Zeichens, wo es 38% zurückliegt - was seltsam ist, wenn man bedenkt, dass es in C 24% bessere Ergebnisse zeigte. Es lohnt sich herauszufinden, was dort vor sich geht. Aber im Allgemeinen gewinnt AMD nicht viel, zeigt aber immer noch die besten Ergebnisse.

Luajit


Wir verwenden oft LuaJIT im Stapel. Dies ist der Klebstoff, der alle Teile von Cloudflare hält. Und wir freuen uns, dass AMD hier gewonnen hat.

Im Allgemeinen zeigen Tests, dass EPYC 7642 besser abschneidet als zwei Xeon Platinum 6162. AMD verliert bei zwei Tests - zum Beispiel AES-128-GCM und Go OpenSSL ECDSA-P256 Sign -, gewinnt jedoch bei allen anderen durchschnittlich um 25% .

Workload-Simulation


Nach unseren Express-Tests haben wir den Server durch eine weitere Reihe von Simulationen geführt, bei denen die synthetische Last auf den Software-Edge-Stack angewendet wird. Hier simulieren wir eine Arbeitslast von Skripten mit verschiedenen Arten von Abfragen, die in der realen Arbeit zu finden sind. Anforderungen variieren in Bezug auf Datenvolumen, HTTP- oder HTTPS-Protokolle, WAF, Workers-Quellen und andere von einer Vielzahl von Variablen. Nachfolgend finden Sie einen Vergleich des Durchsatzes der beiden CPUs für die Arten von Anforderungen, die wir am häufigsten finden.



Die Ergebnisse im Diagramm werden anhand der Basisindikatoren der 9. Generation von Maschinen mit Intel-Prozessoren gemessen, die entlang der x-Achse auf einen Wert von 1,0 normiert sind. Wenn wir beispielsweise einfache Anfragen von 10 KiB über HTTPS annehmen, können wir feststellen, dass AMD in Bezug auf die Anzahl der Anfragen pro Sekunde 1,5-mal besser ist als Intel. Im Durchschnitt schnitt AMD bei den angegebenen Tests 34% besser ab als Intel. Wenn man bedenkt, dass die TDP für einen einzelnen AMD EPYC 7642 225 W und für zwei Intel-Prozessoren - 300 W - beträgt, stellt sich heraus, dass AMD in Bezug auf „Anforderungen pro Watt“ 2-mal bessere Ergebnisse zeigt als Intel!

Zu diesem Zeitpunkt haben wir uns eindeutig für die Option eines einzelnen Sockels für AMD EPYC 7642 als zukünftige CPUs für die Generation X entschieden. Wir waren sehr interessiert zu wissen, wie sich AMD EPYC-Server in der realen Arbeit verhalten, und haben sofort mehrere Server an einige gesendet von Rechenzentren.

Echte Arbeit


Das erste war natürlich, den Server auf die Arbeit unter realen Bedingungen vorzubereiten. Alle Maschinen in unserer Flotte arbeiten mit denselben Prozessen und Dienstleistungen, was es zu einer großartigen Gelegenheit macht, die Leistung korrekt zu vergleichen. Wie in den meisten Rechenzentren sind mehrere Servergenerationen bereitgestellt, und wir stellen unsere Server in Clustern zusammen, sodass jede Klasse Server mit ungefähr derselben Generation enthält. In einigen Fällen kann dies dazu führen, dass die Nutzungskurven zwischen den Clustern variieren. Aber nicht bei uns. Unsere Ingenieure haben die CPU-Auslastung für alle Generationen optimiert, sodass sich die CPU-Auslastung normalerweise nicht von den anderen unterscheidet, unabhängig davon, ob die CPU über 8 oder 24 Kerne auf einem bestimmten Computer verfügt.



Die Grafik zeigt unseren Kommentar zur Ähnlichkeit der Nutzung - es gibt keinen signifikanten Unterschied zwischen der Verwendung von AMD-CPUs in Gen X-Servern und der Verwendung von Intel-Prozessoren in Gen 9-Servern. Dies bedeutet, dass sowohl Test- als auch Core-Server gleichermaßen geladen sind. Fein. Genau das erreichen wir in der Arbeit unserer Server, und das brauchen wir für einen ehrlichen Vergleich. Die beiden folgenden Grafiken zeigen die Anzahl der Anforderungen, die von einem CPU-Kern und allen Kernen auf Serverebene verarbeitet wurden.


Abfragen an den


Server Abfragen an den Server

Es ist ersichtlich, dass AMD im Durchschnitt 23% mehr Anfragen verarbeitet. Gar nicht so schlecht! Wir haben oft in unserem Blog über Möglichkeiten geschrieben, die Leistung von Gen 9 zu steigern. Und hier haben wir die gleiche Anzahl von Kernen, aber AMD macht mehr Arbeit mit weniger Energie. Unmittelbar aus den Spezifikationen für die Anzahl der Kerne und die TDP ist ersichtlich, dass AMD mehr Geschwindigkeit bei höherer Energieeffizienz liefert.

Wie bereits erwähnt, ist TDP jedoch keine Standardspezifikation und nicht für alle Hersteller gleich. Schauen wir uns also den tatsächlichen Energieverbrauch an. Indem wir den Energieverbrauch des Servers parallel zur Anzahl der Anforderungen pro Sekunde messen, erhalten wir die folgende Grafik:



Durch die Anzahl der pro Watt ausgegebenen Anforderungen pro Sekunde ist der Gen X-Server auf AMD-Prozessoren 28% effizienter. Man hätte mehr erwarten können, da die TDP von AMD um 25% niedriger ist. Es sollte jedoch beachtet werden, dass die TDP ein mehrdeutiges Merkmal ist. Wir haben gesehen, dass der tatsächliche Energieverbrauch von AMD bei einer Frequenz weit über der Basis fast mit der angegebenen TDP übereinstimmt. Intel hat das nicht. Dies ist ein weiterer Grund, warum TDP keine verlässliche Schätzung des Energieverbrauchs ist. Intel-CPUs in unseren Gen 9-Servern sind in das Multicode-System integriert, während AMD-CPUs in Standard-1U-Formfaktorservern arbeiten. Dies spricht nicht für AMD, da Multinode-Server eine höhere Dichte bei geringerem Stromverbrauch pro Knoten bieten sollten. AMD übertraf Intel jedoch hinsichtlich des Energieverbrauchs pro Knoten.

Bei den meisten Vergleichen von Spezifikationen, Testsimulationen und realer Arbeit erwies sich die Konfiguration von 1P AMD EPYC 7642 als viel besser als die von 2P Intel Xeon 6162. Unter bestimmten Bedingungen kann AMD 36% besser funktionieren, und wir glauben, dass wir durch die Optimierung von Hardware und Programmen Wir können eine solche Verbesserung kontinuierlich erreichen.

Es stellt sich heraus, dass AMD gewonnen hat.

Zusätzliche Grafiken zeigen die durchschnittliche Verzögerung und die p99-Verzögerung im NGINX-Betrieb für 24 Stunden. Im Durchschnitt liefen AMD-Prozesse 25% schneller. Bei p99 läuft es je nach Tageszeit 20-50% schneller.

Fazit


Die Hardware- und Leistungsingenieure von Cloudflare führen umfangreiche Tests und Untersuchungen durch, um die beste Serverkonfiguration für unsere Kunden auszuwählen. Wir arbeiten gerne hier, weil wir solch großartige Aufgaben lösen können und Ihnen auch dabei helfen können, Ihre Probleme mit Diensten wie serverlosem Edge-Computing und einer Reihe von Lösungen für Sicherheitsprobleme zu lösen, insbesondere Magic Transit, Argo Tunnel und DDoS-Schutz . Alle Server im Cloudflare-Netzwerk sind für einen zuverlässigen Betrieb konfiguriert, und wir versuchen immer, jede nächste Servergeneration besser als die vorherige zu machen. Wir glauben, dass AMD EPYC 7642 die Antwort auf die Frage nach der Auswahl von Prozessoren für Gen X ist.

Mithilfe des Cloudflare Workers-Dienstes stellen Entwickler ihre Anwendungen in unserem Netzwerk bereit und expandieren weltweit. Wir sind stolz darauf, unseren Kunden die Möglichkeit zu bieten, sich auf das Schreiben von Code zu konzentrieren, während wir an Sicherheit und Zuverlässigkeit in der Cloud arbeiten. Umso mehr freuen wir uns, Ihnen heute mitteilen zu können, dass ihre Arbeit auf unseren Servern der Generation X mit AMD EPYC-Prozessoren der zweiten Generation bereitgestellt wird.


EPYC 7642-Prozessoren mit dem Codenamen „Rome“ [Rom]

Mit dem EPYC 7642 von AMD konnten wir unsere Geschwindigkeit erhöhen und den Ausbau des Netzwerks auf neue Städte erleichtern. Rom wurde nicht an einem Tag erbaut, aber bald wird es vielen von Ihnen näher sein.

In den letzten Jahren haben wir mit vielen x86-Chips von Intel und AMD sowie mit Prozessoren von ARM experimentiert. Wir gehen davon aus, dass diese CPU-Hersteller in Zukunft mit uns zusammenarbeiten werden, um gemeinsam ein verbessertes Internet aufzubauen.

All Articles