惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
Cisco Talos Blog
Cisco Talos Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
美团技术团队
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
月光博客
月光博客
T
Tor Project blog
P
Privacy & Cybersecurity Law Blog
Recorded Future
Recorded Future
I
Intezer
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
GbyAI
GbyAI
罗磊的独立博客
V
V2EX
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
A
About on SuperTechFans
Scott Helme
Scott Helme
Vercel News
Vercel News
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
C
CERT Recently Published Vulnerability Notes
G
Google Developers Blog
B
Blog
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 聂微东
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
IT之家
IT之家
C
Cybersecurity and Infrastructure Security Agency CISA
P
Palo Alto Networks Blog
小众软件
小众软件
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
AWS News Blog
AWS News Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Что выбрать для сервера, EPYC или Ryzen?
Александр Казанцев · 2026-06-26 · via Все публикации подряд на Хабре

Автор: Иван Богданов, Технический писатель

Клиенты хостинга условно делятся на две группы. Одни приходят с готовым техническим заданием, знают, какой процессор им нужен и почему. Другие только начинают свой путь и смотрят на витрину с легким недоумением. У второй группы часто возникает один и тот же вопрос. Почему две конфигурации с похожей оперативной памятью, дисками и сетью отличаются по цене примерно на 5000 рублей в месяц, и единственное видимое различие там — процессор.

Сразу небольшой дисклеймер: цены в статье приведены на момент ее написания в первых неделях июня 2026 года и могут отличаться от текущих.

Серверы с AMD Ryzen и EPYC

Широкая линейка конфигураций серверов на базе процессоров AMD в России, Европе и США.

Посмотреть

Например, рассмотрим пример из нашей линейки. Ryzen 9950X с его 16 ядрами, частотой до 5,7 ГГц по спецификации производителя и TDP 170 Вт обойдётся в 18 480 рублей в месяц (221 760 рублей в год). Рядом расположился EPYC 9354 с 32 ядрами, частотой до 3,8 ГГц и TDP 280 Вт за 23 760 рублей в месяц (285 120 рублей в год). У первого частота выше почти в полтора раза, а цена при этом ниже. У второго вдвое больше ядер и серверная архитектура. По одной лишь таблице характеристик невозможно сказать, какой из них «быстрее», т. к. ответ зависит от задач, которые на нем будут выполнять.

Нам стало интересно посмотреть на это не в формате «теоретически EPYC лучше для серверов, потому что он серверный». Хотелось получить цифры с обеих машин в идентичных условиях. Мы прогнали обе ноды через одинаковый набор из 25 тестов. Туда вошли синтетика на центральный процессор, OpenSSL, STREAM по памяти, fio по дискам, pgbench, Redis, nginx, multi-tenant сценарий с десятью параллельными нагрузками и 30-минутный термальный стресс. Дальше по разделам разберем, где Ryzen реально впереди, где он проигрывает, и в каких случаях разница в 5 с лишним тысяч рублей в месяц окупается.

Конфигурация тестовых машин

Перед тем как переходить к результатам тестирования, нужно зафиксировать, что именно сравнивается. Два сервера разной архитектуры, и почти все различия в дальнейших тестах объясняются именно тем, что записано в таблице ниже.

Параметр

EPYC 9354

Ryzen 9950X

Архитектура

Zen 4 (server)

Zen 5 (desktop)

Ядра / потоки

32 / 64

16 / 32

Базовая частота

3.25 ГГц

4.3 ГГц

Турбо-режим

до 3.8 ГГц

до 5.3 ГГц

TDP

280 Вт

170 Вт

Кэш L3

256 МБ

64 МБ

Память

12 каналов DDR5

2 канала DDR5

RAM в нашей конфигурации

192 ГБ

128 ГБ

PCIe

128 линий Gen 5

28 линий Gen 5

ECC память

✓ обязательна

✗ не поддерживается

IPMI / BMC

✓ есть

✗ нет

Функции RAS (системы удаленного доступа)

✓ полный набор

✗ потребительский уровень

Сеть в тарифе

10 Гбит/с

1 Гбит/с

Цена в месяц

23 760 рублей в месяц

18 480 рублей в месяц

По первым двум строкам уже понятно, что мы увидим в тестах. Микроархитектура Zen 5 у Ryzen 9950X новее, IPC и частоты выше, поэтому в однопоточных задачах он впереди. В многопоточных всё решает количество ядер, а тут их 32 против 16. Там, где нагрузка упирается в память, играют роль 12 каналов DDR5 против 2.

Дисковая подсистема в сравнении не участвует. На двух стендах стояли накопители NVMe разной ёмкости и поколений, поэтому результаты fio между машинами некорректны. Все цифры в статье относятся к процессору и памяти.

На стенде с Ryzen 9950X одновременная многопоточность (SMT, Simultaneous Multithreading) недоступна на уровне платформы. Контроллер процессора возвращает статус not supported, и процессор работает в режиме 16 потоков на 16 ядрах. Это не временная настройка для тестов, а штатная конфигурация, в которой сервер передаётся клиенту. Условия обслуживания запрещают любые изменения в BIOS, поэтому ситуация для всех арендаторов будет одинаковой. У EPYC многопоточность включена, что даёт 64 потока на 32 ядрах. Этот момент важно держать в голове при чтении многопоточных тестов ниже, поскольку цифры Ryzen в них отражают именно ту производительность, которую получит реальный клиент, а не теоретический потолок процессора в лабораторных условиях.

Где Ryzen быстрее и почему

В сравнении двух процессоров есть сценарии, где Ryzen 9950X показывает результат лучше. Посмотрим, на каких именно тестах это произошло и насколько эти цифры переносятся на реальную нагрузку в продуктовой среде.

Однопоточная производительность

Тест Sysbench в один поток показывает, насколько быстро одно ядро успевает прокрутить заданный набор операций. Ничего постороннего в работу не вмешивается, нет ни конкуренции за память, ни блокировок.

Разрыв Ryzen относительно EPYC составляет около 55%. Объясняется он сочетанием двух факторов: частоты и поколения архитектуры. У Ryzen 9950X базовая частота 4,3 ГГц, тогда как у EPYC она 3,25 ГГц. К этому добавляется архитектура Zen 5 с заметно подросшим количеством инструкций, выполняемых за такт (IPC), относительно Zen 4.

Понять, где эта разница имеет значение на практике, несложно. Она даёт о себе знать в любой задаче, где узким местом становится один поток. Самый частый случай — это Node.js до того момента, как процессы разведены через кластер. Сюда же относятся скрипты на командной оболочке Bash, обработка данных на языке программирования Python без распараллеливания, а также компиляция небольших модулей, где параллелизм просто негде взять. На подобных сценариях разница в 55% будет хорошо ощущаться.

nginx и Redis, потолок процессора без сетевых ограничений

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

Метрика

EPYC 9354

Ryzen 9950X

nginx при 1000 соединениях, запросов в секунду (RPS)

823 000

1 420 000

Redis SET, операций в секунду (ops/s)

1 120 000

3 850 000

Redis GET, операций в секунду

1 130 000

4 460 000

Разрыв в пользу Ryzen на веб-сервере nginx составил около 72%, на операции записи Redis SET почти в три раза, а на операции чтения Redis GET почти в четыре. Выглядит внушительно. Тут стоит остановиться и проговорить, что именно эти цифры измеряют, а что нет.

Оба теста проводились по петле обратной связи (loopback, адрес 127.0.0.1), т. е. клиент и сервер живут на одном хосте, а пакет не уходит в сетевой стек дальше виртуального интерфейса. Таким образом измеряется верхний потолок самого приложения и процессора, насколько быстро nginx или хранилище данных Redis способны принять и отдать ответ при полном отсутствии сетевых задержек.

В реальной нагрузке картина выглядит иначе. В продуктовой среде Redis и nginx обслуживают клиентов по сети, что накладывает физические ограничения. В нашем тарифе Ryzen 9950X идёт с сетью 1 гигабит в секунду, а у EPYC 9354 в той же позиции стоит сеть 10 гигабит. Если перевести в более привычные единицы, 1 гигабит в секунду даёт около 125 мегабайт пропускной способности в секунду, и из этого еще нужно вычесть накладные расходы на заголовки протокола передачи данных (TCP), заголовки протокола передачи гипертекста (HTTP) и сам запрос. Фактический потолок окажется где-то в 2–3 раза ниже теоретического.

Размер ответа в этом сценарии становится определяющим. На крошечных ответах в 100 байт Ryzen может приблизиться к loopback-цифре, поскольку сеть в 1 Гбит/с такие запросы пропускает в большом количестве. На типичных ответах HTTP размером 1–10 килобайт потолок по сети будет в районе 12–125 тысяч запросов в секунду, и здесь Ryzen упрётся в сеть задолго до того, как упрётся в процессор. У EPYC сетевой потолок выше в десять раз.

Это вовсе не означает, что loopback-цифры бесполезны. Они показывают реальную производительность центрального процессора (CPU) на этой задаче, и если завтра поставить ту же машину в сеть 10 Гбит/с, потолок самого процессора останется прежним. Просто эти цифры отвечают на вопрос «сколько способен выжать процессор», а не на вопрос «сколько запросов реально дойдёт до клиентов».

Картина складывается следующая. Однопоточные задачи и тесты без сетевого упора — это действительно сильная сторона Ryzen, и тут он быстрее по вполне объяснимым причинам. Дальше в статье речь пойдёт о сценариях, где картина меняется. Это многопоточная нагрузка, упор в память и длительная работа под высокой температурой.

Где EPYC показывает себя лучше

В предыдущем разделе мы разобрали сценарии, в которых Ryzen 9950X выходит вперёд. Теперь же перейдём к тестам, где картина выглядит иначе. Перед тем как переходить к цифрам, стоит напомнить одну важную деталь конфигурации. На стенде с Ryzen одновременная многопоточность (SMT) недоступна на уровне платформы, и центральный процессор (CPU) видит 16 потоков на 16 ядрах вместо потенциальных 32. У EPYC многопоточность включена, что даёт 64 потока на 32 ядрах. На некоторые из тестов ниже это влияет напрямую, и цифры Ryzen в них отражают реальный результат для конечного клиента, а не лабораторный максимум.

Пропускная способность памяти, тест STREAM

Это самый показательный по разрыву тест из всей подборки. STREAM измеряет, насколько быстро процессор и подсистема памяти умеют перекачивать данные. Это не синтетика ради синтетики, она напрямую коррелирует с производительностью всего, что упирается в оперативную память.

Разрыв здесь составляет примерно 7–8 раз. Причина кроется не в настройке или прошивке, а в самой архитектуре. У EPYC 9354 предусмотрено 12 каналов памяти DDR5, тогда как у Ryzen 9950X их всего 2. Получается шесть каналов друг против друга, каждый со своей шиной. Подобное соотношение не оптимизируется ни драйверами, ни ядром, поскольку это плата с разводкой под двенадцать слотов оперативной памяти против платы с разводкой под четыре слота. Многопоточность здесь ни при чём, ведь в STREAM упор идёт не в потоки, а в пропускную способность.

На практике это означает следующее. Любая нагрузка, в которой данные не помещаются в кэш и постоянно ходят между ядрами и памятью, на EPYC будет работать заметно быстрее. К типичным примерам относятся базы данных, работающие в оперативной памяти (in-memory), такие как Redis при большом объёме данных и Memcached, а также аналитические запросы по большому объёму данных, вывод моделей машинного обучения (inference) на процессоре и любые приложения, оптимизированные под архитектуру памяти с неравномерным доступом (NUMA).

В разделе про nginx и Redis на петле обратной связи мы видели обратную картину, там Ryzen был впереди в несколько раз. Никакого противоречия здесь нет, просто речь идёт о двух разных режимах работы. Redis в loopback-тестах гоняет короткие операции на маленьких ключах, всё помещается в кэш процессора, и частота оказывается важнее пропускной способности. Как только объем данных вырастает за пределы кэша третьего уровня (L3), а это 256 МБ у EPYC против 64 МБ у Ryzen, или нагрузка становится по-настоящему параллельной, узким местом становится память, и расстановка сил меняется.

Многопоточная нагрузка на процессор

Здесь ситуация ожидаемая. Когда задача параллелится по ядрам, 32 ядра EPYC дают преимущество над 16 ядрами Ryzen.

Тест

EPYC 9354

Ryzen 9950X

Разрыв

sysbench multi-thread, событий в секунду (eps)

58 822

38 875

+51%

7-Zip compress, миллионов инструкций в секунду (MIPS)

241 806

116 325

+108%

7-Zip decompress, MIPS

255 339

88 749

+188%

OpenSSL AES-256-GCM, ГБ/с

140

99

+41%

OpenSSL SHA-256, ГБ/с

109

40

+173%

RSA-2048 verify, операций в секунду

2 167 000

1 485 000

+46%

Здесь самое время вернуться к разговору про одновременную многопоточность (SMT). Эти тесты как раз из тех, на которые её отсутствие влияет напрямую. Поскольку на стенде с Ryzen многопоточность недоступна на уровне платформы, цифры в таблице отражают именно тот результат, который получит арендатор сервера. Никакого «теоретического потолка с включённым SMT» в реальной эксплуатации не будет, поскольку условия обслуживания запрещают вмешиваться в настройки прошивки. Поэтому разрыв с EPYC, который виден в таблице выше, это не методологическая поправка, а та самая разница, с которой клиенту предстоит работать. EPYC выходит вперёд в многопоточных нагрузках за счёт удвоенного количества физических ядер и за счёт того, что использует свою многопоточность в полной мере.

Отдельно стоит остановиться на тесте OpenSSL SHA-256, где EPYC опережает Ryzen на 173%. Эта цифра аномально велика даже с учётом разницы 32 ядер против 16. Причина кроется в специализированных аппаратных инструкциях SHA-NI. У EPYC их вдвое больше просто за счёт количества ядер, и каждая такая инструкция считает блок SHA-256 за один такт. Получается, что на хэшировании разница в ядрах транслируется в производительность почти линейно. На алгоритме AES-GCM похожая инструкция AES-NI тоже присутствует на обоих процессорах, но там разрыв скромнее (+41%), поскольку упор смещен в сторону частоты.

Понять, где это имеет значение, несложно. На веб-серверах с большим количеством рукопожатий по протоколу защищённой передачи данных (TLS) основная нагрузка приходится именно на хэш-функции и асимметричное шифрование при установке соединения. На задачах архивирования и распаковки, при компиляции больших проектов, а также на любых фоновых задачах, которые распараллеливаются по ядрам, разница между двумя процессорами вырастает в полтора-три раза.

PostgreSQL под параллельной нагрузкой

Этот тест кажется мне наиболее интересным с точки зрения того, что обычно крутится на арендованных серверах. Запускали мы инструмент pgbench с нагрузкой, подобной TPC-B (стандартный синтетический бенчмарк для операций оперативной обработки транзакций, OLTP), с масштабным коэффициентом 100. Измеряли количество транзакций в секунду (TPS) при разном числе одновременных клиентов.

Клиенты

EPYC 9354 (транзакций в секунду)

Ryzen 9950X (транзакций в секунду)

Разрыв EPYC

10

3 849

2 842

+35%

50

13 231

10 405

+27%

200

22 780

18 634

+22%

500

24 716

20 484

+21%

На небольшом числе клиентов разница составляет около 30%, и она вполне объяснима разницей в частотах и объёме кэша. Куда интереснее посмотреть на то, как ведут себя кривые при росте нагрузки. На промежутке от 200 до 500 клиентов EPYC даёт прирост с 22 780 до 24 716 транзакций в секунду, и его кривая всё ещё идёт вверх. Ryzen за тот же промежуток вырос с 18 634 до 20 484 транзакций в секунду, однако каждый следующий шаг даётся ему всё тяжелее, и кривая визуально начинает выходить на плато.

Здесь стоит быть осторожным с выводами. У нас всего четыре точки, и любые рассуждения о том, как поведёт себя нагрузка на 1000 клиентах, остаются в области предположений. Если экстраполировать тренд, Ryzen упрётся в потолок раньше, чем EPYC, и разрыв на больших количествах подключений будет расти, но это всего лишь предположение, а не измерение. Чтобы проверить его, нужен прогон на 1000 и 2000 клиентов, и пока такого замера нет, цифры в таблице выше остаются всем, что у нас есть.

Стоит ещё раз вспомнить про одновременную многопоточность (SMT). На инструменте pgbench, особенно при большом числе клиентов, многопоточность вносит ощутимый вклад, поскольку каждое соединение системы управления базами данных PostgreSQL живёт в своём процессе, и физических ядер на всех попросту не хватает. На стенде с Ryzen многопоточность недоступна на уровне платформы, поэтому цифры при 200 и 500 клиентах отражают именно то, что получит арендатор, без всяких теоретических поправок. Это и есть реальная картина для тарифа, а не лабораторный замер с условиями, до которых клиент дотянуться не сможет.

Несколько клиентов на одной машине

Этот сценарий для хостинга оказывается куда важнее многих синтетических тестов. На одной физической машине обычно живет не одно приложение, а несколько клиентов с разными нагрузками. Чтобы прикинуть, как процессор ведёт себя в подобной ситуации, мы запустили утилиту stress-ng в десять параллельных рабочих процессов (воркеров), у каждого из которых было по четыре нагружающих модуля на центральный процессор и два на оперативную память, а общая длительность теста составила пять минут.

Здесь видны сразу две вещи. На чисто процессорной нагрузке EPYC даёт ровно двукратный отрыв (×2,1), что точно соответствует двойному количеству ядер, и нагрузка масштабируется почти линейно. На модулях, которые гоняют оперативную память, картина выглядит иначе, отрыв составляет ×1,46. Узкое место смещается с процессора на пропускную способность памяти, и здесь уже двенадцать каналов DDR5 у EPYC играют большую роль, чем количество ядер.

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

Серверные функции, которых у Ryzen нет на уровне архитектуры

Речь дальше пойдёт не о производительности, а о наборе серверных функций, которых у Ryzen 9950X либо нет совсем, либо они присутствуют в урезанном виде. Об этом стоит сказать отдельно, поскольку в технической документации производителя такие различия часто скрываются за общими формулировками.

Память с коррекцией ошибок (ECC). Аббревиатура ECC расшифровывается как Error-Correcting Code и означает, что модули памяти умеют обнаруживать и исправлять одиночные битовые ошибки на лету. Ryzen 9950X ее формально поддерживает, но только в режиме UDIMM-ECC и только на тех платах, где производитель сделал соответствующую разводку. На большинстве потребительских материнских плат поддержки нет вовсе или она работает в усеченном режиме. У EPYC память с коррекцией обязательна, без неё процессор просто не запустится. Аппаратно обрабатываются как одиночные (SBE), так и двойные битовые ошибки (DBE). Что это значит на практике. Если в оперативной памяти случайно перевернется бит (а это случается, особенно при длительной работе и высокой плотности модулей), на EPYC ошибка будет либо исправлена прозрачно, либо залогирована. На Ryzen без ECC ошибка пройдёт незамеченной и может проявиться, например, как испорченные данные в базе.

Набор RAS-функций. Reliability, Availability, Serviceability, или функции надежности, доступности и обслуживаемости. На EPYC это около тридцати разных механизмов. Machine Check Architecture (MCA) с автоматическим восстановлением, platform security processor (PSP) для отдельной обработки уязвимостей, propagation бита «отравленных» данных через подсистему памяти, аппаратный вывод поврежденных страниц памяти из эксплуатации без участия операционной системы. На Ryzen большинство этих механизмов либо отсутствует, либо реализовано в потребительском объёме.

Удалённое управление (IPMI и BMC). На серверных платах под EPYC стоит отдельная микросхема BMC (Baseboard Management Controller), которая работает независимо от основного процессора и операционной системы. Через интерфейс IPMI (Intelligent Platform Management Interface) к ней можно подключиться по сети, увидеть процесс загрузки, перезагрузить машину, перепрошить BIOS, посмотреть температуру и состояние датчиков, даже когда основная система зависла или не загружается. На потребительских платах под Ryzen такой микросхемы нет. В случае зависания сервера у администратора остаётся вариант с физическим визитом в центр обработки данных.

Линии PCIe. У EPYC 9354 их 128 версии 5.0, у Ryzen 9950X — 28, причем примерно половина из этого числа уходит на чипсет и встроенную периферию. Для одного-двух NVMe-накопителей и одной сетевой карты Ryzen достаточно. Для конфигурации с RAID-массивом из четырёх и более NVMe, отдельной 100-гигабитной сетевой карты, плюс графическим ускорителем — линий просто не хватит, и встанет выбор, что подключить, а что нет.

Если суммировать, набор отличий выше делает EPYC более предсказуемым в эксплуатации. На стороне хостера это переводится в более раннее обнаружение проблем (через ECC, RAS-механизмы, удалённое управление) и в более широкие возможности по подключению периферии. На Ryzen многие из этих сценариев либо невозможны, либо требуют компромиссов.

Температурный режим под длительной нагрузкой

Один из менее очевидных результатов теста касается уже не производительности, а температурного поведения. Ryzen 9950X в стандартном серверном шасси без жидкостного охлаждения под продолжительной стопроцентной нагрузкой выходит на температуру 96°C.

Метрика после 30 минут 100% нагрузки

EPYC 9354

Ryzen 9950X

Температура максимальная

74,0°C

96,4°C

Температура средняя

72,6°C

96,2°C

Частота максимальная

3 795 МГц

5 315 МГц

Частота минимальная

3 769 МГц

4 917 МГц

Просадка частоты под нагрузкой

0,67%

7,48%

Один из менее очевидных результатов теста касается уже не производительности, а температурного поведения. Ryzen 9950X в стандартном серверном шасси без жидкостного охлаждения под продолжительной стопроцентной нагрузкой выходит на температуру 96°C.

Сам по себе Ryzen 9950X спроектирован под настольный сценарий с массивным воздушным или жидкостным охлаждением, и в такой системе он способен длительное время держать частоты выше пяти гигагерц. Однако серверное шасси высотой 1U или 2U физически не вмещает большой кулер, и в нём используются вентиляторы ограниченных размеров с высокой частотой вращения. В этой конфигурации Ryzen упирается в свою предельную температуру перехода Tjmax, которая по технической документации составляет 95°C, и начинает снижать частоту, теряя около 7%.

EPYC 9354 спроектирован под тепловыделение (TDP) 280 Вт именно с расчётом на серверное охлаждение. В тех же условиях он держится в районе 72–74°C, что заметно ниже его предельной температуры, а просадка по частоте остаётся в пределах 1%.

За цифрами в таблице стоит несколько вполне ощутимых последствий. На сервере с Ryzen под продолжительной нагрузкой вентиляторы работают на максимальных оборотах, а это увеличивает их износ и шум. Заявленные в маркетинговых материалах частоты до 5,7 ГГц достижимы только в настольной системе, тогда как в серверной нагрузка стабилизируется на отметке порядка 4,9 ГГц. Производитель допускает работу процессора вплоть до Tjmax, и сам по себе режим в 96°C не является аварийным. Однако работа на постоянной близости к этой границе оставляет минимальный запас на пиковые нагрузки, колебания температуры в стойке и постепенное ухудшение теплоотвода по мере накопления пыли в радиаторах. В долгосрочной перспективе это означает более раннюю необходимость профилактики, чем у процессора, который штатно работает на 70–75°C.

Когда переплата за EPYC оправдана, а когда выгоднее Ryzen

Точная разница в цене на момент заказа составляла в 5 280 рублей в месяц, и здесь возникает логичный вопрос, в каких сценариях эта разница оправдывается. Чтобы на него ответить, стоит посмотреть не на абсолютную цену сервера, а на стоимость в пересчете на единицу полезной нагрузки. 

Картина складывается следующая. На лёгком веб-сервисе и серверной части (бэкенде) с небольшим числом одновременных подключений Ryzen остаётся выгоднее по соотношению цены и производительности. Как только нагрузка начинает упираться в пропускную способность памяти или в количество параллельных задач на одной машине, разница в 5280 рублей окупается эффективностью.

В пользу Ryzen 9950X работает целый ряд соображений. Сервер используется под одно приложение или сайт и не делится между клиентами. Нагрузка преимущественно однопоточная или с небольшим числом одновременных пользователей. Бюджет ограничен суммой около 20000 рублей в месяц. Данные не критичные, например, для тестовой среды или среды разработки, где отсутствие памяти с коррекцией ошибок (ECC) не играет роли. Сетевой канал в 1 гигабит в секунду полностью закрывает потребности.

В пользу EPYC 9354 говорят совсем другие соображения. База данных работает под нагрузкой от ста одновременных клиентов и выше. Один сервер делится между несколькими клиентами или контейнерами. На нём крутятся нагрузки, упирающиеся в память, такие как Redis, Memcached или вывод моделей машинного обучения. Есть требования к соответствию стандартам или повышенная чувствительность данных, когда память с коррекцией ошибок становится не опцией, а необходимостью. Нужно удалённое управление через интерфейс интеллектуального управления платформой (IPMI) на случай проблем с операционной системой. Сетевого канала в 1 гигабит в секунду недостаточно, и нужны 10 гигабит. Ожидается рост нагрузки, пользовательской базы или объёма базы данных.

Граница между этими сценариями довольно размытая, и в большинстве случаев решение остаётся на стороне того, кто лучше всех знает свою нагрузку.

Итог сравнения

Сравнение Ryzen 9950X и EPYC 9354 не сводится к одному числу или одной метрике. Расстановка сил во многом зависит от того, какая именно нагрузка крутится на сервере. Ryzen выигрывает в однопоточных тестах, в сценариях по петле обратной связи (loopback) и в задачах с небольшим числом одновременных соединений. EPYC же опережает соперника по пропускной способности памяти (разрыв в 7–8 раз), в многопоточной нагрузке и в работе под высокой температурой (просадка частоты меньше 1% против 7,5% у Ryzen), а также предлагает набор серверных функций, которых на потребительской платформе нет на уровне архитектуры.

Если посмотреть на главные находки в краткой форме:

  • Память. Разрыв в пропускной способности 7–8 раз, и причина кроется в двенадцати каналах DDR5 у EPYC против двух у Ryzen.

  • PostgreSQL. Кривая Ryzen визуально начинает выходить на плато к 500 клиентам, тогда как у EPYC ещё остаётся запас (с оговоркой про экстраполяцию).

  • Многопоточная нагрузка с несколькими клиентами. Разрыв составляет около двух раз по процессорной метрике, что соответствует двойному количеству ядер.

  • Температура. Ryzen в серверном шасси работает на пределе своей предельной температуры перехода (Tjmax) с просадкой частоты около 7,5%.

  • Серверные функции. Память с коррекцией ошибок (ECC), интерфейс интеллектуального управления платформой (IPMI) и механизмы надежности, доступности и обслуживаемости (RAS) на EPYC присутствуют как часть платформы, а на Ryzen они либо отсутствуют, либо ограничены.

Разница в чуть более 5000 рублей позволяет выбрать серверный процессор вместо потребительского, установленного в серверном корпусе. Вопрос окупаемости этой разницы зависит от того, насколько реальная нагрузка соответствует параметрам, которые были учтены при разработке серверного процессора

Серверы с AMD Ryzen и EPYC

Широкая линейка конфигураций серверов на базе процессоров AMD в России, Европе и США.

Посмотреть