Четверг, 7 марта 2024 09:04
Высокоэффективная консолидация серверов с процессорами AMD EPYC Bergamo
В 2023 году главной темой для дата-центров однозначно был искусственный интеллект (ИИ), и так и должно было быть. Тем не менее, существует масса традиционных приложений, запускать которые на современных дорогущих ИИ-серверах было бы нерационально. Многие из этих приложений до сих пор запускаются на 2-м поколении Intel Xeon Scalable “Cascade Lake” или еще более старых серверных платформах, начиная с поколения AMD EPYC 7002 “Rome”, имевшего громкий успех во 2-й половине 2019 года. Со времени развертывания серверов 2017-2021 годов многое изменилось, и новейшие процессоры AMD EPYC как раз и были разработаны с целью заменить устаревающие парки серверов предыдущих поколений. В этой статье мы обсудим потрясающие преимущества поколения энергетически эффективных облачных процессоров AMD EPYC “Bergamo” с точки зрения консолидации серверов.
Содержание
Несколько месяцев назад мы показывали, какие консолидационные преимущества обеспечивает последнее поколение Intel Xeon даже перед новейшим поколением Xeon – как в середине 2021 года. В том обзоре мы использовали серверы Supermicro двух соседних поколений. Сегодня мы снова собираемся использовать серверы Supermicro, но с одним замечанием: показатели консолидации обещают быть намного большими, поскольку чипы серии AMD EPYC Bergamo изначально были разработаны как специализированные облачные процессоры, которые действительно предлагают нечто принципиально другое. Конечно, так как мы используем серверы Supermicro и процессоры AMD, то должны упомянуть эти компании в качестве наших спонсоров.
В роли «конкурирующего аналога» у нас сегодня выступает платформа 2-го поколения Xeon “Cascade Lake”, поскольку в середине 2021 года это было топовое решение в массовой категории, а 3-е поколение Xeon “Ice Lake” не сразу набрало популярность. Читатели удивятся: а как же AMD EPYC? – но серия EPYC 7001 продавалась очень ограниченно, а серия EPYC 7002 2-го поколения начала набирать обороты, однако подавляющее большинство (более 90%) пользователей решаются на апгрейд 1-го или 2-го поколения Xeon Scalable (или, возможно, E5) после 3-6 лет эксплуатации, не ранее.
В таблице ниже мы сравниваем характеристики топовых процессоров 2-го поколения Intel Xeon и AMD EPYC Bergamo.
Обратите внимание, если вы все еще используете «железо» 2021 года и старше, что в процессорах Intel уже тогда был представлен пакет расширений VNNI для инференсов ИИ. Ускорительные блоки, такие как QuickAssist, AMX и т.п., отсутствуют и в тех и в других процессорах, так что у нас получается почти равнопараметрическое сравнение, но с поправкой на то, что ядро Zen 4C немного быстрее.
Перед нами уже знакомый вам по прошлым обзорам односокетный сервер Supermicro AS-2015HS-TNR. По производительности один процессор AMD EPYC 9754 в большинстве приложений эквивалентен 4-4.5 топовым процессорам 2021 года и старше. То есть, вы можете заменить два топовых одноюнитовых двухсокетных сервера на один односокетный и использовать преимущества более низкой энергетической плотности и более высокой эксплуатационной эффективности односокетных систем.
При этом, даже с учетом консолидации, в части I/O односокетная платформа также предлагает серьезный потенциал. Хотя вышеупомянутые двухсокетные серверы могут поддерживать в общей сложности 192 линии PCIe, это линии PCIe Gen3. Типовая архитектура 2021 года подразумевала подключение одной сетевой карты 100GbE на каждый процессор, который поддерживал слот PCIe Gen3 x16, что в совокупности давало 64 линии. Чип Bergamo может поддерживать одну карту 400GbE NIC, подключенную к слоту PCIe Gen5 x16, обеспечивая такую же пропускную способность на вчетверо меньшем числе линий и вчетверо меньшем числе сетевых карт.
Конечно, перемены в части I/O не ограничиваются переходом на PCIe Gen5. Сегодня нам предлагают поддержку более современных карт расширения, таких как OCP NIC 3.0.
Кроме того, мы получаем поддержку NVMe SSD с PCIe Gen5. Они уже поступают на рынок, не очень высокими темпами, но, тем не менее, могут предложить в 4 раза большую пропускную способность по сравнению с предыдущим поколением дисков. Емкости SSD также заметно выросли, что позволяет значительно повысить емкость накопителей на одном цикле апгрейда.
До сих пор мы рассматривали односокетные решения, хотя двухсокетные серверы с Bergamo потенциально позволяют увеличить потоки данных почти в два раза. Однако здесь есть одна проблема, по причине которой мы и уделяем основное внимание односокетным платформам. Процессор AMD EPYC Bergamo поддерживает 12 линий DDR5. Каждая линия может включать в себя два канала, что в совокупности позволяет подключать к каждому процессору 24 DIMM-модуля DDR5. Для сравнения: двухсокетный сервер 1-го или 2-го поколения Xeon Scalable может содержать 12 DIMM-модулей DDR4 на процессор, то есть всего 24 модуля памяти. Проблема, собственно, заключается в физической сложности размещения в двухсокетном сервере Bergamo такого количества модулей памяти (24 DIMM-модуля на CPU).
Вы можете уместить в стандартном сервере сокет CPU и 24 слота DIMM или два сокета CPU с 12 слотами DIMM на каждый, чтобы в общей сложности было 24 слота DIMM. Однако вы не сможете впихнуть два процессора и 48 DIMM-модулей в 19-дюймовый корпус, без использования большой заказной материнской платы, которые делают для корпусов большой глубины. В принципе для подключения дополнительной памяти в этих новых серверах можно использовать устройство CXL 1.1 Type-3, но эта инновационная технология пока еще находится на стадии обкатки.
Итак, поколение процессоров AMD EPYC Bergamo предлагает нам примерно в 4.5 раза больше ядер, более быстрый интерфейс PCIe Gen5, современные форматы карт расширения, такие как OCP NIC 3.0, и возможность полной загрузки стоечного пространства 1U или 2U при использовании односокетных серверов. И все это держится на способности чипов AMD EPYC Bergamo обеспечивать принципиально новый уровень продуктивности каждого сокета. В следующем разделе поговорим о производительности.
Производительность: от 2-го поколения Intel Xeon к AMD EPYC Bergamo
Говоря о производительности, я хотел бы обратить внимание не только на топовые процессоры предыдущего поколения. Все началось с вопроса – какую модель процессора лучше использовать. Я обратился к Supermicro: какой чип наиболее популярен среди пользователей серверных платформ 2-го поколения Intel Xeon. Они, в свою очередь, обратились к своей собственной статистике, на которую могли повлиять несколько крупных заказчиков, но лучших источников информации у нас не было. В итоге мы пришли к 24-ядерному процессору Intel Xeon Gold 6252. На рисунке ниже представлена топология двухпроцессорного сервера на базе этих чипов.
В линейке AMD EPYC Bergamo число ядер варьируется от 112 до 128, и мы будем использовать 128-ядерный чип с SMT. Для сведения: все 256 потоков в односокетной конфигурации работают со 100%-ной скоростью, что показывают приведенные ниже скриншоты.
Результаты Htop для AMD EPYC 9754 Bergamo.
Результаты 22.5-часового нагрузочного тестирования AMD EPYC 9754 в stress-ng.
Это значительно упрощает топологию системы, поскольку все ядра процессора и устройства PCIe подключены к одной той же микросхеме ввода/вывода (IO Die). В двухсокетных серверах, если вы используете, например, одну высокоскоростную сетевую карту, данные, прежде чем поступить в сеть, могут прогоняться по каналу связи между сокетами. В односокетных системах каждое приложение, контейнер или виртуальная машина имеет прямой доступ к сетевой карте. Аналогично обстоит дело и с SSD, и по этой причине двухсокетные серверы с полной загрузкой дисковой подсистемы иногда упираются в «потолок» производительности, когда достигается лимит пропускной способности памяти или межсокетных соединений.
В настоящее время многие организации назначают виртуальным машинам определенное число ядер и потом недоиспользуют эти ядра. Представьте себе приложения, под которые выделяются ВМ с двумя или четырьмя виртуальными процессорами (vCPU) и которые потом в течение многих лет идут на 5% мощности этих ядер. Если ваша организация просто использует определенное количество ядер, то у вас при переходе с платформы Gold 6252 2021 года (24-ядерные процессоры) на платформу EPYC 9754 2023 года (128-ядерные процессоры) коэффициент консолидации составит 5.3:1. Продуктивность каждого ядра также имеет значение, потому что некоторые приложения используют чистую производительность CPU.
Тем, кого интересует производительность, мы предлагаем ряд результатов.
Компиляция ядра Linux 4.4.2 в Python
Это один из самых запрашиваемых бенчмарков на протяжении последних нескольких лет. Задача простая – мы берем стандартный конфигурационный файл Linux 4.4.2 kernel с сайта kernel.org и запускаем процесс автоконфигурации с задействованием всех потоков системы. Результаты выражены в единицах компиляции в час.
Здесь у нас не совсем четырехкратное повышение производительности сокета, но и не так уж далеко от этого. Одна из проблем современных процессоров состоит в том, что запуск одного приложения на всех ядрах процессора в конечном счете приводит к образованию «узких мест», когда нагрузка подается однопоточными порциями. Приложения, которые масштабируются практически линейно на 32 потока, 64 потока и т.д., не всегда могут перепрыгнуть на 256 потоков процессора (или на 512 в случае двух CPU).
Бенчмарк c-ray
Бенчмарк c-ray мы используем уже давно. Эта программа осуществляет рейтрейсинг, который является крайне популярным видом многопоточной нагрузки для дифференцирования процессоров по производительности. Мы предлагаем вашему вниманию результаты, полученные на разрешении 8K.
Что здесь нужно иметь в виду – это то, что архитектуры чипов AMD в тестах такого типа выказывают тенденцию к большей эффективности просто за счет кэша. Важно помнить, что, хотя в чипах Zen 4C кэш несколько урезан по сравнению с Zen 4, они все-таки располагают большим объемом кэша L3 относительно количества ядер по сравнению со стандартными чипами 2-го поколения Intel Xeon.
SPEC CPU2017
SPEC CPU2017 – вероятно, самый популярный бенчмарк, используемый при составлении RFP на серверы. Мы давно проводим независимое тестирование в SPEC CPU2017, и наши результаты обычно на несколько процентов ниже официальных результатов из презентаций OEM-фирм. Разница стабильно составляет около 5%, поскольку OEM проводят целенаправленную оптимизацию своих систем под эти важные бенчмарки. Поскольку на данный момент официальные результаты серверов EPYC Bergamo уже есть, в RFP целесообразно ссылаться именно на них.
Сначала рассмотрим наиболее общий для корпоративных и облачных приложений бенчмарк – производительность в целочисленных операциях SPEC CPU2017.
Теперь посмотрим на вещественные вычисления:
Мы приводим здесь результаты топовых представителей каждого поколения просто для полноты картины. Два процессора, которые мы сегодня сравниваем, не являются топовыми, однако каждый относится к верхней части своей линейки.
128 ядер на сокет – это настолько больше, чем было доступно 3-5 лет назад, что мы видим огромную разницу в результатах. Односокетный сервер с процессором AMD EPYC 9754 по производительности стабильно превосходит двухсокетную систему Intel Xeon Gold 6252 более чем в 2 раза. Если вы возьмете эти результаты в качестве проектировочных, то можете получить коэффициент консолидации в районе 5:1, что очень круто.
Производительность в сетях дистрибуции контента STH Nginx CDN
В тесте Nginx CDN мы используем старый снапшот и шаблон доступа с сайта STH, с отключенным DRAM-кэшированием, чтобы проиллюстрировать производительность в аспекте передачи данных с дисковых накопителей. Для этого требуется низкая задержка операций Nginx, а также низкая задержка на дополнительном шаге доступа к интерфейсу I/O, что делает задачу интересной на уровне сервера. Вот как выглядит скорость дистрибуции:
Для нас это очень актуальный сценарий, и мы просто с благоговейным ужасом смотрим на коэффициент консолидации 5:1. Даже односокетная платформа работает здесь очень эффективно. Это один из общих целевых пунктов для производителей серверов на базе AMD и Arm, поскольку он включает в себя обработку веб-страниц. С одной стороны, это не самый требовательный вид нагрузки, который хорошо масштабируется на разное количество ядер. С другой стороны, он подразумевает использование большого количества виртуальных машин, контейнеров и серверов – просто для обработки веб-страниц, изображений и видео.
Анализ ценообразования в MariaDB
Эта задача очень интересна лично мне. Этот тест создан на базе нагрузки, представляющей собой приложение для анализа аспектов ценообразования на основе анонимизированных данных, взятых у одного из ведущих производителей готовых решений для ЦОД. Приложение фактически анализирует в реальном времени многопараметрические тенденции в ценообразовании по данным продуктовых линеек, регионов и каналов поставок и определяет выгодность или невыгодность конкретных BOM-спецификаций (перечней элементов) устройств. Если эта задача представляется вам слишком специфической, то разница между ней и тем, что считают крупные производители, заключается в конкретных данных, используемых для анализа. Приложение такого типа можно перевести на методологию машинного обучения, но само по себе оно представляет наглядный пример сценария, который реальные предприятия могут запускать в облаке.
Здесь чистый полезный выход выражается в более чем пятикратном увеличении продуктивности сокета. Это обусловлено и более современными ядрами, и большим объемом кэша, и просто большим количеством ядер. Сегодня, вероятно, эту задачу можно решать еще быстрее с использованием ИИ-инференса, но эта финансовая модель должна быть достаточно точной и уметь распознавать «неявную» выгоду для компании.
Виртуализация в среде STH STFB KVM
Еще один пример, который мы хотели бы здесь привести, – из практики одного из клиентов нашей лаборатории DemoEval, который разрешил нам опубликовать результаты, хотя само тестируемое приложение относится к закрытым источникам. Рабочий сценарий использует систему виртуализации KVM (Kernel-based Virtual Machine), а задача заключается в том, чтобы выяснить, сколько виртуальных машин могут параллельно работать онлайн в течение времени, требующегося для выполнения работ в соответствии с условиями SLA (соглашения об уровне сервиса). Каждая виртуальная машина работает независимо от остальных. В части решаемых задач это очень похоже на VMware VMark, просто сценарий с использованием KVM более общий.
В плане виртуализации мы можем упереться в ограничения производительности как со стороны объема памяти, так и со стороны собственно CPU. Например, на небольших ВМ использование 24-х DIMM-модулей по 32 ГБ в односокетной системе AMD EPYC 9754 дает нам почти такую же производительность, как и использование 24-х 64-гигабайтных модулей на еще меньших ВМ, но на больших ВМ разница будет существенной. В приложениях виртуализации емкость памяти играет значительную роль. В то же время, облачные среды, на которые изначально ориентированы чипы EPYC Bergamo, подразумевают большое количество небольших виртуальных машин. Здесь вы увидите ВМ с двумя-четырьмя виртуальными процессорами и сравнительно скромными требованиями к памяти: 4-8 ГБ на каждый vCPU. В некоторых приложениях вам просто понадобятся дополнительные ядра, и тогда 128 ядер на сокет окажутся весьма кстати.
Однако ключевой вывод здесь следующий: производя подобный апгрейд, не следует забывать про емкость памяти. Вы же не хотите, к примеру, систему со 128 ядрами и 256 ГБ памяти, в которой ядра CPU будут простаивающим ресурсом. Здесь на небольших ВМ мы видим, что 128-ядерная односокетная платформа продуктивнее, чем два сервера на базе Intel Xeon Gold 6252, и в состоянии обеспечить коэффициент консолидации 4:1 и выше.
Теперь давайте посмотрим на энергопотребление.
Сравнение энергопотребления серверов 2-го поколения Intel Xeon и AMD EPYC Bergamo
Возьмем два сервера Supermicro и просто сравним значения потребляемой ими мощности.
В режиме простоя система 2-го поколения Intel Xeon потребляет 80-100 Вт, что довольно близко к энергопотреблению односокетного сервера AMD EPYC 9754, который в простое потреблял 90-120 Вт. Однако под нагрузкой старшие серверы часто забирались в область 600-700 Вт, тогда как односокетный сервер AMD EPYC 9754 ни разу не превысил отметку 500 Вт.
Здесь разница становится фатальной. Односокетная система AMD EPYC 9754 предлагает в 3-5 раз большую продуктивность сокета. И при этом новая облачная система демонстрирует снижение общего энергопотребления в сравнении с популярными двухсокетными платформами 2019-2021 годов. Вышеупомянутая производительность достигается на 29-50% потребляемой мощности по сравнению с более старыми серверами.
Когда мы говорим о консолидации с коэффициентом 5:1, то имеем в виду возможность перевода виртуальной инфраструктуры пяти двухсокетных серверов Xeon Gold 6252 на один двухсокетный сервер AMD EPYC 9754. Это позволит высвободить 80% стоечного пространства и сэкономить до 2.5 кВт мощности. Звучит почти фантастически.
Итак, давайте подведем некоторые итоги.
Серия AMD EPYC “Bergamo”: основные выводы на начало 2024 года
На первый взгляд, 128 ядер на сокет – это просто цифры. Давайте посмотрим на эту характеристику с практической точки зрения. В этом обзоре мы рассматриваем популярную платформу Supermicro на базе Cascade Lake Xeon (эпоха 2019-2021 годов) как наиболее вероятный объект апгрейда в 3-5-летнем эксплуатационном цикле. Если три года назад вы купили 15 таких серверов, сегодня их можно консолидировать в три двухсокетных сервера EPYC и при этом снизить энергопотребление стойки на 7-8 кВт. Этих 7-8 кВт сегодня достаточно для питания современного ИИ-сервера с восемью GPU. Если вы планируете на 2024 год ИИ-проекты, то вот вам примерная схема апгрейда: заменяете 15 “старых” серверов тремя новыми и заодно высвобождаете пространство и долю электроэнергии для современного ИИ-сервера. Простое и эффективное решение для тех, кто не располагает дополнительными помещениями и электрическими мощностями.
Помимо специализированных “облачных” компонентов, AMD предлагает также процессоры для других областей применения: универсальную серию Genoa и серию Genoa-X для вычислений повышенной производительности. Преимущество Bergamo состоит в том, что это облачные процессоры с высокой продуктивностью сокета, поддерживающие довольно широкий диапазон функций. Можно использовать один и тот же сервер и настраивать его под различные задачи.
Другой вопрос, насколько выгодны односокетные системы. Заказчики часто покупают двухсокетные серверы, и это дает некоторую экономию, с учетом меньшего количества вентиляторов, блоков питания, листового металла и ряда других компонентов. С другой стороны, обслуживание односокетных серверов значительно проще. Возможно, в следующем цикле апгрейда мы тоже поменяем наши хостинговые кластеры на односокетные, поскольку производительность сокета и интерфейсов в новом поколении выросла настолько, что такой апгрейд определенно имеет смысл. Хотя это не совсем то, что современный большой графический сервер, но односокетный облачный сервер – полезная вещь. Возможно, именно поэтому многие облачные провайдеры уже давно строят серверную инфраструктуру на базе односокетных платформ.
В какой-то момент наступает время для апгрейда устаревающего оборудования. Если вы в настоящее время используете серверы 1-го или 2-го поколения Xeon, или, возможно, Xeon E5, то, надеемся, наша статья сориентировала вас в правильном направлении. Процессор Intel Xeon Gold 6252 – это еще довольно мощный представитель 2-го поколения Xeon, но если у вас Xeon E5 V4 или более старая платформа, то производительность будет различаться как небо и земля.
Заключение
В целом можно сказать, что AMD EPYC Bergamo – просто чумовой процессор. Чип, показанный на рисунке ниже, предлагает 128 ядер и 256 потоков. Если вы развертываете виртуальные машины с одинаковым числом виртуальных процессоров (что бывает очень часто), то этот чип продолжит обеспечивать самую высокую плотность серверов, даже после выхода 144-ядерного компонента Sierra Forest-SP, который намечен на следующий квартал, и в предположении, что процессоры AmpereOne будут доступны для заказа. В отличие от архитектур Arm, EPYC имеет широчайшую программную поддержку. Даже если вы запускаете инференсы ИИ, пользуясь преимуществом 2-го поколения Xeon в виде поддержки VNNI, новые чипы EPYC также предлагают эту функцию.
Что стало в какой-то степени сюрпризом – это коэффициент консолидации около 5:1, полученный при использовании нашего двухсокетного одноюнитового сервера, что легко может стать обоснованием для выноса из ЦОД старых серверов и установки на освободившемся месте дополнительных серверов для ИИ. В то же время, если вы сейчас находитесь в процессе перехода с продуктов VMware (из-за изменения ценовой политики компании после слияния с Broadcom) на системы виртуализации на основе KVM или Xen без посокетного или поядерного лицензирования, чипы Bergamo с менее чем годовым периодом окупаемости могут заставить вас пересмотреть предыдущие решения.
Конечно, технологии не стоят на месте, и мы рассчитываем в наступившем году посвятить облачному сегменту значительную часть нашего времени и сил. Продолжайте следить за этой сферой, чтобы не пропустить ключевые события ближайших двух-трех лет.
Источник: www.servethehome.com