Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Täglich passieren mehr als eine Milliarde eindeutige IP-Adressen das Cloudflare-Netzwerk. es bedient mehr als 11 Millionen HTTP-Anfragen pro Sekunde; Sie ist innerhalb von 100 ms von 95 % der Internetbevölkerung entfernt. Unser Netzwerk erstreckt sich über 200 Städte in über 90 Ländern und unser Ingenieurteam hat eine äußerst schnelle und zuverlässige Infrastruktur aufgebaut.

Wir sind sehr stolz auf unsere Arbeit und engagieren uns dafür, das Internet zu einem besseren und sichereren Ort zu machen. Die Hardware-Ingenieure von Cloudflare verfügen über ein tiefes Verständnis von Servern und ihren Komponenten, um die beste Hardware zu verstehen und auszuwählen, um ihre Leistung zu maximieren.

Unser Software-Stack bewältigt Hochlast-Computing und ist stark CPU-abhängig. Daher müssen unsere Ingenieure die Effizienz und Zuverlässigkeit von Cloudflare auf jeder Ebene des Stacks kontinuierlich optimieren. Auf der Serverseite lässt sich die Rechenleistung am einfachsten durch das Hinzufügen von CPU-Kernen steigern. Je mehr Kerne ein Server aufnehmen kann, desto mehr Daten kann er verarbeiten. Dies ist für uns wichtig, da die Vielfalt unserer Produkte und Kunden mit der Zeit wächst und die Zunahme der Anfragen eine höhere Leistung der Server erfordert. Um ihre Leistung zu steigern, mussten wir die Dichte der Kerne erhöhen – und genau das haben wir erreicht. Nachfolgend stellen wir detaillierte Daten zu Prozessoren für Server bereit, die wir seit 2015 eingesetzt haben, einschließlich der Anzahl der Kerne:

-
Gen 6
Gen 7
Gen 8
Gen 9

Erste Schritte
2015
2016
2017
2018

CPU
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silber 4116
Intel Xeon Platinum 6162

Physische Kerne
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 pro Kern
10.65W
8.50W
7.08W
6.25W

Im Jahr 2018 haben wir mit Gen 9 einen großen Sprung bei der Gesamtzahl der Kerne pro Server gemacht. Die Umweltbelastung wurde im Vergleich zur 33. Generation um 8 % reduziert, was uns die Möglichkeit gibt, das Volumen und die Rechenleistung pro Rack zu erhöhen. Designanforderungen an die Wärmeableitung (Thermische Designleistung, TDP) werden erwähnt, um zu verdeutlichen, dass auch unsere Energieeffizienz im Laufe der Zeit gestiegen ist. Dieser Indikator ist für uns wichtig: Erstens wollen wir weniger Kohlenstoff in die Atmosphäre ausstoßen; Zweitens wollen wir die Energie aus den Rechenzentren optimal nutzen. Aber wir wissen, dass wir etwas anstreben müssen.

Unsere wichtigste Kennzahl ist die Anzahl der Anfragen pro Watt. Wir können die Anzahl der Anfragen pro Sekunde durch das Hinzufügen von Kernen erhöhen, müssen dabei aber innerhalb unseres Energiebudgets bleiben. Wir sind durch die Strominfrastruktur des Rechenzentrums begrenzt, die uns zusammen mit unseren ausgewählten Stromverteilungsmodulen eine bestimmte Obergrenze für jedes Server-Rack vorgibt. Das Hinzufügen von Servern zu einem Rack erhöht den Stromverbrauch. Die Betriebskosten steigen erheblich, wenn wir die Energiegrenze pro Rack überschreiten und neue Racks hinzufügen müssen. Wir müssen die Verarbeitungsleistung erhöhen und dabei im gleichen Stromverbrauchsbereich bleiben, wodurch die Anfragen pro Watt, unsere Schlüsselkennzahl, steigen.

Wie Sie vielleicht schon erraten haben, haben wir den Energieverbrauch in der Entwurfsphase sorgfältig untersucht. Die obige Tabelle zeigt, dass wir keine Zeit damit verschwenden sollten, mehr energiehungrige CPUs einzusetzen, wenn die TDP pro Kern höher ist als die der aktuellen Generation – dies wird sich negativ auf unsere Metrik, Anfragen pro Watt, auswirken. Wir haben die auf dem Markt befindlichen Ready-to-Run-Systeme für unsere Generation X sorgfältig untersucht und eine Entscheidung getroffen. Wir wechseln von unserem 48-Core-Intel-Xeon-Platinum-6162-Dual-Socket-Design zu einem 48-Core-AMD-EPYC-7642-Single-Socket-Design.

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Mikroarchitektur
„Skylake“
"Zen 2"

Codename
„Skylake SP“
„Rom“

Technischer Prozess
14nm
7nm

Kerne
2 x 24
48

Frequenz
1.9 GHz
2.4 GHz

L3-Cache/Socket
24 x 1.375 MB
16 x 16 MB

Speicher/Sockel
6 Kanäle, bis zu DDR4-2400
8 Kanäle, bis zu DDR4-3200

TDP
2 x 150W
225W

PCIe/Buchse
48 Fahrspuren
128 Fahrspuren

IST EIN
x86-64
x86-64

Aus den Spezifikationen geht klar hervor, dass der Chip von AMD es uns ermöglichen wird, die gleiche Anzahl an Kernen beizubehalten und gleichzeitig die TDP zu senken. Die 9. Generation hatte eine TDP pro Kern von 6,25 W, die X. Generation wird es 4,69 W sein. Um 25 % reduziert. Dank der erhöhten Frequenz und möglicherweise einem einfacheren Design mit einem Sockel ist davon auszugehen, dass der AMD-Chip in der Praxis eine bessere Leistung erbringen wird. Wir führen derzeit verschiedene Tests und Simulationen durch, um zu sehen, wie viel besser AMD abschneiden wird.

Beachten wir vorerst, dass es sich bei TDP um eine vereinfachte Metrik aus den Spezifikationen des Herstellers handelt, 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, was die Spezifikation unzuverlässig macht. Der tatsächliche Stromverbrauch der CPU und vor allem der Stromverbrauch des Servers ist das, was wir bei unserer endgültigen Entscheidung wirklich verwenden.

Bereitschaft des Ökosystems

Um unsere Reise zur Auswahl unseres nächsten Prozessors zu beginnen, haben wir uns eine breite Palette von CPUs verschiedener Hersteller angesehen, die gut zu unserem Software-Stack und unseren Diensten passen (geschrieben in C, LuaJIT und Go). Eine Reihe von Werkzeugen zur Geschwindigkeitsmessung haben wir bereits ausführlich beschrieben in einem unserer Blogartikel. In diesem Fall haben wir dasselbe Set verwendet – es ermöglicht uns, die Effizienz der CPU in angemessener Zeit zu bewerten, woraufhin unsere Ingenieure mit der Anpassung unserer Programme an einen bestimmten Prozessor beginnen können.

Wir haben verschiedene Prozessoren mit unterschiedlichen Kernzahlen, Sockelzahlen und Frequenzen getestet. Da es in diesem Artikel darum geht, warum wir uns für den AMD EPYC 7642 entschieden haben, konzentrieren sich alle Diagramme in diesem Blog auf die Leistung von AMD-Prozessoren im Vergleich zum Intel Xeon Platinum 6162 von unsere 9. Generation.

Die Ergebnisse entsprechen Messungen eines einzelnen Servers mit jeder Prozessorvariante – also mit zwei 24-Kern-Prozessoren von Intel, bzw. mit einem 48-Kern-Prozessor von AMD (Server für Intel mit zwei Sockeln und Server für AMD EPYC mit einem). . Im BIOS stellen wir die Parameter ein, die den laufenden Servern entsprechen. Diese beträgt 3,03 GHz für AMD und 2,5 GHz für Intel. Stark vereinfacht gehen wir davon aus, dass AMD bei gleicher Kernanzahl eine um 21 % bessere Leistung erbringen wird als Intel.

Kryptographie

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Sieht für AMD vielversprechend aus. Bei der Public-Key-Kryptografie ist die Leistung um 18 % höher. Mit einem symmetrischen Schlüssel verliert es gegenüber den AES-128-GCM-Verschlüsselungsoptionen, schneidet aber insgesamt vergleichbar ab.

Kompression

Auf Edge-Servern komprimieren wir viele Daten, um Bandbreite zu sparen und die Geschwindigkeit der Inhaltsbereitstellung zu erhöhen. Wir übergeben die Daten über die C-Bibliotheken zlib und brotli. Alle Tests wurden in der HTML-Datei blog.cloudflare.com im Speicher ausgeführt.

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Beim Einsatz von gzip gewann AMD mit durchschnittlich 29 %. Im Fall von Brotli sind die Ergebnisse sogar noch besser, bei Tests mit Qualität 7, die wir für die dynamische Komprimierung verwenden. Beim Brotli-9-Test gibt es einen starken Einbruch – wir erklären dies damit, dass Brotli viel Speicher verbraucht und den Cache überläuft. Allerdings gewinnt AMD mit großem Vorsprung.

Viele unserer Dienstleistungen sind in Go geschrieben. In den folgenden Diagrammen überprüfen wir die Geschwindigkeit der Kryptografie und Komprimierung in Go mit RegExp auf 32-KB-Zeilen mithilfe der Strings-Bibliothek.

Gehen Sie zur Kryptographie

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Gehen Sie zur Komprimierung

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Gehen Sie zu Regexp

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Gehen Sie Saiten

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

AMD schneidet in allen Tests mit Go besser ab, mit Ausnahme von ECDSA P256 Sign, wo es 38 % zurückblieb – was seltsam ist, wenn man bedenkt, dass es in C 24 % besser abschnitt. Es lohnt sich herauszufinden, was dort vor sich geht. Insgesamt gewinnt AMD nicht viel, zeigt aber dennoch die besten Ergebnisse.

LuaJIT

Wir verwenden oft LuaJIT auf dem Stack. Dies ist der Klebstoff, der alle Teile von Cloudflare zusammenhält. Und wir freuen uns, dass AMD auch hier gewonnen hat.

Insgesamt zeigen die Tests, dass der EPYC 7642 besser abschneidet als zwei Xeon Platinum 6162. AMD verliert bei einigen Tests – zum Beispiel AES-128-GCM und Go OpenSSL ECDSA-P256 Sign –, gewinnt aber bei allen anderen im Durchschnitt von 25 % .

Workload-Simulation

Nach unseren Schnelltests haben wir die Server einer weiteren Reihe von Simulationen unterzogen, bei denen eine synthetische Last auf den Software-Edge-Stack ausgeübt wird. Hier simulieren wir eine Szenario-Arbeitslast mit verschiedenen Arten von Anforderungen, die in der realen Arbeit auftreten können. Anfragen variieren in Bezug auf Datenvolumen, HTTP- oder HTTPS-Protokolle, WAF-Quellen, Worker und viele andere Variablen. Nachfolgend finden Sie einen Vergleich des Durchsatzes der beiden CPUs für die Arten von Anfragen, denen wir am häufigsten begegnen.

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Die Ergebnisse im Diagramm werden anhand der Basislinie von Intel-basierten Maschinen der 9. Generation gemessen, normalisiert auf einen Wert von 1,0 auf der x-Achse. Wenn wir beispielsweise einfache 10-KiB-Anfragen über HTTPS betrachten, können wir sehen, dass AMD in Bezug auf Anfragen pro Sekunde 1,5-mal besser abschneidet als Intel. Im Durchschnitt schnitt AMD bei diesen 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 „Anfragen pro Watt“ doppelt so gute Ergebnisse erzielt wie Intel!

Zu diesem Zeitpunkt tendierten wir bereits eindeutig zur Single-Socket-Option für den AMD EPYC 7642 als unsere zukünftigen Gen Server zu einigen von Rechenzentren.

Echte Arbeit

Der erste Schritt bestand natürlich darin, die Server für den Betrieb unter realen Bedingungen vorzubereiten. Alle Maschinen unserer Flotte arbeiten mit den gleichen Prozessen und Dienstleistungen, was eine hervorragende Möglichkeit bietet, die Leistung richtig zu vergleichen. Wie die meisten Rechenzentren verfügen wir über mehrere Generationen von Servern und fassen unsere Server in Clustern zusammen, sodass jede Klasse Server ungefähr derselben Generation enthält. In einigen Fällen kann dies zu unterschiedlichen Recyclingkurven zwischen den Clustern führen. Aber nicht bei uns. Unsere Ingenieure haben die CPU-Auslastung für alle Generationen optimiert, sodass unabhängig davon, ob die CPU einer bestimmten Maschine 8 oder 24 Kerne hat, die CPU-Auslastung im Allgemeinen die gleiche ist wie die der anderen.

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Die Grafik veranschaulicht unseren Kommentar zur Ähnlichkeit der Auslastung – es gibt keinen signifikanten Unterschied zwischen der Verwendung von AMD-CPUs in Servern der Generation . Großartig. Genau das streben wir bei unseren Servern an und benötigen dies für einen fairen Vergleich. Die beiden Diagramme unten zeigen die Anzahl der Anfragen, die von einem CPU-Kern und allen Kernen auf Serverebene verarbeitet werden.

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation
Anfragen pro Kern

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation
Anfragen an den Server

Es zeigt sich, dass AMD durchschnittlich 23 % mehr Anfragen bearbeitet. Gar nicht so schlecht! Wir haben in unserem Blog oft über Möglichkeiten geschrieben, die Leistung von Gen 9 zu steigern. Und jetzt haben wir die gleiche Anzahl an Kernen, aber AMD leistet mehr Arbeit mit weniger Leistung. Aus den Angaben zur Anzahl der Kerne und TDP geht sofort hervor, dass AMD für mehr Geschwindigkeit bei höherer Energieeffizienz sorgt.

Aber wie wir bereits erwähnt haben, handelt es sich bei der TDP nicht um eine Standardspezifikation und sie ist nicht für alle Hersteller gleich, also schauen wir uns den tatsächlichen Energieverbrauch an. Durch Messung des Energieverbrauchs des Servers parallel zur Anzahl der Anfragen pro Sekunde haben wir die folgende Grafik erhalten:

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation

Basierend auf Anfragen pro Sekunde und verbrauchtem Watt sind Gen-X-Server, die auf AMD-Prozessoren laufen, 28 % effizienter. Man könnte mehr erwarten, wenn man bedenkt, dass AMDs TDP um 25 % niedriger ist, aber man sollte bedenken, dass es sich bei der TDP um ein mehrdeutiges Merkmal handelt. Wir haben gesehen, dass der tatsächliche Stromverbrauch von AMD bei deutlich höheren Frequenzen als dem Basiswert fast identisch mit der angegebenen TDP ist; Intel hat das nicht. Dies ist ein weiterer Grund, warum TDP keine verlässliche Schätzung des Energieverbrauchs ist. CPUs von Intel in unseren Gen 9-Servern sind in ein Multi-Node-System integriert, während CPUs von AMD in Servern mit Standard-1U-Formfaktor betrieben werden. Dies kommt AMD nicht zugute, da Server mit mehreren Knoten eine höhere Dichte bei geringerem Stromverbrauch pro Knoten bieten sollten, aber AMD hat Intel in Bezug auf den Stromverbrauch pro Knoten immer noch überholt.

Bei den meisten Vergleichen zwischen Spezifikationen, Testsimulationen und realer Leistung schnitt die 1P AMD EPYC 7642-Konfiguration deutlich besser ab als die 2P Intel Sowohl bei der Hardware als auch bei der Software können wir diese Verbesserung kontinuierlich erreichen.

Es stellt sich heraus, dass AMD gewonnen hat.

Zusätzliche Diagramme zeigen die durchschnittliche Latenz und die p99-Latenz beim Ausführen von NGINX über einen Zeitraum von 24 Stunden. Im Durchschnitt liefen Prozesse auf AMD 25 % schneller. Auf p99 läuft es je nach Tageszeit 20-50 % schneller.

Abschluss

Die Hardware- und Leistungsingenieure von Cloudflare führen umfangreiche Tests und Untersuchungen durch, um die beste Serverkonfiguration für unsere Kunden zu ermitteln. Wir lieben es, hier zu arbeiten, weil wir große Probleme wie diese lösen können, und wir können Ihnen bei der Lösung Ihrer Probleme mit Diensten wie serverlosem Edge Computing und einer Reihe von Sicherheitslösungen wie Magic Transit, Argo Tunnel und DDoS-Schutz helfen. Alle Server im Cloudflare-Netzwerk sind für eine zuverlässige Leistung konfiguriert und wir versuchen stets, jede nächste Servergeneration besser zu machen als die vorherige. Wir glauben, dass der AMD EPYC 7642 die Antwort ist, wenn es um Gen-X-Prozessoren geht.

Mit Cloudflare Workers stellen Entwickler ihre Anwendungen in unserem wachsenden Netzwerk auf der ganzen Welt bereit. Wir sind stolz darauf, dass sich unsere Kunden auf das Schreiben von Code konzentrieren können, während wir uns auf Sicherheit und Zuverlässigkeit in der Cloud konzentrieren. Und heute freuen wir uns noch mehr, Ihnen mitteilen zu können, dass ihre Arbeit auf unseren Servern der Generation X mit AMD EPYC-Prozessoren der zweiten Generation bereitgestellt wird.

Cloudflare wählt Prozessoren von AMD für Edge-Server der zehnten Generation
EPYC 7642-Prozessoren, Codename „Rome“ [Rom]

Durch den Einsatz von AMDs EPYC 7642 konnten wir unsere Leistung steigern und die Erweiterung unseres Netzwerks auf neue Städte erleichtern. Rom wurde nicht an einem Tag erbaut, aber für viele von Ihnen wird es bald näher sein.

In den letzten Jahren haben wir mit vielen x86-Chips von Intel und AMD sowie Prozessoren von ARM experimentiert. Wir erwarten, dass diese CPU-Hersteller auch in Zukunft mit uns zusammenarbeiten, damit wir alle gemeinsam ein besseres Internet aufbauen können.

Source: habr.com

Kommentar hinzufügen