Cloudflare избира процесори од AMD за сервери од десеттата генерација

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Повеќе од милијарда уникатни IP адреси поминуваат низ мрежата Cloudflare секој ден; опслужува повеќе од 11 милиони HTTP барања во секунда; таа е во рамките на 100ms од 95% од интернет популацијата. Нашата мрежа опфаќа 200 градови во над 90 земји, а нашиот тим од инженери изгради исклучително брза и сигурна инфраструктура.

Се гордееме со нашата работа и посветени сме да помогнеме Интернетот да стане подобро и побезбедно место. Хардверските инженери на Cloudflare имаат длабоко разбирање за серверите и нивните компоненти за да го разберат и изберат најдобриот хардвер за да ги максимизираат неговите перформанси.

Нашиот оџак софтвер се справува со пресметување со големо оптоварување и е многу зависен од процесорот, барајќи од нашите инженери постојано да ја оптимизираат ефикасноста и доверливоста на Cloudflare на секое ниво од оџакот. На страната на серверот, најлесниот начин да се зголеми процесорската моќ е со додавање на јадра на процесорот. Колку повеќе јадра може да собере серверот, толку повеќе податоци може да обработува. Ова е важно за нас бидејќи разновидноста на нашите производи и клиенти расте со текот на времето, а растот на барањата бара зголемени перформанси од серверите. За да ги зголемиме нивните перформанси, требаше да ја зголемиме густината на јадрата - и тоа е токму она што го постигнавме. Подолу даваме детални податоци за процесорите за серверите што ги имаме распоредено од 2015 година, вклучувајќи го и бројот на јадра:

-
генералот 6
генералот 7
генералот 8
генералот 9

Getting Started
2015
2016
2017
2018

Процесорот
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Интел Xeon Silver 4116
Intel Xeon Platinum 6162

Физички јадра
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 по јадро
10.65W
8.50W
7.08W
6.25W

Во 2018 година, направивме голем скок во вкупниот број јадра по сервер со Gen 9. Влијанието врз животната средина е намалено за 33% во споредба со 8-та генерација, што ни дава можност да ја зголемиме јачината на звукот и компјутерската моќ по решетка. Барања за дизајн за дисипација на топлина (Термички дизајн моќ, TDP) се споменати за да се нагласи дека нашата енергетска ефикасност исто така се зголемува со текот на времето. Овој индикатор е важен за нас: прво, сакаме да испуштаме помалку јаглерод во атмосферата; второ, сакаме најдобро да ја искористиме енергијата од центрите за податоци. Но, знаеме дека имаме кон што да се стремиме.

Нашата главна дефинирачка метрика е бројот на барања по вати. Можеме да го зголемиме бројот на барања во секунда со додавање јадра, но треба да останеме во рамките на нашиот буџет за моќност. Ограничени сме од енергетската инфраструктура на центарот за податоци, која, заедно со нашите избрани модули за дистрибуција на енергија, ни дава одредена горна граница за секој сервер. Додавањето сервери на решетката ја зголемува потрошувачката на енергија. Оперативните трошоци значително ќе се зголемат ако ја надминеме границата за енергија по решетката и треба да додадеме нови лавици. Треба да ја зголемиме процесорската моќност додека остануваме во истиот опсег на потрошувачка на енергија, што ќе ги зголеми барањата по вати, нашата клучна метрика.

Како што може да претпоставите, внимателно ја проучувавме потрошувачката на енергија во фазата на дизајнирање. Табелата погоре покажува дека не треба да губиме време за распоредување на повеќе процесори жедни за енергија ако TDP по јадро е повисок од сегашната генерација - ова негативно ќе влијае на нашата метрика, барања по вати. Внимателно ги проучувавме системите подготвени за работа за нашата генерација X на пазарот и донесовме одлука. Се движиме од нашиот 48-јадрен Intel Xeon Platinum 6162 дизајн со двоен штекер кон дизајн со 48-јадрен AMD EPYC 7642 со еден штекер.

Cloudflare избира процесори од AMD за сервери од десеттата генерација

-
Интел
AMD

Процесорот
Xeon Platinum 6162
EPYC 7642

микроархитектура
„Скајлејк“
„Зен 2“

Кодно име
„Скајлејк СП“
„Рим“

Тех проц есс
14nm
7nm

Јадро
X 2 24
48

Фреквенција
1.9 GHz
2.4 GHz

L3 Кеш/сокет
24 x 1.375 MiB
16 x 16 MiB

Меморија/приклучок
6 канали, до DDR4-2400
8 канали, до DDR4-3200

TDP
2 x 150W
225W

PCIe/сокет
48 ленти
128 ленти

МСР
x86-64
x86-64

Од спецификациите е јасно дека чипот од AMD ќе ни овозможи да задржиме ист број јадра додека го намалуваме TDP. 9-тата генерација имаше TDP по јадро од 6,25 W, а X-та генерација ќе биде 4,69 W. Намалено за 25%. Благодарение на зголемената фреквенција, а можеби и поедноставниот дизајн со еден штекер, може да се претпостави дека AMD чипот ќе работи подобро во пракса. Во моментов извршуваме различни тестови и симулации за да видиме колку AMD ќе има подобри резултати.

Засега, да забележиме дека TDP е поедноставена метрика од спецификациите на производителот, која ја користевме во раните фази на дизајнот на серверот и изборот на процесорот. Брзо пребарување на Google открива дека AMD и Intel имаат различни пристапи за дефинирање на TDP, што ја прави спецификацијата неверодостојна. Вистинската потрошувачка на енергија на процесорот, и уште поважно потрошувачката на енергија на серверот, е она што навистина го користиме кога ја донесуваме нашата конечна одлука.

Подготвеност на екосистемот

За да го започнеме нашето патување кон изборот на нашиот следен процесор, разгледавме широк опсег на процесори од различни производители кои добро се вклопуваат за нашиот софтверски куп и услуги (напишани во C, LuaJIT и Go). Веќе детално опишавме збир на алатки за мерење на брзината во една од нашите написи на блогот. Во овој случај, го користевме истиот сет - ни овозможува да ја оцениме ефикасноста на процесорот во разумно време, по што нашите инженери можат да почнат да ги прилагодуваат нашите програми на одреден процесор.

Тестиравме различни процесори со различни брои јадра, број на приклучоци и фреквенции. Бидејќи оваа статија е за тоа зошто се решивме на AMD EPYC 7642, сите графикони на овој блог се фокусираат на тоа како AMD процесорите работат во споредба со Intel Xeon Platinum 6162 од нашата 9-та генерација.

Резултатите одговараат на мерењата на еден сервер со секоја варијанта на процесорот - односно со два процесори со 24 јадра од Intel или со еден процесор со 48 јадра од AMD (сервер за Intel со два приклучоци и сервер за AMD EPYC со еден) . Во BIOS-от ги поставуваме параметрите што одговараат на серверите што работат. Ова е 3,03 GHz за AMD и 2,5 GHz за Intel. Во голема мера поедноставувајќи, очекуваме дека со ист број јадра, AMD ќе има 21% подобри перформанси од Intel.

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

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Изгледа ветувачки за AMD. Тој работи за 18% подобро на криптографијата со јавен клуч. Со симетричен клуч, тој губи за опциите за шифрирање AES-128-GCM, но севкупно функционира споредливи.

Компресија

На работ сервери, ние компресираме многу податоци за да заштедиме на пропусниот опсег и да ја зголемиме брзината на испорака на содржина. Ги пренесуваме податоците низ библиотеките C zlib и brotli. Сите тестови беа извршени на HTML-датотеката blog.cloudflare.com во меморијата.

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Cloudflare избира процесори од AMD за сервери од десеттата генерација

AMD победи во просек за 29% кога се користи gzip. Во случајот на бротли, резултатите се уште подобри на тестовите со квалитет 7, кои ги користиме за динамична компресија. На тестот brotli-9 има остар пад - ова го објаснуваме со фактот дека Brotli троши многу меморија и го преплавува кешот. Сепак, AMD победува со голема разлика.

Многу од нашите услуги се напишани во Go. Во следните графикони, ја проверуваме двојно брзината на криптографијата и компресија во Go со RegExp на линии од 32 KB користејќи ја библиотеката на стрингови.

Одете на криптографија

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Оди на компресија

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Одете Regexp

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Одете на жици

Cloudflare избира процесори од AMD за сервери од десеттата генерација

AMD има подобри резултати во сите тестови со Go освен ECDSA P256 Sign, каде што заостануваше 38% - што е чудно, со оглед на тоа што имаше 24% подобро во C. Вреди да се открие што се случува таму. Генерално, AMD не добива многу, но сепак покажува најдобри резултати.

LuaJIT

Често користиме LuaJIT на магацинот. Ова е лепилото што ги држи сите делови на Cloudflare заедно. И ние сме среќни што AMD победи и овде.

Севкупно, тестовите покажуваат дека EPYC 7642 работи подобро од два Xeon Platinum 6162. AMD губи на неколку тестови - на пример, AES-128-GCM и Go OpenSSL ECDSA-P256 Sign - но победува на сите други, во просек од 25%.

Симулација на обемот на работа

По нашите брзи тестови, ги извршивме серверите преку друг сет на симулации во кои се применува синтетичко оптоварување на оџакот на работ на софтверот. Овде симулираме оптоварување на сценарио со различни типови на барања што може да се сретнат во вистинска работа. Барањата се разликуваат во обемот на податоци, протоколите HTTP или HTTPS, изворите на WAF, Workers и други многу променливи. Подолу е споредба на пропусната моќ на двата процесори за типовите на барања со кои најчесто се среќаваме.

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Резултатите во графиконот се мерат според основната линија на машините базирани на Интел од 9-та генерација, нормализирани на вредност од 1,0 на оската x. На пример, земајќи едноставни барања од 10 KiB преку HTTPS, можеме да видиме дека AMD работи 1,5 пати подобро од Intel во однос на барањата во секунда. Во просек, AMD имаше 34% подобри резултати од Intel за овие тестови. Имајќи предвид дека TDP за еден AMD EPYC 7642 е 225 W, а за два Intel процесори е 300 W, излегува дека во однос на „барањата по вати“ AMD покажува 2 пати подобри резултати од Intel!

Во овој момент, веќе јасно се наведнувавме кон опцијата со единечен приклучок за AMD EPYC 7642 како наши идни процесори Gen X. Бевме многу заинтересирани да видиме како ќе работат серверите AMD EPYC во работата во реалниот свет, и веднаш испративме неколку сервери на некои од центрите за податоци.

Вистинска работа

Првиот чекор, нормално, беше да се подготват серверите за работа во реални услови. Сите машини во нашата флота работат со исти процеси и услуги, што дава одлична можност за правилно споредување на перформансите. Како и повеќето центри за податоци, имаме распоредени неколку генерации на сервери и ги собираме нашите сервери во кластери така што секоја класа содржи сервери од приближно исти генерации. Во некои случаи, ова може да резултира со криви на рециклирање кои се разликуваат помеѓу кластерите. Но не кај нас. Нашите инженери го оптимизираа користењето на процесорот за сите генерации, така што без разлика дали процесорот на одредена машина има 8 јадра или 24, користењето на процесорот е генерално исто како и останатите.

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Графиконот го илустрира нашиот коментар за сличноста на искористеноста - нема значајна разлика помеѓу употребата на AMD процесорите во серверите од генерацијата X и употребата на процесорите на Intel во серверите од генерацијата 9. Ова значи дека и тестните и основните сервери се вчитуваат подеднакво . Одлично. Тоа е токму она кон што се стремиме во нашите сервери и ова ни треба за правична споредба. Двата графика подолу го прикажуваат бројот на барања обработени од едно јадро на процесорот и сите јадра на ниво на сервер.

Cloudflare избира процесори од AMD за сервери од десеттата генерација
Барања по јадро

Cloudflare избира процесори од AMD за сервери од десеттата генерација
Барања до серверот

Може да се види дека во просек AMD обработува 23% повеќе барања. Не е лошо воопшто! Честопати пишувавме на нашиот блог за начините за зголемување на перформансите на Gen 9. И сега имаме ист број на јадра, но AMD работи повеќе со помала моќност. Од спецификациите за бројот на јадра и TDP веднаш станува јасно дека AMD обезбедува поголема брзина со поголема енергетска ефикасност.

Но, како што веќе споменавме, TDP не е стандардна спецификација и не е иста за сите производители, па да ја погледнеме вистинската употреба на енергија. Со мерење на потрошувачката на енергија на серверот паралелно со бројот на барања во секунда, го добивме следниот графикон:

Cloudflare избира процесори од AMD за сервери од десеттата генерација

Врз основа на барањата во секунда по потрошен ват, серверите Gen X што работат на AMD процесори се 28% поефикасни. Може да се очекува повеќе, имајќи предвид дека TDP на AMD е 25% помал, но треба да се запомни дека TDP е двосмислена карактеристика. Видовме дека вистинската потрошувачка на енергија на AMD е речиси идентична со наведената TDP на фреквенции многу повисоки од основната; Интел го нема тоа. Ова е уште една причина зошто TDP не е сигурна проценка на потрошувачката на енергија. Процесорите од Intel во нашите сервери Gen 9 се интегрирани во систем со повеќе јазли, додека процесорите од AMD работат во стандардни сервери со формален фактор 1U. Ова не е во корист на AMD, бидејќи повеќејазните сервери треба да обезбедат поголема густина со помала потрошувачка на енергија по јазол, но AMD сепак го надмина Интел во однос на потрошувачката на енергија по јазол.

Во повеќето споредби за спецификации, симулации на тестови и перформанси во реалниот свет, конфигурацијата 1P AMD EPYC 7642 се покажа значително подобро од 2P Intel Xeon 6162. Во некои услови, AMD може да работи и до 36% подобро, а ние веруваме дека со оптимизирање хардвер и софтвер, можеме да го постигнеме ова подобрување на постојана основа.

Излегува дека победи AMD.

Дополнителните графикони покажуваат просечна латентност и латентност p99 што работи на NGINX во период од 24 часа. Во просек, процесите на AMD работеа 25% побрзо. На p99 работи 20-50% побрзо во зависност од времето од денот.

Заклучок

Инженерите за хардвер и перформанси на Cloudflare прават значителен број на тестирања и истражувања за да ја одредат најдобрата конфигурација на серверот за нашите клиенти. Сакаме да работиме овде затоа што можеме да решиме големи проблеми како овие и можеме да ви помогнеме да ги решите вашите проблеми со услуги како што се компјутери без сервери и низа безбедносни решенија како Magic Transit, Argo Tunnel и DDoS заштита. Сите сервери во мрежата Cloudflare се конфигурирани да работат со сигурност и ние секогаш се трудиме секоја следна генерација сервери да ја направиме подобра од претходната. Ние веруваме дека AMD EPYC 7642 е одговорот кога станува збор за процесорите Gen X.

Со користење на Cloudflare Workers, програмерите ги распоредуваат своите апликации на нашата мрежа што се шири низ целиот свет. Горди сме што им дозволуваме на нашите клиенти да се фокусираат на пишување код додека ние се фокусираме на безбедноста и доверливоста во облакот. И денес со уште поголемо задоволство можеме да објавиме дека нивната работа ќе биде распоредена на нашите сервери од генерацијата X Gen X кои работат на AMD EPYC процесори од втората генерација.

Cloudflare избира процесори од AMD за сервери од десеттата генерација
Процесори EPYC 7642, кодно име „Рим“ [Рим]

Со користење на EPYC 7642 на AMD, можевме да ги зголемиме нашите перформанси и да го олесниме проширувањето на нашата мрежа во нови градови. Рим не бил изграден за еден ден, но наскоро ќе биде поблиску до многумина од вас.

Во последните неколку години експериментиравме со многу x86 чипови од Intel и AMD, како и процесори од ARM. Очекуваме овие производители на процесори да продолжат да работат со нас во иднина за да можеме сите заедно да изградиме подобар Интернет.

Извор: www.habr.com

Додадете коментар