Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Hər gün bir milyarddan çox unikal IP ünvanı Cloudflare Şəbəkəsindən keçir; saniyədə 11 milyondan çox HTTP sorğusuna xidmət edir; o, internet əhalisinin 100%-nin 95 ms məsafəsindədir. Şəbəkəmiz 200-dan çox ölkədə 90 şəhəri əhatə edir və mühəndislər komandamız son dərəcə sürətli və etibarlı infrastruktur qurmuşdur.

Biz öz işimizdən böyük qürur duyuruq və İnterneti daha yaxşı və təhlükəsiz bir yerə çevirməyə kömək etməyə sadiqik. Cloudflare-nin aparat mühəndisləri onun performansını artırmaq üçün ən yaxşı avadanlığı anlamaq və seçmək üçün serverlər və onların komponentləri haqqında dərin anlayışa malikdirlər.

Proqram stekimiz yüksək yüklü hesablamaları idarə edir və yüksək CPU-dan asılıdır, bu da mühəndislərimizdən yığının hər səviyyəsində Cloudflare-in səmərəliliyini və etibarlılığını daim optimallaşdırmağı tələb edir. Server tərəfində, emal gücünü artırmağın ən asan yolu CPU nüvələrini əlavə etməkdir. Bir server nə qədər çox nüvəyə sığarsa, bir o qədər çox məlumat emal edə bilər. Bu, bizim üçün vacibdir, çünki zaman keçdikcə məhsullarımızın və müştərilərimizin çeşidi artır və sorğuların artması serverlərdən artan performans tələb edir. Onların performansını artırmaq üçün nüvələrin sıxlığını artırmalı olduq - və biz məhz buna nail olduq. Aşağıda nüvələrin sayı da daxil olmaqla, 2015-ci ildən bəri yerləşdirdiyimiz serverlər üçün prosessorlar haqqında ətraflı məlumatları təqdim edirik:

-
Gen 6
Gen 7
Gen 8
Gen 9

Başlarken
2015
2016
2017
2018

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

Fiziki nüvələr
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

Hər nüvə üçün TDP
10.65W
8.50W
7.08W
6.25W

2018-ci ildə Gen 9 ilə server başına nüvələrin ümumi sayında böyük bir sıçrayış etdik. Ətraf mühitə təsir 33-ci nəsillə müqayisədə 8% azaldılıb və bu, bizə rack başına həcmi və hesablama gücünü artırmaq imkanı verir. İstiliyin yayılması üçün dizayn tələbləri (Termal dizayn gücü, TDP) enerji səmərəliyimizin də zamanla artdığını vurğulamaq üçün qeyd olunur. Bu göstərici bizim üçün vacibdir: birincisi, biz atmosferə daha az karbon buraxmaq istəyirik; ikincisi, məlumat mərkəzlərinin enerjisindən ən yaxşı şəkildə istifadə etmək istəyirik. Amma biz bilirik ki, nəyəsə nail olmaq istəyirik.

Bizim əsas təyinedici metrikimiz vatt başına tələblərin sayıdır. Nüvələr əlavə etməklə saniyədə sorğuların sayını artıra bilərik, lakin güc büdcəmiz daxilində qalmalıyıq. Biz seçilmiş enerji paylama modullarımızla birlikdə hər bir server çarxı üçün müəyyən yuxarı hədd verən məlumat mərkəzinin enerji infrastrukturu ilə məhdudlaşırıq. Serverlərin rafa əlavə edilməsi enerji istehlakını artırır. Hər bir rack enerji limitini keçsək və yeni rəflər əlavə etməli olsaq, əməliyyat xərcləri əhəmiyyətli dərəcədə artacaq. Eyni enerji istehlakı diapazonunda qalaraq emal gücünü artırmalıyıq ki, bu da əsas metrikimiz olan vatt başına sorğuları artıracaq.

Təxmin etdiyiniz kimi, dizayn mərhələsində enerji istehlakını diqqətlə öyrəndik. Yuxarıdakı cədvəl göstərir ki, nüvə başına TDP cari nəsildən yüksək olarsa, daha çox enerjiyə ehtiyacı olan CPU yerləşdirməyə vaxt itirməməliyik - bu, bizim metrikaya, vatt başına tələblərə mənfi təsir göstərəcək. Biz bazarda X nəslimiz üçün işə hazır sistemləri diqqətlə öyrəndik və qərar verdik. Biz 48 nüvəli Intel Xeon Platinum 6162 ikili yuva dizaynımızdan 48 nüvəli AMD EPYC 7642 tək yuvalı dizayna keçirik.

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

mikroarxitektura
"Skylake"
"Zen 2"

Kod adı
"Skylake SP"
“Roma”

Texniki proses
14nm
7nm

nüvələr
2 x 24
48

Tezlik
1.9 GHz
2.4 GHz

L3 Keş/soket
24 x 1.375MiB
16 x 16MiB

Yaddaş/rozetka
6 kanal, DDR4-2400-ə qədər
8 kanal, DDR4-3200-ə qədər

TDP
2 x 150W
225W

PCIe/soket
48 zolaq
128 zolaq

ISA
x86-64
x86-64

Spesifikasiyalardan aydın olur ki, AMD-dən olan çip TDP-ni aşağı salarkən eyni sayda nüvəni saxlamağa imkan verəcək. 9-cu nəsildə hər nüvəyə TDP 6,25 Vt, X-ci nəsil isə 4,69 Vt olacaq. 25% azalıb. Artan tezlik və bəlkə də bir rozetka ilə daha sadə dizayn sayəsində AMD çipinin praktikada daha yaxşı çıxış edəcəyini güman etmək olar. Hazırda AMD-nin nə qədər yaxşı performans göstərəcəyini görmək üçün müxtəlif testlər və simulyasiyalar həyata keçiririk.

Hələlik qeyd edək ki, TDP server dizaynının və CPU seçiminin ilkin mərhələlərində istifadə etdiyimiz istehsalçının spesifikasiyalarından sadələşdirilmiş metrikdir. Sürətli Google axtarışı göstərir ki, AMD və Intel TDP-ni təyin etmək üçün fərqli yanaşmalara malikdir və spesifikasiyanı etibarsız edir. Həqiqi CPU enerji istehlakı və daha da əhəmiyyətlisi server enerji istehlakı, son qərarımızı verərkən həqiqətən istifadə etdiyimiz şeydir.

Ekosistemin hazırlığı

Növbəti prosessorumuzu seçmək üçün səyahətimizə başlamaq üçün müxtəlif istehsalçıların proqram yığınımıza və xidmətlərimizə (C, LuaJIT və Go dillərində yazılmış) uyğun olan geniş çeşiddə CPU-larına baxdıq. Artıq sürəti ölçmək üçün bir sıra alətləri ətraflı təsvir etdik blog məqalələrimizdən birində. Bu halda, biz eyni dəstdən istifadə etdik - bu, CPU-nun səmərəliliyini ağlabatan müddətdə qiymətləndirməyə imkan verir, bundan sonra mühəndislərimiz proqramlarımızı müəyyən bir prosessora uyğunlaşdırmağa başlaya bilərlər.

Biz müxtəlif əsas sayları, soket sayları və tezlikləri olan müxtəlif prosessorları sınaqdan keçirdik. Bu məqalə niyə AMD EPYC 7642 üzərində qərarlaşdığımızdan bəhs etdiyi üçün bu bloqdakı bütün qrafiklər AMD prosessorlarının Intel Xeon Platinum 6162 ilə müqayisədə necə işləməsinə diqqət yetirir. bizim 9-cu nəsil.

Nəticələr hər bir prosessor variantı ilə vahid serverin ölçülərinə uyğundur - yəni Intel-dən iki 24 nüvəli prosessor və ya AMD-dən bir 48 nüvəli prosessor (iki yuvası olan Intel üçün server və biri ilə AMD EPYC üçün server) . BIOS-da işləyən serverlərə uyğun parametrləri təyin edirik. Bu, AMD üçün 3,03 GHz və Intel üçün 2,5 GHz-dir. Çox sadələşdirərək, eyni sayda nüvə ilə AMD-nin Intel-dən 21% daha yaxşı performans göstərəcəyini gözləyirik.

Kriptoqrafiya

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

AMD üçün ümidverici görünür. Açıq açar kriptoqrafiyasında 18% daha yaxşı işləyir. Simmetrik açarla o, AES-128-GCM şifrələmə seçimlərini itirir, lakin ümumilikdə müqayisə edilə bilən performans göstərir.

Sıxılma

Kenar serverlərdə bant genişliyinə qənaət etmək və məzmunun çatdırılma sürətini artırmaq üçün çoxlu məlumatları sıxışdırırıq. Biz məlumatları zlib və brotli C kitabxanalarından keçirik. Bütün testlər yaddaşda olan blog.cloudflare.com HTML faylında aparılıb.

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

AMD gzip istifadə edərkən orta hesabla 29% qazandı. Brotli vəziyyətində, dinamik sıxılma üçün istifadə etdiyimiz keyfiyyət 7 ilə testlərdə nəticələr daha yaxşıdır. Brotli-9 testində kəskin eniş var - bunu Brotlinin çox yaddaş istehlak etməsi və önbelleği aşması ilə izah edirik. Bununla belə, AMD böyük fərqlə qalib gəlir.

Bir çox xidmətlərimiz Go-da yazılmışdır. Aşağıdakı qrafiklərdə biz strings kitabxanasından istifadə edərək 32 KB sətirlərdə RegExp ilə Go-da kriptoqrafiya və sıxılma sürətini iki dəfə yoxlayırıq.

Kriptoqrafiyaya keçin

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Sıxılmaya gedin

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Regexp gedin

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Gedin Strings

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

AMD, ECDSA P256 Sign istisna olmaqla, Go ilə bütün testlərdə daha yaxşı çıxış edir, burada 38% geri qalırdı - bu, C-də 24% daha yaxşı çıxış etdiyini nəzərə alsaq, qəribədir. Orada nə baş verdiyini anlamağa dəyər. Ümumiyyətlə, AMD çox qazanmır, amma yenə də ən yaxşı nəticələri göstərir.

LuaJIT

Biz tez-tez yığında LuaJIT istifadə edirik. Bu, Cloudflare-in bütün hissələrini bir yerdə saxlayan yapışqandır. AMD-nin burada da qalib gəlməsinə şadıq.

Ümumilikdə, testlər göstərir ki, EPYC 7642 iki Xeon Platinum 6162-dən daha yaxşı işləyir. AMD bir neçə testdə - məsələn, AES-128-GCM və Go OpenSSL ECDSA-P256 Sign-da uduzur, lakin bütün digərlərində orta hesabla qalib gəlir. 25%.

İş yükünün simulyasiyası

Sürətli sınaqlarımızdan sonra biz serverləri proqramın kənar yığınına sintetik yükün tətbiq olunduğu başqa simulyasiyalar toplusundan keçirdik. Burada real işdə rastlaşa biləcək müxtəlif növ sorğularla ssenari iş yükünü simulyasiya edirik. Sorğular məlumat həcmi, HTTP və ya HTTPS protokolları, WAF mənbələri, İşçilər və digər bir çox dəyişənlərə görə dəyişir. Aşağıda ən çox rastlaşdığımız sorğu növləri üçün iki CPU-nun ötürmə qabiliyyətinin müqayisəsi verilmişdir.

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Diaqramdakı nəticələr x oxunda 9 dəyərinə normallaşdırılan 1,0-cu nəsil Intel əsaslı maşınların baza səviyyəsi ilə ölçülür. Məsələn, HTTPS üzərindən sadə 10 KiB sorğuları götürsək, AMD-nin saniyədə sorğular baxımından Intel-dən 1,5 dəfə yaxşı olduğunu görə bilərik. Orta hesabla, AMD bu testlər üçün Intel-dən 34% daha yaxşı çıxış etdi. Tək bir AMD EPYC 7642 üçün TDP-nin 225 Vt, iki Intel prosessoru üçün isə 300 Vt olduğunu nəzərə alsaq, məlum olur ki, “vatt başına tələblər” baxımından AMD Intel-dən 2 dəfə daha yaxşı nəticələr göstərir!

Bu nöqtədə biz gələcək Gen X CPU-larımız olaraq AMD EPYC 7642 üçün tək yuva seçiminə artıq meyl edirdik. AMD EPYC serverlərinin real işdə necə çıxış edəcəyini görmək bizi çox maraqlandırırdı və dərhal bir neçə server göndərdik. serverləri məlumat mərkəzlərindən bəzilərinə.

Əsl iş

İlk addım, təbii ki, serverləri real şəraitdə işə hazırlamaq idi. Donanmamızdakı bütün maşınlar eyni proseslər və xidmətlərlə işləyir, bu da performansı düzgün müqayisə etmək üçün əla imkan verir. Əksər məlumat mərkəzləri kimi, bizdə bir neçə nəsil serverlər yerləşdirilmişdir və biz serverlərimizi klasterlərə toplayırıq ki, hər bir sinifdə təxminən eyni nəsillərin serverləri olsun. Bəzi hallarda, bu, klasterlər arasında fərqlənən təkrar emal əyriləri ilə nəticələnə bilər. Amma bizimlə yox. Mühəndislərimiz bütün nəsillər üçün CPU istifadəsini optimallaşdırıblar ki, konkret maşının CPU-nun 8 və ya 24 nüvəyə malik olmasından asılı olmayaraq, CPU istifadəsi ümumiyyətlə qalanları ilə eyni olsun.

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Qrafik istifadənin oxşarlığına dair şərhimizi göstərir - Gen X nəsil serverlərində AMD CPU-larının istifadəsi ilə Gen 9 nəsil serverlərində Intel prosessorlarının istifadəsi arasında ciddi fərq yoxdur.Bu o deməkdir ki, həm test, həm də baza serverləri bərabər yüklənir. . Əla. Serverlərimizdə məhz buna çalışırıq və ədalətli müqayisə üçün buna ehtiyacımız var. Aşağıdakı iki qrafik bir CPU nüvəsi və server səviyyəsində bütün nüvələr tərəfindən işlənmiş sorğuların sayını göstərir.

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir
Hər nüvə üçün sorğular

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir
Serverə müraciətlər

Görünür ki, AMD orta hesabla 23% daha çox sorğu emal edir. Heç də pis deyil! Biz bloqumuzda tez-tez Gen 9-un performansını artırmaq yolları haqqında yazmışıq. İndi bizdə eyni sayda nüvə var, lakin AMD daha az güclə daha çox iş görür. Nüvələrin sayı və TDP spesifikasiyalarından dərhal aydın olur ki, AMD daha çox enerji səmərəliliyi ilə daha yüksək sürət təmin edir.

Ancaq artıq qeyd etdiyimiz kimi, TDP standart spesifikasiya deyil və bütün istehsalçılar üçün eyni deyil, ona görə də faktiki enerji istifadəsinə baxaq. Serverin enerji istehlakını saniyədə sorğuların sayına paralel olaraq ölçməklə aşağıdakı qrafiki əldə etdik:

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir

Xərclənən vatt başına saniyədə tələblərə əsasən, AMD prosessorlarında işləyən Gen X serverləri 28% daha səmərəlidir. AMD-nin TDP-nin 25% aşağı olduğunu nəzərə alsaq, daha çox gözləmək olar, lakin TDP-nin qeyri-müəyyən bir xüsusiyyət olduğunu xatırlamaq lazımdır. Biz gördük ki, AMD-nin faktiki enerji istehlakı bazadan xeyli yüksək tezliklərdə qeyd olunan TDP ilə demək olar ki, eynidir; Inteldə bu yoxdur. Bu, TDP-nin enerji istehlakının etibarlı təxmini olmamasının başqa bir səbəbidir. Gen 9 serverlərimizdə Intel-dən olan CPU-lar çox qovşaqlı sistemə inteqrasiya olunub, AMD-dən olan CPU-lar isə standart 1U forma faktorlu serverlərdə işləyir. Bu, AMD-nin xeyrinə deyil, çünki çoxbucaqlı serverlər hər qovşaq üçün daha az enerji sərfiyyatı ilə daha çox sıxlıq təmin etməlidirlər, lakin AMD hər node üçün enerji sərfiyyatına görə hələ də Intel-i üstələdi.

Xüsusiyyətlər, sınaq simulyasiyaları və real dünya performansı üzrə əksər müqayisələrdə 1P AMD EPYC 7642 konfiqurasiyası 2P Intel Xeon 6162-dən əhəmiyyətli dərəcədə yaxşı performans göstərdi. Bəzi şərtlərdə AMD 36%-ə qədər daha yaxşı performans göstərə bilər və biz hesab edirik ki, optimallaşdırmaqla aparat və proqram təminatı, biz davamlı olaraq bu təkmilləşdirməyə nail ola bilərik.

AMD qazandı.

Əlavə qrafiklər 99 saat ərzində NGINX ilə işləyən orta gecikmə və p24 gecikməsini göstərir. Orta hesabla, AMD-də proseslər 25% daha sürətli işləyir. p99-da günün vaxtından asılı olaraq 20-50% daha sürətli işləyir.

Nəticə

Cloudflare-in Avadanlıq və Performans mühəndisləri müştərilərimiz üçün ən yaxşı server konfiqurasiyasını müəyyən etmək üçün əhəmiyyətli miqdarda sınaq və araşdırma aparırlar. Biz burada işləməyi sevirik, çünki bu kimi böyük problemləri həll edə bilərik və biz serversiz kənar hesablama və Magic Transit, Argo Tunnel və DDoS qorunması kimi bir sıra təhlükəsizlik həlləri kimi xidmətlərlə problemlərinizi həll etməyə kömək edə bilərik. . Cloudflare şəbəkəsindəki bütün serverlər etibarlı şəkildə işləmək üçün konfiqurasiya edilib və biz həmişə hər növbəti nəsil serverləri əvvəlkindən daha yaxşı etməyə çalışırıq. Gen X prosessorlarına gəldikdə, AMD EPYC 7642-nin cavab olduğuna inanırıq.

Cloudflare İşçilərindən istifadə edərək tərtibatçılar öz tətbiqlərini dünya üzrə genişlənən şəbəkəmizdə yerləşdirirlər. Biz buludda təhlükəsizlik və etibarlılığa diqqət yetirərkən müştərilərimizin diqqətini kod yazmağa yönəltməkdən qürur duyuruq. Və bu gün biz onların işinin ikinci nəsil AMD EPYC prosessorları ilə işləyən Gen X nəsil serverlərimizdə yerləşdiriləcəyini elan etməkdən daha çox məmnunuq.

Cloudflare onuncu nəsil kənar serverlər üçün AMD-dən prosessorlar seçir
EPYC 7642 prosessorları, kod adı "Roma" [Roma]

AMD-nin EPYC 7642-dən istifadə etməklə biz performansımızı artıra bildik və şəbəkəmizi yeni şəhərlərə genişləndirməyi asanlaşdırdıq. Roma bir gündə tikilməyib, amma tezliklə bir çoxlarınıza daha yaxın olacaq.

Son bir neçə ildə biz Intel və AMD-dən bir çox x86 çipləri, həmçinin ARM prosessorları ilə sınaqdan keçirdik. Biz gözləyirik ki, bu CPU istehsalçıları gələcəkdə bizimlə işləməyə davam edəcəklər ki, biz hamımız birlikdə daha yaxşı İnternet qura bilək.

Mənbə: www.habr.com

Добавить комментарий