Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Күн сайын Cloudflare желісі арқылы миллиардтан астам бірегей IP мекенжайлары өтеді; ол секундына 11 миллионнан астам HTTP сұрауларына қызмет көрсетеді; ол интернет тұрғындарының 100%-ының 95 мс аралығында. Біздің желіміз 200-нан астам елдегі 90 қаланы қамтиды және біздің инженерлер тобы өте жылдам және сенімді инфрақұрылымды құрды.

Біз өз жұмысымызды мақтан тұтамыз және Интернетті жақсырақ және қауіпсіз жерге айналдыруға көмектесеміз. Cloudflare аппараттық инженерлері оның өнімділігін арттыру үшін ең жақсы жабдықты түсіну және таңдау үшін серверлер мен олардың құрамдас бөліктері туралы терең түсінікке ие.

Біздің бағдарламалық жасақтама стегі жоғары жүктемелі есептеулерді өңдейді және процессорға өте тәуелді, бұл инженерлерден стектің әрбір деңгейінде Cloudflare тиімділігі мен сенімділігін ұдайы оңтайландыруды талап етеді. Сервер жағында өңдеу қуатын арттырудың ең оңай жолы - процессор өзектерін қосу. Серверге неғұрлым көп ядролар сыйса, соғұрлым көп деректерді өңдей алады. Бұл біз үшін маңызды, өйткені өнімдеріміздің және клиенттеріміздің әртүрлілігі уақыт өте келе өсіп келеді және сұраныстардың өсуі серверлерден өнімділікті арттыруды талап етеді. Олардың өнімділігін арттыру үшін біз өзектердің тығыздығын арттыруымыз керек болды - біз дәл осы нәрсеге қол жеткіздік. Төменде біз 2015 жылдан бері енгізген серверлерге арналған процессорлар, соның ішінде ядролар саны туралы толық деректерді береміз:

-
Gen 6
Gen 7
Gen 8
Gen 9

Жұмысты бастау
2015
2016
2017
2018

Орталық Есептеуіш Бөлім
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silver 4116
Intel Xeon Platinum 6162

Физикалық өзектер
2 х 8
2 х 10
2 х 12
2 х 24

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

Әр ядроға TDP
10.65W
8.50W
7.08W
6.25W

2018 жылы біз 9-шы буынмен бір сервердегі ядролардың жалпы санында үлкен секіріс жасадық. Қоршаған ортаға әсер 33-ші буынмен салыстырғанда 8%-ға төмендеді, бұл бізге бір тірекке көлем мен есептеу қуатын арттыруға мүмкіндік берді. Жылу бөлуге арналған жобалық талаптар (Жылулық дизайн қуаты, TDP) біздің энергия тиімділігіміз уақыт өте келе артқанын атап өту үшін айтылған. Бұл көрсеткіш біз үшін маңызды: біріншіден, біз атмосфераға көміртекті азырақ шығарғымыз келеді; екіншіден, біз деректер орталықтарының энергиясын тиімді пайдаланғымыз келеді. Бірақ біз ұмтылатын нәрсе бар екенін білеміз.

Біздің негізгі анықтаушы метрикамыз - бір ватт сұраныстар саны. Біз ядроларды қосу арқылы секундына сұраулар санын көбейте аламыз, бірақ біз қуат бюджетінде қалуымыз керек. Біз таңдалған қуатты тарату модульдерімен бірге әрбір сервер тірегі үшін белгілі бір жоғарғы шекті беретін деректер орталығының қуат инфрақұрылымымен шектелеміз. Серверлерді сөреге қосу қуат тұтынуды арттырады. Егер біз бір тірек қуат шегінен асып кететін болсақ және жаңа тіректерді қосу керек болса, операциялық шығындар айтарлықтай артады. Біз бір қуат тұтыну ауқымында бола отырып, өңдеу қуатын арттыруымыз керек, бұл ваттқа сұранысты арттырады, біздің негізгі көрсеткіш.

Сіз болжағандай, біз дизайн кезеңінде энергияны тұтынуды мұқият зерттедік. Жоғарыдағы кесте, егер бір ядродағы TDP ағымдағы буыннан жоғары болса, энергияны көп қажет ететін процессорларды орналастыруға уақыт жоғалтпау керектігін көрсетеді - бұл біздің метрикаға, бір ватт сұранысымызға теріс әсер етеді. Біз нарықтағы X ұрпағымыз үшін іске қосуға дайын жүйелерді мұқият зерттеп, шешім қабылдадық. Біз 48 ядролы Intel Xeon Platinum 6162 қос ұялы дизайннан 48 ядролы AMD EPYC 7642 бір ұялы дизайнға көшеміз.

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

-
Intel
AMD

Орталық Есептеуіш Бөлім
Xeon Platinum 6162
EPYC 7642

микроархитектура
«Скайлейк»
«Zen 2»

Код атауы
«Skylake SP»
«Рим»

Техникалық процесс
14нм
7нм

өзектер
2 х 24
48

Жиілік
1.9 ГГц
2.4 ГГц

L3 кэш/розетка
24 x 1.375МБ
16 x 16МБ

Жад/розетка
6 арна, DDR4-2400 дейін
8 арна, DDR4-3200 дейін

TDP
2 x 150W
225W

PCIe/розетка
48 жолақ
128 жолақ

БҰЛ
x86-64
x86-64

Техникалық сипаттамалардан AMD чипі TDP төмендеген кезде ядролардың бірдей санын сақтауға мүмкіндік беретіні анық. 9-шы буынның TDP бір ядросына 6,25 Вт, ал X-ші ұрпақта 4,69 Вт болады. 25%-ға төмендеді. Жиіліктің жоғарылауының және мүмкін бір розеткамен қарапайым дизайнның арқасында AMD чипі іс жүзінде жақсырақ жұмыс істейді деп болжауға болады. Қазіргі уақытта AMD қаншалықты жақсы жұмыс істейтінін көру үшін әртүрлі сынақтар мен модельдеулерді жүргізіп жатырмыз.

Әзірге, TDP серверді жобалаудың және процессорды таңдаудың бастапқы кезеңдерінде қолданылған өндірушінің техникалық сипаттамаларынан жеңілдетілген метрика екенін атап өтейік. Google жылдам іздеуі AMD және Intel компанияларының TDP анықтауға әртүрлі көзқарастары бар екенін көрсетеді, бұл спецификацияны сенімсіз етеді. Нақты процессордың қуатын тұтыну және одан да маңыздысы сервер қуатын тұтыну - бұл соңғы шешімімізді қабылдаған кезде біз шынымен қолданатын нәрсе.

Экожүйенің дайындығы

Келесі процессорды таңдауға саяхатымызды бастау үшін біз бағдарламалық жасақтама стекке және қызметтерімізге (C, LuaJIT және Go тілдерінде жазылған) жақсы сәйкес келетін әртүрлі өндірушілердің процессорларының кең ауқымын қарастырдық. Біз жылдамдықты өлшеуге арналған құралдар жиынтығын егжей-тегжейлі сипаттадық біздің блог мақалаларымыздың бірінде. Бұл жағдайда біз дәл сол жиынтықты қолдандық – бұл ақылға қонымды уақыт ішінде процессордың тиімділігін бағалауға мүмкіндік береді, содан кейін біздің инженерлер біздің бағдарламаларды белгілі бір процессорға бейімдей бастайды.

Біз әртүрлі ядро ​​сандары, ұяшықтар саны және жиіліктері бар әртүрлі процессорларды сынадық. Бұл мақалада неліктен AMD EPYC 7642-ге көшкеніміз туралы болғандықтан, осы блогтағы барлық диаграммалар AMD процессорларының Intel Xeon Platinum 6162-мен салыстырғанда қалай жұмыс істейтініне бағытталған. біздің 9-шы ұрпақ.

Нәтижелер әрбір процессор нұсқасы бар бір сервердің өлшемдеріне сәйкес келеді - яғни Intel екі 24 ядролы процессорлары немесе AMD бір 48 ядролы процессорлары (екі ұясы бар Intel сервері және біреуі бар AMD EPYC сервері) . BIOS-та біз іске қосылған серверлерге сәйкес параметрлерді орнатамыз. Бұл AMD үшін 3,03 ГГц және Intel үшін 2,5 ГГц. Жеңілдететін болсақ, ядролардың бірдей санымен AMD Intel-ге қарағанда 21% жақсы жұмыс істейді деп күтеміз.

Криптография

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

AMD үшін перспективалы болып көрінеді. Ол ашық кілт криптографиясында 18% жақсырақ жұмыс істейді. Симметриялық кілтпен ол AES-128-GCM шифрлау опцияларын жоғалтады, бірақ жалпы өнімділігі салыстырмалы.

Қысу

Шеткі серверлерде өткізу қабілеттілігін үнемдеу және мазмұнды жеткізу жылдамдығын арттыру үшін біз көптеген деректерді қысамыз. Біз деректерді zlib және brotli C кітапханалары арқылы береміз. Барлық сынақтар жадтағы blog.cloudflare.com HTML файлында орындалды.

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

AMD gzip пайдалану кезінде орташа есеппен 29% ұтты. Бротли жағдайында біз динамикалық қысу үшін қолданатын 7 сапасы бар сынақтарда нәтижелер одан да жақсырақ. Brotli-9 сынағында күрт төмендеу байқалады - біз мұны Бротлидің көп жадты тұтынатындығымен және кэшті толтыруымен түсіндіреміз. Дегенмен, AMD үлкен айырмашылықпен жеңеді.

Біздің көптеген қызметтеріміз Go тілінде жазылған. Келесі графиктерде жолдар кітапханасының көмегімен 32 Кбайт жолдарда RegExp көмегімен Go бағдарламасында криптография мен қысу жылдамдығын екі рет тексереміз.

Криптографияға өтіңіз

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Компрессияға өтіңіз

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Regexp өтіңіз

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Go Strings

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

AMD ECDSA P256 Sign-дан басқа Go көмегімен барлық сынақтарды жақсырақ орындайды, мұнда ол 38% артта қалды - бұл C тілінде 24% жақсы орындағанын ескерсек, бұл таңқаларлық. Ол жерде не болып жатқанын анықтаған жөн. Жалпы алғанда, AMD көп ұтпайды, бірақ бәрібір ең жақсы нәтижелерді көрсетеді.

LuaJIT

Біз LuaJIT-ті стекке жиі қолданамыз. Бұл Cloudflare-дің барлық бөліктерін біріктіретін желім. Бұл жерде де AMD жеңіске жеткеніне қуаныштымыз.

Жалпы, сынақтар көрсеткендей, EPYC 7642 екі Xeon Platinum 6162-ден жақсырақ жұмыс істейді. AMD бірнеше сынақта жеңіледі - мысалы, AES-128-GCM және Go OpenSSL ECDSA-P256 Sign - бірақ қалғандарының барлығында орташа есеппен жеңеді. 25%.

Жұмыс жүктемесінің симуляциясы

Жылдам сынақтардан кейін біз серверлерді бағдарламалық жасақтаманың шеткі стекіне синтетикалық жүктеме қолданылатын басқа модельдеу жиынтығы арқылы жүргіздік. Мұнда біз нақты жұмыста кездесуі мүмкін сұраулардың әртүрлі түрлерімен сценарийдің жұмыс жүктемесін имитациялаймыз. Сұраулар деректер көлемінде, HTTP немесе HTTPS протоколдарында, WAF көздерінде, жұмысшыларда және басқа да көптеген айнымалыларда өзгереді. Төменде біз жиі кездесетін сұрау түрлері үшін екі процессордың өткізу қабілетін салыстыру берілген.

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Диаграммадағы нәтижелер x осінде 9 мәніне қалыпқа келтірілген 1,0-шы буын Intel негізіндегі машиналарының базалық деңгейімен өлшенеді. Мысалы, HTTPS арқылы қарапайым 10 КБ сұрауларды алсақ, AMD секундына сұраулар бойынша Intel-ден 1,5 есе жақсырақ екенін көреміз. Орташа алғанда, AMD бұл сынақтар үшін Intel-ге қарағанда 34% жақсы орындады. Бір AMD EPYC 7642 үшін TDP 225 Вт, ал екі Intel процессоры үшін 300 Вт екенін ескерсек, «ваттқа сұраныс» бойынша AMD Intel-ге қарағанда 2 есе жақсы нәтиже көрсетеді!

Осы кезде біз болашақ X Gen X процессорлары ретінде AMD EPYC 7642 үшін жалғыз розеткаға бейім болдық. Бізді AMD EPYC серверлерінің нақты жұмыста қалай орындайтынын көру өте қызықты болды және біз бірден бірнеше серверді жібердік. серверлерден кейбір деректер орталықтарынан.

Нағыз жұмыс

Бірінші қадам, әрине, серверлерді нақты жағдайларда жұмыс істеуге дайындау болды. Біздің парктегі барлық машиналар бірдей процестермен және қызметтермен жұмыс істейді, бұл өнімділікті дұрыс салыстыруға тамаша мүмкіндік береді. Көптеген деректер орталықтары сияқты, бізде серверлердің бірнеше буыны орналастырылған және біз серверлерімізді кластерлерге жинаймыз, осылайша әрбір сыныпта шамамен бірдей ұрпақтардың серверлері болады. Кейбір жағдайларда бұл кластерлер арасында ерекшеленетін қайта өңдеу қисықтарына әкелуі мүмкін. Бірақ бізбен емес. Біздің инженерлер барлық ұрпақтар үшін процессорды пайдалануды оңтайландырды, осылайша белгілі бір машинаның орталық процессорында 8 ядросы немесе 24 ядросы бар-жоғына қарамастан, процессорды пайдалану әдетте қалғандарымен бірдей болады.

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

График қолданудың ұқсастығы туралы түсініктемемізді көрсетеді – X буын серверлерінде AMD процессорларын пайдалану мен 9 буын серверлерінде Intel процессорларын пайдалану арасында айтарлықтай айырмашылық жоқ.Бұл сынақ және базалық серверлер бірдей жүктелетінін білдіреді. . Тамаша. Біздің серверлерімізде дәл осы нәрсеге ұмтыламыз және бұл әділ салыстыру үшін қажет. Төмендегі екі графикте бір процессорлық ядро ​​және сервер деңгейіндегі барлық ядролар өңдеген сұраулар саны көрсетілген.

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды
Әр ядроға арналған сұраулар

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды
Серверге сұраулар

AMD орташа есеппен 23% көбірек сұрауларды өңдейтінін көруге болады. Мүлдем жаман емес! Біз өз блогымызда Gen 9 өнімділігін арттыру жолдары туралы жиі жаздық. Ал қазір бізде ядролардың саны бірдей, бірақ AMD аз қуатпен көбірек жұмыс істейді. Ядролар саны мен TDP сипаттамаларынан AMD энергия тиімділігі жоғарырақ жылдамдықты қамтамасыз ететіні бірден анық болады.

Бірақ жоғарыда айтқанымыздай, TDP стандартты сипаттама емес және ол барлық өндірушілер үшін бірдей емес, сондықтан нақты энергияны пайдалануды қарастырайық. Сервердің энергия тұтынуын секундына сұраныс санымен параллельді өлшеу арқылы біз келесі графикті алдық:

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды

Бір секундқа жұмсалған ватт үшін сұрауларға негізделген, AMD процессорларында жұмыс істейтін Gen X серверлері 28% тиімдірек. AMD TDP 25% төмен екенін ескере отырып, көп күтуге болады, бірақ TDP екіұшты сипаттама екенін есте ұстаған жөн. Біз AMD-нің нақты қуат тұтынуы базадан әлдеқайда жоғары жиіліктерде көрсетілген TDP-мен дерлік бірдей екенін көрдік; Intel-де ондай жоқ. Бұл TDP энергияны тұтынуды сенімді бағалаудың тағы бір себебі. Біздің Gen 9 серверлеріндегі Intel процессорлары көп түйінді жүйеге біріктірілген, ал AMD процессорлары стандартты 1U форма-фактор серверлерінде жұмыс істейді. Бұл AMD пайдасына емес, өйткені көп түйінді серверлер бір түйінге аз қуат тұтынумен үлкен тығыздықты қамтамасыз етуі керек, бірақ AMD бір түйінге арналған қуат тұтынуы бойынша Intel-ді басып озды.

Техникалық сипаттамалар, сынақ модельдеулері және нақты әлемдегі өнімділік арасындағы салыстырулардың көпшілігінде 1P AMD EPYC 7642 конфигурациясы 2P Intel Xeon 6162 қарағанда айтарлықтай жақсырақ жұмыс істеді. Кейбір жағдайларда AMD 36%-ға дейін жақсырақ жұмыс істей алады және оңтайландыру арқылы біз сенеміз. аппараттық және бағдарламалық қамтамасыз ету, біз бұл жақсартуға тұрақты түрде қол жеткізе аламыз.

AMD жеңді.

Қосымша графиктер 99 сағаттық кезеңде NGINX іске қосылған орташа кідіріс пен p24 кідірісін көрсетеді. Орташа алғанда, AMD процестері 25% жылдамырақ жұмыс істейді. p99 нұсқасында ол тәулік уақытына байланысты 20-50% жылдамырақ жұмыс істейді.

қорытынды

Cloudflare компаниясының аппараттық және өнімділік инженерлері тұтынушыларымыз үшін ең жақсы сервер конфигурациясын анықтау үшін айтарлықтай сынақтар мен зерттеулер жүргізеді. Біз осында жұмыс істегенді жақсы көреміз, өйткені біз осындай үлкен мәселелерді шеше аламыз және біз сізге серверсіз шеттік есептеулер және Magic Transit, Argo Tunnel және DDoS қорғау сияқты қауіпсіздік шешімдерінің жиынтығы сияқты қызметтермен проблемаларыңызды шешуге көмектесеміз. . Cloudflare желісіндегі барлық серверлер сенімді жұмыс істеу үшін конфигурацияланған және біз әрқашан серверлердің әрбір келесі буынын алдыңғысынан жақсырақ етуге тырысамыз. Gen X процессорларына қатысты AMD EPYC 7642 жауап береді деп сенеміз.

Cloudflare Workers көмегімен әзірлеушілер өз қолданбаларын бүкіл әлем бойынша кеңейіп жатқан желімізде орналастырады. Біз бұлттағы қауіпсіздік пен сенімділікке назар аудара отырып, тұтынушыларымызға код жазуға көңіл бөлуге мүмкіндік бергенімізді мақтан тұтамыз. Бүгін біз олардың жұмысы екінші буын AMD EPYC процессорларымен жұмыс істейтін Gen X буын серверлерінде орналастырылатынын хабарлауға одан да қуаныштымыз.

Cloudflare оныншы буын шеткі серверлері үшін AMD процессорларын таңдайды
EPYC 7642 процессорлары, код атауы "Рим" [Рим]

AMD EPYC 7642 пайдалану арқылы біз өнімділікті арттырып, желімізді жаңа қалаларға кеңейтуді жеңілдете алдық. Рим бір күнде салынбаған, бірақ ол көп ұзамай сіздердің көпшілігіңізге жақын болады.

Соңғы екі жылда біз Intel және AMD көптеген x86 чиптерімен, сондай-ақ ARM процессорларымен тәжірибе жасадық. Біз бұл процессор өндірушілері болашақта бізбен жақсырақ интернет құра алатындай жұмыс істей береді деп күтеміз.

Ақпарат көзі: www.habr.com

пікір қалдыру