Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Mahigit sa isang bilyong natatanging IP address ang dumadaan sa Cloudflare Network araw-araw; naghahatid ito ng higit sa 11 milyong HTTP na kahilingan kada segundo; nasa loob siya ng 100ms ng 95% ng populasyon ng internet. Ang aming network ay sumasaklaw sa 200 lungsod sa mahigit 90 bansa, at ang aming pangkat ng mga inhinyero ay nakagawa ng napakabilis at maaasahang imprastraktura.

Ipinagmamalaki namin ang aming trabaho at nakatuon kami sa pagtulong na gawing mas mahusay at mas ligtas na lugar ang Internet. Ang mga inhinyero ng hardware ng Cloudflare ay may malalim na pag-unawa sa mga server at sa kanilang mga bahagi upang maunawaan at piliin ang pinakamahusay na hardware upang i-maximize ang pagganap nito.

Pinangangasiwaan ng aming software stack ang high-load computing at lubos na umaasa sa CPU, na nangangailangan ng aming mga inhinyero na patuloy na i-optimize ang kahusayan at pagiging maaasahan ng Cloudflare sa bawat antas ng stack. Sa panig ng server, ang pinakamadaling paraan upang mapataas ang kapangyarihan sa pagpoproseso ay sa pamamagitan ng pagdaragdag ng mga core ng CPU. Kung mas maraming mga core ang maaaring magkasya sa isang server, mas maraming data ang maaari nitong iproseso. Mahalaga ito sa amin dahil lumalaki ang iba't ibang produkto at kliyente namin sa paglipas ng panahon, at ang paglaki ng mga kahilingan ay nangangailangan ng mas mataas na performance mula sa mga server. Upang mapataas ang kanilang pagganap, kailangan naming taasan ang density ng mga core - at ito mismo ang aming nagawa. Sa ibaba ay nagbibigay kami ng detalyadong data sa mga processor para sa mga server na na-deploy namin mula noong 2015, kasama ang bilang ng mga core:

-
Gen 6
Gen 7
Gen 8
Gen 9

Pagsisimula
2015
2016
2017
2018

CPU
Intel Xeon E5 2630 v3
Intel Xeon E5 2630 v4
Intel Xeon Silver 4116
Intel Xeon Platinum 6162

Mga pisikal na core
2 8 x
2 10 x
2 12 x
2 24 x

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

TDP bawat core
10.65W
8.50W
7.08W
6.25W

Noong 2018, gumawa kami ng malaking paglukso sa kabuuang bilang ng mga core bawat server na may Gen 9. Ang epekto sa kapaligiran ay nabawasan ng 33% kumpara sa ika-8 henerasyon, na nagbibigay sa amin ng pagkakataong pataasin ang volume at computing power sa bawat rack. Mga kinakailangan sa disenyo para sa pag-aalis ng init (kapangyarihan ng thermal na disenyo, TDP) ay binanggit upang i-highlight na ang ating kahusayan sa enerhiya ay tumaas din sa paglipas ng panahon. Ang indicator na ito ay mahalaga para sa amin: una, gusto naming maglabas ng mas kaunting carbon sa atmospera; pangalawa, gusto naming gamitin nang husto ang enerhiya mula sa mga data center. Ngunit alam natin na mayroon tayong dapat pagsikapan.

Ang aming pangunahing sukatan sa pagtukoy ay ang bilang ng mga kahilingan sa bawat watt. Maaari naming dagdagan ang bilang ng mga kahilingan sa bawat segundo sa pamamagitan ng pagdaragdag ng mga core, ngunit kailangan naming manatili sa loob ng aming power budget. Kami ay nalilimitahan ng data center power infrastructure, na, kasama ng aming mga napiling power distribution modules, ay nagbibigay sa amin ng partikular na pinakamataas na limitasyon para sa bawat server rack. Ang pagdaragdag ng mga server sa isang rack ay nagpapataas ng pagkonsumo ng kuryente. Ang mga gastos sa pagpapatakbo ay tataas nang malaki kung lalampas tayo sa limitasyon ng enerhiya sa bawat rack at kailangang magdagdag ng mga bagong rack. Kailangan nating pataasin ang kapangyarihan sa pagpoproseso habang nananatili sa loob ng parehong saklaw ng pagkonsumo ng kuryente, na magpapataas ng mga kahilingan sa bawat watt, ang ating pangunahing sukatan.

Tulad ng maaaring nahulaan mo, maingat naming pinag-aralan ang pagkonsumo ng enerhiya sa yugto ng disenyo. Ipinapakita ng talahanayan sa itaas na hindi tayo dapat mag-aksaya ng oras sa pag-deploy ng mas maraming gutom na CPU kung ang TDP sa bawat core ay mas mataas kaysa sa kasalukuyang henerasyon - ito ay negatibong makakaapekto sa ating sukatan, mga kahilingan sa bawat watt. Maingat naming pinag-aralan ang mga ready-to-run system para sa aming henerasyon X sa merkado at gumawa ng desisyon. Lumilipat kami mula sa aming 48-core Intel Xeon Platinum 6162 dual-socket na disenyo patungo sa isang 48-core AMD EPYC 7642 single-socket na disenyo.

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Microarchitecture
"Skylake"
"Zen 2"

Codename
"Skylake SP"
"Roma"

Teknolohiya ng proseso
14nm
7nm

Mga core
2 24 x
48

Dalas
1.9 GHz
2.4 GHz

L3 Cache/socket
24 x 1.375MiB
16 x 16MiB

Memory/socket
6 na channel, hanggang sa DDR4-2400
8 na channel, hanggang sa DDR4-3200

TDP
2 x 150W
225W

PCIe/socket
Mga linya ng 48
Mga linya ng 128

Isa
x86-64
x86-64

Mula sa mga pagtutukoy ay malinaw na ang chip mula sa AMD ay magpapahintulot sa amin na panatilihin ang parehong bilang ng mga core habang binababa ang TDP. Ang ika-9 na henerasyon ay may TDP bawat core na 6,25 W, at ang Xth na henerasyon ay magiging 4,69 W. Nabawasan ng 25%. Salamat sa tumaas na dalas, at marahil isang mas simpleng disenyo na may isang socket, maaari itong ipalagay na ang AMD chip ay gaganap ng mas mahusay sa pagsasanay. Kasalukuyan kaming nagpapatakbo ng iba't ibang mga pagsubok at simulation upang makita kung gaano kahusay ang gagawin ng AMD.

Sa ngayon, tandaan natin na ang TDP ay isang pinasimpleng sukatan mula sa mga detalye ng tagagawa, na ginamit namin sa mga unang yugto ng disenyo ng server at pagpili ng CPU. Ang isang mabilis na paghahanap sa Google ay nagpapakita na ang AMD at Intel ay may iba't ibang diskarte sa pagtukoy ng TDP, na ginagawang hindi mapagkakatiwalaan ang detalye. Ang tunay na pagkonsumo ng kuryente ng CPU, at higit sa lahat ang pagkonsumo ng kuryente ng server, ang talagang ginagamit namin kapag gumagawa ng aming panghuling desisyon.

Kahandaan sa ekosistema

Upang simulan ang aming paglalakbay sa pagpili ng aming susunod na processor, tumingin kami sa isang malawak na hanay ng mga CPU mula sa iba't ibang mga tagagawa na angkop para sa aming software stack at mga serbisyo (nakasulat sa C, LuaJIT at Go). Inilarawan na namin nang detalyado ang isang hanay ng mga tool para sa pagsukat ng bilis sa isa sa aming mga artikulo sa blog. Sa kasong ito, ginamit namin ang parehong hanay - pinapayagan kaming suriin ang kahusayan ng CPU sa isang makatwirang oras, pagkatapos nito ay maaaring simulan ng aming mga inhinyero na iakma ang aming mga programa sa isang partikular na processor.

Sinubukan namin ang iba't ibang mga processor na may iba't ibang mga core count, bilang ng socket, at frequency. Dahil ang artikulong ito ay tungkol sa kung bakit kami nanirahan sa AMD EPYC 7642, ang lahat ng mga chart sa blog na ito ay nakatuon sa kung paano gumaganap ang mga processor ng AMD kumpara sa Intel Xeon Platinum 6162 mula sa ang aming ika-9 na henerasyon.

Ang mga resulta ay tumutugma sa mga sukat ng isang server sa bawat variant ng processor - iyon ay, may dalawang 24-core processor mula sa Intel, o may isang 48-core processor mula sa AMD (server para sa Intel na may dalawang socket at server para sa AMD EPYC na may isa) . Sa BIOS itinakda namin ang mga parameter na naaayon sa mga tumatakbong server. Ito ay 3,03 GHz para sa AMD at 2,5 GHz para sa Intel. Sa lubos na pagpapasimple, inaasahan namin na sa parehong bilang ng mga core, ang AMD ay gaganap ng 21% na mas mahusay kaysa sa Intel.

Cryptography

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Mukhang promising para sa AMD. Gumaganap ito ng 18% na mas mahusay sa public key cryptography. Sa isang simetriko na key, natatalo ito para sa mga opsyon sa pag-encrypt ng AES-128-GCM, ngunit sa pangkalahatan ay maihahambing ang pagganap.

Compression

Sa mga edge na server, nag-compress kami ng maraming data para makatipid sa bandwidth at mapataas ang bilis ng paghahatid ng content. Ipinapasa namin ang data sa mga C library na zlib at brotli. Ang lahat ng mga pagsubok ay pinatakbo sa blog.cloudflare.com HTML file sa memorya.

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Nanalo ang AMD sa average na 29% kapag gumagamit ng gzip. Sa kaso ng brotli, ang mga resulta ay mas mahusay sa mga pagsubok na may kalidad 7, na ginagamit namin para sa dynamic na compression. Sa pagsubok ng brotli-9 mayroong isang matalim na pagbaba - ipinapaliwanag namin ito sa pamamagitan ng katotohanan na ang Brotli ay kumonsumo ng maraming memorya at umaapaw sa cache. Gayunpaman, nanalo ang AMD sa malaking margin.

Marami sa aming mga serbisyo ay nakasulat sa Go. Sa mga sumusunod na graph, i-double check namin ang bilis ng cryptography at compression sa Go with RegExp sa 32 KB na mga linya gamit ang strings library.

Pumunta sa cryptography

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Pumunta sa Compression

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Pumunta sa Regexp

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Pumunta Strings

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Ang AMD ay gumaganap nang mas mahusay sa lahat ng mga pagsubok sa Go maliban sa ECDSA P256 Sign, kung saan ito ay 38% sa likod - na kakaiba, dahil ito ay gumanap ng 24% na mas mahusay sa C. Ito ay nagkakahalaga ng pag-alam kung ano ang nangyayari doon. Sa pangkalahatan, hindi gaanong nanalo ang AMD, ngunit nagpapakita pa rin ng pinakamahusay na mga resulta.

LuaJIT

Madalas naming ginagamit ang LuaJIT sa stack. Ito ang pandikit na humahawak sa lahat ng bahagi ng Cloudflare na magkasama. At natutuwa kami na nanalo rin dito ang AMD.

Sa pangkalahatan, ipinapakita ng mga pagsusuri na ang EPYC 7642 ay gumaganap nang mas mahusay kaysa sa dalawang Xeon Platinum 6162. Ang AMD ay natatalo sa ilang pagsubok - halimbawa, AES-128-GCM at Go OpenSSL ECDSA-P256 Sign - ngunit nanalo sa lahat ng iba pa, sa average ng 25% .

Workload Simulation

Pagkatapos ng aming mabilis na pagsubok, pinatakbo namin ang mga server sa pamamagitan ng isa pang hanay ng mga simulation kung saan inilalapat ang isang synthetic na pagkarga sa software edge stack. Dito ginagaya namin ang isang scenario na workload na may iba't ibang uri ng mga kahilingan na maaaring makaharap sa totoong trabaho. Ang mga kahilingan ay nag-iiba sa dami ng data, HTTP o HTTPS protocol, WAF source, Workers, at iba pang maraming variable. Nasa ibaba ang isang paghahambing ng throughput ng dalawang CPU para sa mga uri ng mga kahilingan na pinakamadalas naming nakakaharap.

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Ang mga resulta sa chart ay sinusukat laban sa baseline ng ika-9 na henerasyong Intel-based na mga makina, na na-normalize sa halagang 1,0 sa x-axis. Halimbawa, ang pagkuha ng mga simpleng 10 KiB na kahilingan sa HTTPS, makikita natin na ang AMD ay 1,5 beses na mas mahusay kaysa sa Intel sa mga tuntunin ng mga kahilingan sa bawat segundo. Sa karaniwan, ang AMD ay gumanap ng 34% na mas mahusay kaysa sa Intel para sa mga pagsubok na ito. Isinasaalang-alang na ang TDP para sa isang solong AMD EPYC 7642 ay 225 W, at para sa dalawang Intel processor ay 300 W, lumalabas na sa mga tuntunin ng "mga kahilingan sa bawat watt" AMD ay nagpapakita ng 2 beses na mas mahusay na mga resulta kaysa sa Intel!

Sa puntong ito, malinaw na nakasandal na kami sa solong socket na opsyon para sa AMD EPYC 7642 bilang aming hinaharap na mga Gen X na CPU. Lubos kaming interesadong makita kung paano gaganap ang mga AMD EPYC server sa real-world na trabaho, at agad kaming nagpadala ng ilang mga server sa ilan mula sa mga data center.

Tunay na trabaho

Ang unang hakbang, natural, ay ihanda ang mga server para sa trabaho sa totoong mga kondisyon. Gumagana ang lahat ng makina sa aming fleet sa parehong mga proseso at serbisyo, na nagbibigay ng magandang pagkakataon upang maihambing nang tama ang pagganap. Tulad ng karamihan sa mga data center, mayroon kaming ilang henerasyon ng mga server na naka-deploy, at kinokolekta namin ang aming mga server sa mga cluster upang ang bawat klase ay naglalaman ng mga server ng humigit-kumulang sa parehong henerasyon. Sa ilang mga kaso, maaari itong magresulta sa mga curve ng pag-recycle na naiiba sa pagitan ng mga cluster. Pero hindi sa amin. Ang aming mga inhinyero ay nag-optimize ng paggamit ng CPU para sa lahat ng henerasyon upang hindi alintana kung ang CPU ng partikular na makina ay may 8 core o 24, ang paggamit ng CPU ay karaniwang pareho sa iba.

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Inilalarawan ng graph ang aming komento sa pagkakapareho ng paggamit - walang makabuluhang pagkakaiba sa pagitan ng paggamit ng mga AMD CPU sa mga server ng henerasyong Gen X at ang paggamit ng mga Intel processor sa mga server ng henerasyon ng Gen 9. Nangangahulugan ito na parehong na-load ang mga server ng pagsubok at baseline nang pantay . Malaki. Ito mismo ang aming sinisikap sa aming mga server, at kailangan namin ito para sa isang patas na paghahambing. Ang dalawang graph sa ibaba ay nagpapakita ng bilang ng mga kahilingang naproseso ng isang CPU core at lahat ng mga core sa antas ng server.

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon
Mga kahilingan sa bawat core

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon
Mga kahilingan sa server

Makikita na sa karaniwan ay nagpoproseso ang AMD ng 23% na higit pang mga kahilingan. Hindi masama sa lahat! Madalas kaming sumulat sa aming blog tungkol sa mga paraan upang mapataas ang pagganap ng Gen 9. At ngayon ay mayroon kaming parehong bilang ng mga core, ngunit ang AMD ay gumagana nang mas kaunting kapangyarihan. Agad na malinaw mula sa mga detalye para sa bilang ng mga core at TDP na ang AMD ay nagbibigay ng mas mataas na bilis na may higit na kahusayan sa enerhiya.

Ngunit tulad ng nabanggit na namin, ang TDP ay hindi isang karaniwang detalye at hindi ito pareho para sa lahat ng mga tagagawa, kaya tingnan natin ang aktwal na paggamit ng enerhiya. Sa pamamagitan ng pagsukat sa konsumo ng enerhiya ng server kasabay ng bilang ng mga kahilingan sa bawat segundo, nakuha namin ang sumusunod na graph:

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon

Batay sa mga kahilingan sa bawat segundo bawat watt na ginastos, ang mga Gen X server na tumatakbo sa mga AMD processor ay 28% na mas mahusay. Maaaring umasa ang isa, dahil ang TDP ng AMD ay 25% na mas mababa, ngunit dapat tandaan na ang TDP ay isang hindi tiyak na katangian. Nakita namin na ang aktwal na pagkonsumo ng kuryente ng AMD ay halos magkapareho sa nakasaad na TDP sa mga frequency na mas mataas kaysa sa base; Wala iyon sa Intel. Ito ay isa pang dahilan kung bakit ang TDP ay hindi isang maaasahang pagtatantya ng pagkonsumo ng enerhiya. Ang mga CPU mula sa Intel sa aming mga Gen 9 na server ay isinama sa isang multi-node system, habang ang mga CPU mula sa AMD ay gumagana sa karaniwang 1U form factor server. Hindi ito pabor sa AMD, dahil ang mga multinode server ay dapat magbigay ng mas malaking density na may mas kaunting paggamit ng kuryente sa bawat node, ngunit nalampasan pa rin ng AMD ang Intel sa mga tuntunin ng paggamit ng kuryente sa bawat node.

Sa karamihan ng mga paghahambing sa kabuuan ng mga spec, test simulation, at real-world na pagganap, ang 1P AMD EPYC 7642 configuration ay gumaganap nang mas mahusay kaysa sa 2P Intel Xeon 6162. Sa ilang kundisyon, ang AMD ay maaaring gumanap ng hanggang 36% na mas mahusay, at naniniwala kami na sa pamamagitan ng pag-optimize hardware at software, makakamit natin ang pagpapabuti na ito sa patuloy na batayan.

Nanalo pala ang AMD.

Ang mga karagdagang graph ay nagpapakita ng average na latency at p99 latency na tumatakbo sa NGINX sa loob ng 24 na oras. Sa karaniwan, ang mga proseso sa AMD ay tumakbo ng 25% na mas mabilis. Sa p99 ito ay tumatakbo ng 20-50% na mas mabilis depende sa oras ng araw.

Konklusyon

Ang mga inhinyero ng Hardware at Performance ng Cloudflare ay gumagawa ng malaking dami ng pagsubok at pagsasaliksik upang matukoy ang pinakamahusay na configuration ng server para sa aming mga customer. Gustung-gusto naming magtrabaho dito dahil malulutas namin ang malalaking problemang tulad nito, at matutulungan ka naming malutas ang iyong mga problema sa mga serbisyo tulad ng serverless edge computing at isang hanay ng mga solusyon sa seguridad tulad ng Magic Transit, Argo Tunnel, at proteksyon ng DDoS. . Ang lahat ng mga server sa Cloudflare network ay naka-configure upang gumanap nang mapagkakatiwalaan, at palagi naming sinusubukan na gawing mas mahusay ang bawat susunod na henerasyon ng mga server kaysa sa nauna. Naniniwala kami na ang AMD EPYC 7642 ang sagot pagdating sa mga processor ng Gen X.

Gamit ang Cloudflare Workers, idini-deploy ng mga developer ang kanilang mga application sa aming lumalawak na network sa buong mundo. Ipinagmamalaki naming hayaan ang aming mga customer na tumuon sa pagsulat ng code habang nakatuon kami sa seguridad at pagiging maaasahan sa cloud. At ngayon mas nalulugod kaming ipahayag na ang kanilang trabaho ay ipapakalat sa aming mga server ng henerasyong Gen X na nagpapatakbo ng mga processor ng pangalawang henerasyong AMD EPYC.

Pinipili ng Cloudflare ang mga processor mula sa AMD para sa mga server sa gilid ng ikasampung henerasyon
Mga processor ng EPYC 7642, codename na "Rome" [Rome]

Sa pamamagitan ng paggamit ng EPYC 7642 ng AMD, nagawa naming pataasin ang aming pagganap at gawing mas madali ang pagpapalawak ng aming network sa mga bagong lungsod. Ang Roma ay hindi itinayo sa isang araw, ngunit malapit na itong maging mas malapit sa marami sa inyo.

Sa nakalipas na ilang taon, nag-eksperimento kami sa maraming x86 chips mula sa Intel at AMD, pati na rin sa mga processor mula sa ARM. Inaasahan namin na ang mga gumagawa ng CPU na ito ay patuloy na makikipagtulungan sa amin sa hinaharap upang makabuo kaming lahat ng mas magandang Internet nang sama-sama.

Pinagmulan: www.habr.com

Magdagdag ng komento