Threadripper против EPYC: сравнение трёх 32-ядерных процессоров AMD в серверных приложениях

После недавнего решения VMware изменить политику лицензирования своего гипервизора ESXi, приняв ограничение в 32 физических ядра на 1 процессорный сокет, рубеж в 32 ядра стал той линией фронта, где безраздельно властвует AMD, и если сегодня вы выбираете 32-ядерную платформу для виртуализации, контейнеров или приложений, то вам одновременно доступны 3 серверных архитектуры от AMD.

  • Прежде всего, это старый-добрый EPYC первого поколения с кодовым именем "Неаполь", который сегодня можно купить с большой скидкой.
  • Второе поколение EPYC с кодовым именем "Рим", недавно пополнившееся моделями с увеличенным до 256 МБ кэшем третьего уровня.
  • Игровой "монстр", Ryzen Threadripper, второго поколения, которому в этой статье отведено особое место.

Как это часто бывает, у AMD большой выбор 32-ядерников для разных задач. Мы взяли EPYC 7551p, EPYC 7532 и Threadripper 2990WX, чтобы протестировать и сравнить их в популярных серверных приложениях:

  • 1С Предприятие 8.3
  • MySQL
  • REDIS
  • NGINX
  • TensorFlow
  • ElasticSearch 7.6.0

EPYC, Threadripper, EPYC2

Мы выясним, в каких случаях имеет смысл выбирать старый-добрый первый EPYC, в каких - новейший EPYC Rome с увеличенным кэшем, а в каких - бросить всё и поставить в сервер мечту любого геймера, Threadripper 2990WX.

Почему особое место мы отводим Threadripper-у?

Потому что недавно Hetzner представил свои выделенные серверы на базе процессоров Ryzen Threadripper. Я не думаю, что это первое использование игровых CPU в Cloud-хостинге, но на моей памяти это первый раз, когда компания с мировым именем с гордостью предлагает вам частичку HEDT-сервера в аренду. И я бы прошёл мимо, если бы речь шла о каком-то локальном мелком хостере, но извините меня Hetzner входит в десятку крупнейших Cloud-провайдеров мира, он имеет отличную репутацию среди сисадминов России и Украины, даже несмотря на отсутствие русскоязычной поддержки.

Предложение Hetzner

И хотя эту компанию много раз ловили на использовании десктопных комплектующих, Hetzner - это крупный процветающий бизнес, и если они делают такой шаг, значит и нам надо брать с них пример и разобраться, есть ли возможность здесь сэкономить, и зачем вообще покупать Threadripper вместо EPYС, ведь эти процессоры хоть и имеют почти одинаковый сокет, но требуют разных материнских плат.

Серверная платформа для Threadripper?

В мире есть только одна исключительно серверная материнская плата под ThreadRipper первых двух поколений, выпускаемая компанией ASRock Rack. Этот производитель любит эксперименты, и делает например, Mini ITX плату под LGA3647, или серверные платы на Socket AM4. Именно на платах ASRock Rack работают серверы Hetzner с процессорами Ryzen. К сожалению, сделка ASRock Rack и Hetzner находится под NDA, но складывая те крупицы информации, которые удалось собрать, я предполагаю, что использовалась именно эта материнская плата с минимальными изменениями, характерными для крупного заказчика.

ASRockRack X399D8A-2T

ASRock Rack X399D8A-2T - это ATX платформа с двумя 10-гигабитными портами на самом современном контроллере для 10GBase-T, Intel X550-T2. Эта материнская плата имеет IPMI мониторинг на базе чипа ASpeed AST2500 с выделенным 1-гигабитным сетевым портом, 8 слотов DIMM с поддержкой ECC, два слота M.2 под NVME/SATA, 8x SATA и 5 слотов PCI-E 3.0 формата x16 со скоростями (3 x16 + 2 x8). Во многом материнка повторяет рассмотренную нами ASRockRack EPYCD8-2T для EPYC 7000, но это и понятно: здесь одинаковое расположение слотов памяти, PCI и выводов на задней панельке.

В вопросах охлаждения тоже как-то не густо: самый низкий кулер под Threadripper, который можно встретить в свободной продаже - это Supermicro SNK-P0063AP4 или Dynatron A26 высотой 2U, чуть покачественнее и повыше - Noctua NH-U9 TR4-SP3 под 4U. Учитывая, что Threadripper 2990WX имеет TDP равное 250 Вт, имеет смысл искать платформу с жидкостным охлаждением, и это не пустые слова: для того, чтобы Threadripper 2990WX в нашем тестовом стенде не перегревался и выходил на свои максимальные частоты, мне пришлось не просто использовать жидкостную систему охлаждения с 360-мм радиатором, но и разместить тестовый стенд в помещении с температурой воздуха +10 градусов Цельсия.

С оперативной памятью ситуация следующая: процессоры Ryzen Threadripper поддерживают только небуферизованную память. Они имеют 4-канальный контроллер DDR4, и в серверной материнской плате ASRock Rack X399D8A-2T её частота ограничена 2666 МГц. Буферизованные модули RAM данными процессорами не поддерживаются, а потому большие объёмы ОЗУ в серверах с Threadripper вам недоступны. В списке совместимых модулей DIMM находятся модели объёмом 8 и 16 ГБ, а суммарно на материнскую плату можно поставить до 256 ГБ ОЗУ. Это очень мало для виртуализации, но достаточно для контейнеров или отдельных приложений, требующих высокую процессорную мощность. Как подтверждение того, можем посмотреть на серверы, которые использует CloudFlare, имеющие 256 ГБ ОЗУ.

Threadripper думает что он EPYC

Во всём остальном возьмите Threadripper, напишите на его крышке фломастером «ЙА EPYC!» и работайте с ним как с «эпиком», а в различиях мы сейчас разберёмся.

Разница между SoC и традиционным CPU

Закрыв глаза и взяв в левую руку Threadripper X2990, а в правую - EPYC, и вы не почувствуете разницы: у этих процессоров почти одинаковый сокет, размеры и вес, с той лишь разницей, что EPYC - это полноценный SoC, не требующий установки южного моста на материнскую плату, а Threadripper - это CPU, которому всё же нужен чипсет. Южный мост отвечает за шину PCI Express, разведённую к некоторым слотам, за SATA порты и обвязку. Давайте сравним топологию типичной материнской платы под EPYC с платой под Threadripper:

На плате ASRock Rack X399D8A-2T чипсет стоит тот же, что и на геймерских материнках: AMD X399, который продвинутые игроманы уже списали в утиль, а в серверах он, как говорится, ещё послужит. С точки зрения функционала обвязки, сравнивая с той же платой EPYC8D-2T, здесь нет никаких недостатков: 2 SATA порта с поддержкой DOM для загрузки гипервизора, плюс ещё 8 SATA портов, из которых 4 выведены разъёмом Mini-SAS для подключения к корзине или бэкплейну, 2 порта M-Key, из которых один может работать как OCULink и даже USB порт под флешку с VMware ESXi распаян на материнке так, чтоб не мешать видеокартам. Да, здесь один из M.2 слотов в режиме SATA будет использовать линию из южного моста, но давайте будем объективны: нет смысла занимать этот слот SATA накопителем - туда просится NVME формата 2280, а в этом случае накопитель обменивается данными с процессором. Кстати, вы можете объединить два M.2 накопителя в RAID 0/1 из BIOS материнки.

Естественно, у ASRockRack X399D8A-2T меньше PCI Express 16x слотов, чем у материнских плат под EPYC, где все слоты имеют ширину шины 16x (PCI Express 3.0 для первого поколения EPYC и PCI Express 4.0 для второго). С практической точки зрения это означает, что платформа на процессорах Threadripper явно не предназначена для 3 и более GPU типа Nvidia Tesla V100, использующих PCI-E 3.0 16x, но в то же время вы можете использовать и сетевые карты и HBA, которые требуют ширину шины PCI Express 8x.

Слоты памяти установлены вдоль воздушного потока для оптимальной продувки в стоечном корпусе. При нехватке сетевых портов коммутатора в стойке, вы можете подключаться к IPMI-интерфейсу чипа ASpeed AST2500 через любой из 10-гигабитных портов в Out-of-band режиме. В общем, данная материнская плата имеет всё то же, к чему вы привыкли в традиционном сервере, а плюс ещё 1 порт USB Type-C, которого не бывает на материнских на платах под EPYC, и к которому можно подключить аж целую дисковую полку типа QNAP TR-004U. Также на плате имеется звуковой кодек Realtek ALC892, который сгодится для передачи аудио на RDP-сервере, но не более того.

ThreadRipper и EPYC: различия в контроллерах памяти

У всех трёх рассматриваемых процессоров большие различия в работе с оперативной памятью. У процессоров ThreadRipper второго поколения используется 4-канальный контроллер, у EPYC первого поколения - 8 канальный. И там и там физически контроллер памяти находится на каждом из 4 кристаллов ССХ (Core Complex) с ядрами и кэшпамятью. Получается, что каждые 8 ядер в EPYC первого поколения используют имеют прямой доступ не более чем к двум каналам памяти, и задача гипервизора - правильно адресовать выделенный под виртуальную машину объём памяти, чтобы виртуальные процессоры и виртуальная память обслуживались одним кристаллом процессора.

Топология доступа к памяти

У процессоров Threadripper 2990WX всё гораздо хуже: два кристалла вообще не имеют собственных контроллеров памяти и обращаются к ней через соседние, что приводит к появлению задержек. Более того, по диаграмме видно, что если вы планируете задействовать все 32 ядра процессора, то в EPYC первого поколения вам лучше установить все 8 модулей памяти, а в Threadripper 2990WX хватит и четырёх. Естественно, что чем масштабнее ваше приложение осуществляет обмен данными с ОЗУ, тем заметнее будет разница между настольным и серверным процессорами AMD, но на практике это нужно далеко не всем.

Rome NUMA

Кардинальное изменение в новых процессорах EPYC Rome состоит в том, что межпроцессорный коммутатор, шину PCI Express, контроллеры памяти и всю остальную обвязку производитель вынес с кристаллов с ядрами в отдельный центральный чип, так называемый блок ввода/вывода. Таким образом, у вас каждое процессорное ядро получило доступ ко всем 8 каналам памяти, что не только упростило работу гипервизору, но и повысило производительность. Теоретически, одного этого шага должно быть достаточно, чтобы EPYC Rome выигрывал во всех тестах у процессоров с архитектурой Zen 1 и тем же числом ядер, но не будем торопиться (спойлер - многое зависит от архитектуры тестируемого приложения и объема данных).

То, чего нет у EPYC!

Очень интересно, что в материнской плате ASRockRack X399D8A-2T используется традиционный сине-серый текстовый BIOS, который (ой, я не могу сдержать эмоции), поддерживает разгон процессора и памяти, а ещё может похвастаться профилями для сохранения настроек оверклокинга. Имеющийся Watchdog таймер перезагрузит ваш сервер, если тот зависнет во время работы от переразгона. Конечно, кто-то скажет, что разгон в сервере - это несерьёзно, но не спешите тушить свечи: в мире есть целый пласт серверов, в которых частота CPU имеет определяющее значение при выборе. Их задача - отработать 8 часов в день, а потом они, как правило, перегружаются или отдыхают. Это - серверы для HFT (High-Frequency Trading), задача которых зарабатывать деньги на бирже методом высокочастотной торговли, то есть выставлением заявок в промежуток времени, пока сервер биржи запрашивает повторный сетевой пакет от клиента, подавшего ордер на покупку/продажу. Такие машины, как правило, устанавливаются в тех же дата-центрах, что и серверы биржи, и их задача с точки зрения оборудования - добиться минимальной задержки в выставлении заявок на покупку/продажу. В таких серверах активно применяется разгон, жидкостное охлаждение, процессоры с частотами 5 ГГц и выше и даже платы FPGA.

Кроме этого, у нас есть целый ряд некритичных задач, таких как рендеринг или расчёт моделей для нейронных сетей, где в случае сбоя можно продолжить задачу с того же шага. Да и вообще не будем забывать, что у геймеров процессоры годами работают в разогнанном режиме, без зависаний, а некоторые вообще не представляют себе компьютер без разгона. Для всех этих случаев материнская плата ASRockRack X399D8A-2T готова, ну а если не хочешь - не разгоняй!

Про EPYC же следует сказать, что если у вас процессор нового, второго поколения, то он отличается от первого возможностью настройки NUMA-конфигураций памяти с привязкой к отдельным группам ядер или всему сокету сразу. Так же вам могут быть доступны настройки задержек памяти, но это зависит от воли производителя материнской платы, и встречается крайне редко.

То, чего нет у Threadripper

Мы помним, что EPYC - самый безопасный процессор, так повелось ещё с первого поколения на ядре Naples, который имеет опции шифрования памяти, а в EPYC Rome добавили шифрование регистров (!), значительно усилив изоляцию виртуальных машин. Вообще, указанные "фишки" представляют собой практически мини-революцию с одним единственным, но весомым недостатком: самые «вкусные» функции типа AMD SEV работают только под гипервизором Linux KVM. В VMWare их поддержка ожидается начиная с 7 версии, а в Windows Server с его Hyper-V вообще неизвестно когда ждать.

Из приземлённых вещей, таких как поддержки SSE/AVX все три поколения процессоров совершенно одинаковы.


EPYC 7551

TR 2990WX

EPYC 7532

Год выпуска201720182020

Ядер

32

Потоков

64

Кэш L3, МБ

64

64

256

AMD SEV

Да

Нет

Да

Каналов памяти

8

4

8

Тип памяти

ECC RDIMM

UDIMM, ECC UDIMM

ECC RDIMM

Максимальная частота памяти, МГц266626663200

Частота, ГГц

2.0-3.0

3.0 - 4.2

2.4 - 3.3

TDP, Вт

180

250

200

Тем не менее, если у вас - солидная компания с серьёзным подходом к безопасности, то лучше выбрать новый EPYC, как минимум из-за наличия этих дополнительных функций шифрования памяти и регистров.

Поддержка со стороны VMware

Процессоры ThreadRipper официально и вовсе не поддерживаются гипервизором ESXi, и вряд ли когда будут, ведь vMware даже не сертифицировала серверный EPYC 3000. Это не значит, что VSphere не запустится на ThreadRipper 2990x - ещё как пойдёт. Я протестировал его работу, и даже миграция виртуалок без остановки между хостами ESXi на EPYC и Threadripper работала без проблем. Платформой ASRock X399D8A-2T поддерживаются функции SR-IOV и PCI-E Passthrough, и вы можете например отдать SATA-контроллер гостевой операционной системе для виртуальной СХД.

Всё прекрасно, придраться не к чему, внутри гостевых систем с настройками по умолчанию работает TurboBoost, но само осознание, что уверенности с несертифицированной конфигурацией тебе никто не гарантирует, плотно врезается в подсознание.

Частоты

У первого EPYC-а с частотами ситуация печальная: при его разработке 180 Вт считалось чем-то слишком большим для серверного рынка, а из-за инженерных особенностей, все ядра первого EPYC не могли разгоняться одновременно в принципе. Максимальная частота в 2998 МГц здесь появляется только при загрузке 4 ядер, а уже при загрузке 8 ядер, она останется достижимой только для 2 из них, а остальные будут работать на 2543 МГц или ниже, если выбран режим активного энергосбережения. При 16 активных потоках максимальная частота турбо-буста будет доступна только на 1 ядре, а при 32-х загруженных ядрах все они выстроятся в ряд на 2543 МГц и никакого ускорения не будет. Увеличения теплового пакета для этих поцессоров в BIOS-е нашей материнской платы нет, и установка СЖО не поможет: дело не в температуре, а в самом процессоре. Это сейчас можно в 1U корпус ставить 250-Ваттный процессор, отдавая треть полезного объёма под систему охлаждения, а три года назад это было крайне немодно и даже вульгарно.

Прелесть Threadripper 2990x в его частотах и абсолютной безграничности в потреблении питания из розетки: базовое значение частот составляет 3000 МГц с увеличением до 4200 МГц в турбо-режиме. Его делали для компьютеров стоимостью как 3-летняя иномарка, а уж там покупатель HEDT сам выберет себе либо топовую 360-мм систему жидкостного охлаждения с RGB подсветкой, или массивный воздушный кулер Noctua, или соберёт кастомизированную водянку, добавив к ценнику ещё тысячу $. Как вы отведёте тепло - это не просто ваша забота, это часть вашего хобби, ваш образ жизни и ваши интересы, которыми вы обмениваетесь на форумах, а компания AMD лишь даёт вам пожиратель любого программного кода, чтобы вы могли им правильно пользоваться, даже если в BIOS вам придётся отключать половину ядер для выхода на максимальную частоту. Вы спросите, зачем это делать? Дело в том, что топовой частоты 4174 МГц удаётся достичь при загрузке только 2 ядер, уже при 8-ми их частота составит 3800 МГц. Загруженные по максимуму 16 ядер работают на частоте 3600-3700 МГц каждое, а 32 ядра вместе выдерживают частоту 3394 МГц. Некоторые энтузиасты обнаружили, что отключение половины ядер в Threadripper 2990x помогает ему стабильно удерживать максимальные частоты и показывать лучшую производительность в играх.

Максимальное число ядер, работающих одновременно на максимальной частоте

EPYC 7551p

Threadripper 2990WX

EPYC 7532

4

2

32

Частота каждого ядра при загрузке в 32 потока, МГц

2543

3394

3296

Анонсированный недавно EPYC 7532 - это попытка получить максимум производительности на 32 ядра. Фактически, это вариант 64-ядерного EPYC 76x2 с заблокированными 32 ядрами, чей кэш третьего уровня был распределён между оставшимися в строю ядрами и составил 256 Мб на процессор (8 МБ на ядро). Расплачиваться за увеличение приходится раздувшимся энергопотреблением: до 200 Вт. Хочу сразу обратить внимание, что у AMD есть процессор EPYC 7542, так же имеющий 32 ядер и похожие частоты: 2.35-3.35 ГГц, но разительно меньший TDP - всего 155 Вт. Такой разброс по энергопотреблению объясняется аппаратной конфигурацией: 4 чиплета по 8 ядер в EPYC 7542 и 8 чиплетов по 4 ядра в EPYC 7532. Расплачиваться за увеличение приходится раздувшимся энергопотреблением: до 200 Вт. Хочу сразу обратить внимание, что ступенькой выше стоит более высокочастный 7542 с базовой частотой в 2.9ГГц, потребляющий 225 Ватт. Ниже у AMD есть процессор EPYC 7542, так же имеющий 32 ядрар и похожие частоты: 2.35-3.35 ГГц, но разительно меньший TDP - всего 155 Вт. Такой разброс по энергопотреблению объясняется аппаратной конфигурацией: 4 чиплета по 8 ядер в EPYC 7542 и 8 чиплетов по 4 ядра в EPYC 7532. Интересно, что в линейках EPYC никаких ограничений по числу потоков, использованию AVX/AVX2 инструкций нет: частоты всех 32 ядер независимо друг от друга прыгают от 1496 до 3296 МГц, и это - лучший план работы Turbo Boost, который можно было бы желать. Вообще, это справедливо и для всей серии современных EPYC Rome 7xx2 - вся схема турбо-частот в этих процессорах переработана, и вся новая линейка умеет держать частоты выше 3000 МГц для всех ядер.

Тестирование 1С Предприятие 8.3

Если рассуждать с точки зрения среднего бизнеса, то важнейшее преимущество 32-ядерных процессоров состоит в том, что старый кластер из 2-х или 4-х серверов вы сегодня можете заменить на 1 машину, совмещающую в себе и сервер приложения и сервер баз данных, а виртуализация даст дополнительную гибкость и удобство построения отказоустойчивого кластера. Если смотреть с точки зрения Cloud-провайдеров, то 32-ядерный CPU можно "нарезать" на 32 виртуальные машины для малого бизнеса, с жёсткой привязкой ядер и сдавать в аренду тем пользователям, кто ведёт свой учёт в облаке. Два разных подхода требуют двух разных тестов, и начнём мы как раз со второго.

Мелкие потребители 1С Предприятия используют самый простой, но в то же время быстрый способ хранения данных: в файлах. Как правило, их нагрузка является 1-поточной, и пользователю важно, чтобы программная платформа быстро обработала его запрос на выставление счёта или формирование отчётности. Для тестирования подобных конфигураций применяется известный тест Гилева, который в своей сути является 1-поточным, но показывает максимальную скорость при использовании 2 процессорных ядер на систему. И если вы сдаёте в аренду VPS под 1С Предприятие, то "Тест Гилёва" - это первое, что запустит ваш будущий клиент, чтобы оценить скорость сервиса.

Вячеслав Гилев

Об авторе методики тестирования:

Вячеслав Гилев, руководитель лаборатории тюнинга 1С, компании ООО "ЦТП", сайт gilev.ru

Компания занимается адуитом и решением проблем, связанных с производительностью платформы "1С Предприятие". Создатели распространённого теста для оценки производительности компьютера в 1С, известного как "тест Гилева"

И хотя Вячеслав Гилёв многократно высказывался о том, что виртуализация - лучший способ замедлить работу 1С, в наших тестовых условиях, когда на сервере используется 1 виртуалка для снятия показаний скорости, различий в скорости с "чистым железом" нет, и более того, под VMware у нас оно работает даже быстрее. Есть мнение, что 1С Предприятие сильно нагружает дисковую подсистему, и для устранения бутылочного горлышка использовал Ramdisk от компании SoftPerfect и сравнил его с самым простым 30-долларовым NVME SSD от компании DEXP на контроллере Phison E12. Разницы по скорости не было, а это лишний раз подтверждает, что для современного сервера приложений скорости типичного NVME накопителя достаточно, чтобы удерживать параметр IOWait на уровне, когда он не влияет на производительность. Другими словами, покупать дорогой RAID-контроллер ради роста производительности приложения уже нет смысла: проще использовать NVME накопители, а освободившийся бюджет направить на более производительный процессор.

Тест Гилева

На скриншоте выше вы видите типичный вывод результатов "теста Гилева": очки, набранные вашей системой (столбик слева) сравниваются со значениями, которые по мнению Вячеслава Гилева характеризуют работу сервера, как плохую, удовлетворительную, хорошую или просто замечательную. Тест оценивает не только аппаратную, но и программную составляющую сервера, поэтому для чистоты эксперимента мы использовали все значения программного обеспечения, установленные по умолчанию. Если ваша система набирает в тесте Гилева более 40 очков - вы можете собой гордиться, а мы гордимся тем, что превзошли его максимальную оценку "замечательно".

Гипервизор

VMware ESXi 6.7U3

Клиентская платформа

VM, 8 vCPU, 8 Gb Windows Server 2016 1C Предприятие 8.3.13.1690

Серверная платформа

VM, 32 vCPU, 8 Gb Windows Server 2016 1C Предприятие 8.3.13.1690 сервер Microsoft SQL Server Developer

С настройками по умолчанию в тесте Гилёва на процессорах EPYC 7532 вы получаете оценку "замечательно", и имейте в виду, что тюнинг программной платформы и базы данных может дать вам ещё больше.

Однопоточный тест Гилева

Второй тест так же является 1-поточным, но в качестве хранилища данных используется Microsoft SQL Server и сервер 1С Предприятия, установленные на отдельной виртуальной машине на том же хосте. До начала тестирования я убедился, что наибольшие показатели получаются, если выделить каждой виртуальной машине по 32 vCPU. В этом тесте лидирует новый EPYC 7532, и забегая вперёд, скажу что и в других базах данных он раскрыл себя с лучшей стороны.

Многопоточность 1С мы будем измерять с помощью теста Fragster.ru, на 2-уровневой конфигурации "Сервер 1С + сервер SQL". Разработчики поясняют, что мерилом является производительность каждого потока в очках, и значение в 400-500 - это тот нижний порог, при котором работа всё ещё терпима. Учитывая, что речь идёт об одновременных потоках, которые обрабатывает сервер, число пользователей, которые могут быть обслужены данной конфигурацией, может быть и в 4-5 раз больше, в зависимости от структуры работы вашей компании.

Результат говорит сам за себя: для сервера 1С Предприятие лучшим выбором будет EPYC, а не Threadripper, причём вы можете существенно сэкономить, выбрав процессоры первого поколения.

NGINX Plus

Функционал NGINX не ограничивается Front-End сервером для веб-приложений. Использование его в качестве обратного прокси для тех же баз данных уже создаёт ощутимую нагрузку на хост и требует высокого параллелизма. Именно по этой причине (из-за возможности сильно распараллеливать нагрузку на все ядра) мы используем не бесплатный NGINX, а коммерческий NGINX Plus. Чтобы загрузить один из самых быстрых и самых лёгких программных продуктов, тестовый стенд должен в разы превышать по производительности тестируемую конфигурацию, что в условиях нашей редакции сделать невозможно. В своём блоге команда NGINX опубликовала результаты собственных тестов с настройками по умолчанию, и повторяя их методику, я даже и близко не смог приблизиться к их значениям. Обсудив с коллегами ситуацию, я решил, что наша тестовая конфигурация достаточна для того, чтобы сравнить процессоры между собой, поэтому мы будем использовать относительные результаты, приняв за 100% показания EPYC 7551p.

Гипервизор

VMware ESXi 6.7U3

Клиентская платформа

VM, 32 vCPU, 12 Gb Ubuntu Linux 18.04 LTS

Серверная платформа

VM, 16 vCPU, 16 Gb Ubuntu Linux 18.04 LTS Nginx Plus R20 (1.17.6)

Запуск теста я осуществляю этой командой:

wrk -t 256 -c 1000 -d 120s http://server-ip/0kb.bin

Тестирование в NGINX Plus

С точки зрения минимальной задержки EPYC 7532 показывает почти двукратное преимущество перед процессорами предыдущего поколения, и это очень важно, если вам нужно высокое время отклика приложения. И опять же, возвращаясь к крупным корпоративным клиентам AMD, хочу заметить, что для себя CloudFlare выбрала рекордно быстрый EPYC Rome, а не Threadripper. Я не люблю говорить о том оборудовании, которое не прошло через наше тестирование, но если низкая задержка связана с архитектурой Zen2, то высокочастотные 8-ядерные EPYC 7252/7232P/7262 могли бы быть лучшим бюджетным решением для WAF / Proxy / UTM приложений именно из-за этого показателя.

Redis

В предыдущих тестах я обнаружил, что самые быстрые версии Redis и MariaDB поставляются в репозиториях Oracle Linux, поэтому мы будем использовать эту ОС для баз данных.

Гипервизор

VMware ESXi 6.7U3

Тестовая виртуалка

VM, 32 vCPU, 16 Gb Oracle Linux Server 7.6 Redis server 3.2.12 MariaDB 5.5.64

На протяжении многих лет нереляционные базы данных оптимизировались именно под скорость исполнения простейших запросов, и не удивительно, что частота процессора здесь играет решающую роль. В однопоточном режиме мы видим то же, что и в тесте NGINX: минимальная задержка приводит второй EPYC к победе.

По предыдущим тестам становится ясно, что для простых приложений, работающих в 1-2-несколько потоков лучшим решением оказывается EPYC Rome, и очень хочется верить, что ситуация сохраняется и с меньшим числом ядер. С ростом нагрузки на тех же самых приложениях картина становится неоднозначной. Однако, перейдём к более сложным сервисам.

MariaDB 10.3

Используя форк MySQL, MariaDB 10.3, входящую в состав дистрибутивов CentOS / Debian, традиционно, мы создаём InnoDB базу на 1 миллион строк, из которой используем только 100 000, чтобы нагрузить процессор запросами SELECT из пула, хранящегося в ОЗУ. У нас очень быстрый NVME накопитель, который сглаживает задержки записи логов, поэтому производительность системы хранения не влияет на показатели.

Мы видим ситуацию, характерную для предыдущих приложений: огромное преимущество EPYC Rome 7532 по латентности в 1 потоке, которое тает по мере увеличения загрузки, уступая Threadripper 2990WX.

ElasticSearch 7.6.0

Если мы говорим, что 32 ядра нужны для обработки Big Data, то Elastiс - лучший тому пример. Написанный на Java, - этот стек для работы со статистическими данными и логами приложений, является одним из самых востребованных инструментов среди DevOps и Data Science специалистов.

Гипервизор

VMware ESXi 6.7U3

Тестовая виртуалка

VM, 64 vCPU, 30 Gb Ubuntu Linux 18.04 LTS JAVA Runtime 11 ElasticSearch 7.6.0

Из встроенных тестов пакета Rally я выбрал http_logs, поскольку этот тест достаточно большой: 32 Гб данных в развёрнутом виде, и примерно столько же


Комментарии

Похожие статьи:

Как Microsoft планирует сделать свои дата-центры "зелёными"

По мере роста облачного бизнеса растет и его влияние на окружающую среду. Многие компании стремятся к нулевым чистым выбросам, но Microsoft идёт ещё дальше: компания не просто сводит выбросы к нулю, а стремится удалить углерод, который она выбра

FAQ по применению литий-ионных батарей в ИБП для ЦОД-ов

Литий-ионные аккумуляторы обладают рядом преимуществ перед традиционными свинцово-кислотными батареями с клапанным регулированием (VRLA), широко используемыми сегодня в ИБП. Гораздо более длительный срок службы, меньшие размеры

Новый взгляд на погружное охлаждение серверов: новости от консорциума OCP

Берём мощный сервер и погружаем в резервуар с жидкостью, затем подаем напряжение и надеемся, что не полетят искры. Но, может быть, мы должны бояться иного: продолжать строить дата-центры со сроком службы более 10 лет, охлаждение ко

Обзор и FAQ сервера Huawei Taishan 2280 V2: ARM64 сервер на собственных процессорах Kunpeng 920

Мы подробно изучаем первый доступный в широкой продаже ARM64 сервер: как он работает, как управляется, с каким софтом совместим и ради чего вообще стоит переходить на китайские процессоры, отказываясь от 30-летней архитектуры?