Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Elke dag passeren meer dan een miljard unieke IP-adressen het Cloudflare-netwerk; het verwerkt meer dan 11 miljoen HTTP-verzoeken per seconde; ze bevindt zich binnen 100 ms van 95% van de internetpopulatie. Ons netwerk omvat 200 steden in meer dan 90 landen, en ons team van ingenieurs heeft een extreem snelle en betrouwbare infrastructuur opgebouwd.

Wij zijn erg trots op ons werk en streven ernaar het internet een betere en veiligere plek te maken. De hardware-ingenieurs van Cloudflare hebben een diepgaand inzicht in servers en hun componenten om de beste hardware te begrijpen en te selecteren om de prestaties te maximaliseren.

Onze softwarestack kan computers met hoge belasting aan en is in hoge mate CPU-afhankelijk, waardoor onze technici de efficiëntie en betrouwbaarheid van Cloudflare voortdurend moeten optimaliseren op elk niveau van de stack. Aan de serverzijde is de eenvoudigste manier om de verwerkingskracht te vergroten het toevoegen van CPU-kernen. Hoe meer kernen een server kan bevatten, hoe meer gegevens hij kan verwerken. Dit is belangrijk voor ons omdat de verscheidenheid van onze producten en klanten in de loop van de tijd groeit, en de groei van het aantal verzoeken hogere prestaties van servers vereist. Om hun prestaties te verbeteren, moesten we de dichtheid van de kernen vergroten - en dat is precies wat we hebben bereikt. Hieronder geven we gedetailleerde gegevens over processors voor servers die we sinds 2015 hebben ingezet, inclusief het aantal cores:

-
Gen 6
Gen 7
Gen 8
Gen 9

Aan de slag
2015
2016
2017
2018

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

Fysieke kernen
X 2 8
X 2 10
X 2 12
X 2 24

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

TDP per kern
10.65W
8.50W
7.08W
6.25W

In 2018 hebben we met Gen 9 een grote sprong gemaakt in het totale aantal cores per server. De impact op het milieu is met 33% verminderd vergeleken met de 8e generatie, waardoor we de mogelijkheid hebben om het volume en de rekenkracht per rack te vergroten. Ontwerpvereisten voor warmteafvoer (Thermisch ontwerpvermogen, TDP) worden genoemd om te benadrukken dat onze energie-efficiëntie in de loop van de tijd ook is toegenomen. Deze indicator is belangrijk voor ons: ten eerste willen we minder koolstof in de atmosfeer uitstoten; ten tweede willen we de energie uit de datacenters optimaal benutten. Maar we weten dat we iets hebben om naar te streven.

Onze belangrijkste bepalende maatstaf is het aantal verzoeken per watt. We kunnen het aantal verzoeken per seconde verhogen door kernen toe te voegen, maar we moeten binnen ons energiebudget blijven. We worden beperkt door de stroominfrastructuur van het datacenter, die ons, samen met de door ons geselecteerde stroomdistributiemodules, een bepaalde bovengrens voor elk serverrack geeft. Het toevoegen van servers aan een rack verhoogt het energieverbruik. De bedrijfskosten zullen aanzienlijk stijgen als we de energielimiet per rack overschrijden en nieuwe racks moeten toevoegen. We moeten de verwerkingskracht vergroten en tegelijkertijd binnen hetzelfde energieverbruik blijven, waardoor het aantal verzoeken per watt, onze belangrijkste maatstaf, zal toenemen.

Zoals je misschien al geraden had, hebben we het energieverbruik in de ontwerpfase zorgvuldig bestudeerd. De tabel hierboven laat zien dat we geen tijd moeten verspillen aan het inzetten van meer energieverslindende CPU's als de TDP per core hoger is dan die van de huidige generatie. Dit zal een negatieve invloed hebben op onze statistiek, verzoeken per watt. We hebben zorgvuldig de kant-en-klare systemen voor onze generatie X op de markt bestudeerd en een beslissing genomen. We gaan van ons 48-core Intel Xeon Platinum 6162 dual-socket-ontwerp naar een 48-core AMD EPYC 7642 single-socket-ontwerp.

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Microarchitectuur
"Skymeer"
"Zen 2"

Codenaam
“Skylake SP”
"Rome"

Technisch proces
14nm
7nm

kernen
X 2 24
48

frequentie
1.9 GHz
2.4 GHz

L3-cache/socket
24 x 1.375 MiB
16 x 16 MiB

Geheugen/aansluiting
6 kanalen, tot DDR4-2400
8 kanalen, tot DDR4-3200

TDP
2 x 150W
225W

PCIe/socket
48 rijstroken
128 rijstroken

IS EEN
x86-64
x86-64

Uit de specificaties blijkt duidelijk dat de chip van AMD ons in staat zal stellen hetzelfde aantal cores te behouden terwijl de TDP wordt verlaagd. De 9e generatie had een TDP per core van 6,25 W, en de Xe generatie zal 4,69 W zijn. Met 25% verlaagd. Dankzij de verhoogde frequentie, en wellicht een eenvoudiger ontwerp met één socket, mag ervan worden uitgegaan dat de AMD-chip in de praktijk beter zal presteren. We voeren momenteel verschillende tests en simulaties uit om te zien hoeveel beter AMD zal presteren.

Laten we er voorlopig rekening mee houden dat TDP een vereenvoudigde maatstaf is uit de specificaties van de fabrikant, die we gebruikten in de vroege stadia van het serverontwerp en de CPU-selectie. Een snelle Google-zoekopdracht laat zien dat AMD en Intel verschillende benaderingen hebben bij het definiëren van TDP, waardoor de specificatie onbetrouwbaar wordt. Het werkelijke energieverbruik van de CPU, en nog belangrijker, het energieverbruik van de server, is wat we werkelijk gebruiken bij het nemen van onze uiteindelijke beslissing.

Klaarheid van het ecosysteem

Om onze reis naar het kiezen van onze volgende processor te beginnen, hebben we gekeken naar een breed scala aan CPU's van verschillende fabrikanten die goed bij onze softwarestack en services pasten (geschreven in C, LuaJIT en Go). We hebben al in detail een reeks hulpmiddelen beschreven voor het meten van snelheid in een van onze blogartikelen. In dit geval hebben we dezelfde set gebruikt: hiermee kunnen we de efficiëntie van de CPU binnen een redelijke tijd evalueren, waarna onze ingenieurs onze programma's kunnen gaan aanpassen aan een specifieke processor.

We hebben verschillende processors getest met verschillende kernaantallen, socketaantallen en frequenties. Omdat dit artikel gaat over waarom we voor de AMD EPYC 7642 hebben gekozen, richten alle grafieken in deze blog zich op hoe AMD-processors presteren in vergelijking met de Intel Xeon Platinum 6162 van onze 9e generatie.

De resultaten komen overeen met metingen van een enkele server met elke processorvariant - dat wil zeggen met twee 24-coreprocessors van Intel, of met één 48-coreprocessor van AMD (server voor Intel met twee sockets en server voor AMD EPYC met één) . In het BIOS stellen we de parameters in die overeenkomen met de actieve servers. Dit is 3,03 GHz voor AMD en 2,5 GHz voor Intel. Als we het enorm vereenvoudigen, verwachten we dat AMD met hetzelfde aantal cores 21% beter zal presteren dan Intel.

Cryptografie

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Ziet er veelbelovend uit voor AMD. Het presteert 18% beter op het gebied van cryptografie met openbare sleutels. Met een symmetrische sleutel verliest het de AES-128-GCM-coderingsopties, maar presteert het over het algemeen vergelijkbaar.

samendrukking

Op edge-servers comprimeren we veel gegevens om bandbreedte te besparen en de snelheid van de levering van inhoud te verhogen. We geven de gegevens door via de C-bibliotheken zlib en brotli. Alle tests werden uitgevoerd op het HTML-bestand blog.cloudflare.com in het geheugen.

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

AMD won met gemiddeld 29% bij het gebruik van gzip. In het geval van brotli zijn de resultaten nog beter op tests met kwaliteit 7, die we gebruiken voor dynamische compressie. Bij de brotli-9-test is er een scherpe daling - we verklaren dit door het feit dat Brotli veel geheugen verbruikt en de cache overloopt. AMD wint echter met een ruime marge.

Veel van onze diensten zijn geschreven in Go. In de volgende grafieken controleren we de snelheid van cryptografie en compressie in Go met RegExp op regels van 32 KB met behulp van de stringsbibliotheek.

Ga cryptografie

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Ga voor compressie

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Ga naar Regexp

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Ga snaren

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

AMD presteert beter in alle tests met Go, behalve ECDSA P256 Sign, waar het 38% achterloopt - wat vreemd is, aangezien het 24% beter presteerde in C. Het is de moeite waard om uit te zoeken wat daar aan de hand is. Over het geheel genomen wint AMD niet veel, maar laat het nog steeds de beste resultaten zien.

LuaJIT

We gebruiken LuaJIT vaak op de stapel. Dit is de lijm die alle onderdelen van Cloudflare bij elkaar houdt. En we zijn blij dat AMD ook hier heeft gewonnen.

Over het geheel genomen laten de tests zien dat de EPYC 7642 beter presteert dan twee Xeon Platinum 6162. AMD verliest op een aantal tests – bijvoorbeeld AES-128-GCM en Go OpenSSL ECDSA-P256 Sign – maar wint gemiddeld op alle andere tests. van 25%.

Werklastsimulatie

Na onze snelle tests hebben we de servers door nog een reeks simulaties geleid waarin een synthetische belasting wordt toegepast op de software edge stack. Hier simuleren we een scenariowerkbelasting met verschillende soorten verzoeken die u in het echte werk kunt tegenkomen. Verzoeken variëren in datavolume, HTTP- of HTTPS-protocollen, WAF-bronnen, werknemers en vele andere variabelen. Hieronder vindt u een vergelijking van de doorvoer van de twee CPU's voor de soorten verzoeken die we het vaakst tegenkomen.

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

De resultaten in de grafiek worden gemeten ten opzichte van de basislijn van op Intel gebaseerde machines van de 9e generatie, genormaliseerd naar een waarde van 1,0 op de x-as. Als we bijvoorbeeld eenvoudige verzoeken van 10 KiB via HTTPS nemen, kunnen we zien dat AMD het 1,5 keer beter doet dan Intel in termen van verzoeken per seconde. Gemiddeld presteerde AMD voor deze tests 34% beter dan Intel. Gezien het feit dat de TDP voor een enkele AMD EPYC 7642 225 W is, en voor twee Intel-processors 300 W, blijkt dat AMD in termen van "verzoeken per watt" 2 keer betere resultaten laat zien dan Intel!

Op dit punt neigden we al duidelijk naar de optie met één socket voor de AMD EPYC 7642 als onze toekomstige CPU's van generatie X. We waren erg benieuwd hoe de AMD EPYC-servers zouden presteren in de echte wereld, en we stuurden er onmiddellijk een aantal servers en sommige vanuit datacenters.

Echt werk

De eerste stap was uiteraard het voorbereiden van de servers op werk onder reële omstandigheden. Alle machines in ons wagenpark werken met dezelfde processen en diensten, wat een uitstekende gelegenheid biedt om de prestaties correct te vergelijken. Zoals de meeste datacenters hebben we verschillende generaties servers geïmplementeerd, en we verzamelen onze servers in clusters, zodat elke klasse servers van ongeveer dezelfde generaties bevat. In sommige gevallen kan dit resulteren in recyclingcurven die per cluster verschillen. Maar niet bij ons. Onze technici hebben het CPU-gebruik voor alle generaties geoptimaliseerd, zodat, ongeacht of de CPU van een bepaalde machine 8 of 24 cores heeft, het CPU-gebruik over het algemeen hetzelfde is als de rest.

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

De grafiek illustreert ons commentaar op de gelijkenis in gebruik: er is geen significant verschil tussen het gebruik van AMD CPU's in servers van de generatie X en het gebruik van Intel-processors in servers van de generatie 9. Dit betekent dat zowel test- als basisservers gelijkelijk worden belast. . Geweldig. Dit is precies waar wij naar streven in onze servers, en dit hebben wij nodig voor een eerlijke vergelijking. De twee onderstaande grafieken tonen het aantal verzoeken dat is verwerkt door één CPU-kern en alle kernen op serverniveau.

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie
Verzoeken per kern

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie
Verzoeken aan de server

Te zien is dat AMD gemiddeld 23% meer verzoeken verwerkt. Helemaal niet slecht! We hebben op onze blog vaak geschreven over manieren om de prestaties van Gen 9 te verbeteren. En nu hebben we hetzelfde aantal cores, maar AMD doet meer werk met minder stroom. Uit de specificaties voor het aantal cores en TDP blijkt meteen dat AMD meer snelheid levert met een grotere energie-efficiëntie.

Maar zoals we al vermeldden, is TDP geen standaardspecificatie en is deze niet voor alle fabrikanten hetzelfde, dus laten we eens kijken naar het daadwerkelijke energieverbruik. Door het energieverbruik van de server parallel te meten met het aantal verzoeken per seconde, kregen we de volgende grafiek:

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie

Op basis van verzoeken per seconde per bestede watt zijn Gen X-servers die op AMD-processors draaien 28% efficiënter. Je zou meer kunnen verwachten, aangezien AMD's TDP 25% lager is, maar we moeten niet vergeten dat TDP een dubbelzinnig kenmerk is. We hebben gezien dat het werkelijke energieverbruik van AMD vrijwel identiek is aan het aangegeven TDP bij frequenties die veel hoger zijn dan de basisfrequentie; Intel heeft dat niet. Dit is nog een reden waarom TDP geen betrouwbare schatting van het energieverbruik is. CPU's van Intel in onze Gen 9-servers zijn geïntegreerd in een systeem met meerdere knooppunten, terwijl CPU's van AMD werken in standaard 1U-vormfactorservers. Dit is niet in het voordeel van AMD, aangezien multinode-servers een grotere dichtheid zouden moeten bieden met minder stroomverbruik per knooppunt, maar AMD haalde Intel nog steeds in qua energieverbruik per knooppunt.

In de meeste vergelijkingen tussen specificaties, testsimulaties en prestaties in de echte wereld presteerde de 1P AMD EPYC 7642-configuratie aanzienlijk beter dan de 2P Intel Xeon 6162. In sommige omstandigheden kan AMD tot 36% beter presteren, en wij zijn van mening dat door het optimaliseren hardware en software kunnen we deze verbetering continu realiseren.

Het blijkt dat AMD heeft gewonnen.

Extra grafieken tonen de gemiddelde latentie en p99-latentie bij NGINX over een periode van 24 uur. Gemiddeld liepen processen op AMD 25% sneller. Op p99 werkt het 20-50% sneller, afhankelijk van het tijdstip van de dag.

Conclusie

De hardware- en prestatie-ingenieurs van Cloudflare doen een aanzienlijke hoeveelheid tests en onderzoek om de beste serverconfiguratie voor onze klanten te bepalen. We werken hier graag omdat we grote problemen als deze kunnen oplossen, en we kunnen u helpen uw problemen op te lossen met diensten als serverless edge computing en een scala aan beveiligingsoplossingen zoals Magic Transit, Argo Tunnel en DDoS-bescherming. Alle servers in het Cloudflare-netwerk zijn geconfigureerd om betrouwbaar te presteren en we proberen altijd elke volgende generatie servers beter te maken dan de vorige. Wij geloven dat de AMD EPYC 7642 het antwoord is als het gaat om Gen X-processors.

Met behulp van Cloudflare Workers implementeren ontwikkelaars hun applicaties op ons groeiende netwerk over de hele wereld. We zijn er trots op dat onze klanten zich kunnen concentreren op het schrijven van code, terwijl wij ons richten op beveiliging en betrouwbaarheid in de cloud. En vandaag zijn we zelfs nog blijer om aan te kondigen dat hun werk zal worden ingezet op onze Gen X-generatie servers met AMD EPYC-processors van de tweede generatie.

Cloudflare kiest voor processors van AMD voor edge-servers van de tiende generatie
EPYC 7642-processors, codenaam "Rome" [Rome]

Door AMD's EPYC 7642 te gebruiken, konden we onze prestaties verbeteren en het gemakkelijker maken om ons netwerk uit te breiden naar nieuwe steden. Rome is niet in één dag gebouwd, maar voor velen van jullie zal het binnenkort dichterbij zijn.

De afgelopen jaren hebben we geëxperimenteerd met veel x86-chips van Intel en AMD, maar ook met processors van ARM. We verwachten dat deze CPU-makers in de toekomst met ons zullen blijven samenwerken, zodat we allemaal samen aan een beter internet kunnen bouwen.

Bron: www.habr.com

Voeg een reactie