MAATRIX / Блог / Выделенные серверы / PYRAMID против NECROPOLIS: когда два Xeon уступают одному EPYC

PYRAMID против NECROPOLIS: когда два Xeon уступают одному EPYC

MAATRIX · Выделенные серверы · Статья 24 из 48

Два процессора в сервере звучат убедительно. Кажется, что один будет работать, а второй подхватит всё, что первый не успел. На практике между ними появляется ещё одна работа: согласовать доступ к данным. Если приложение постоянно обращается к памяти «через соседа», часть преимуществ двухсокетной машины можно растерять в дороге.

На примере PYRAMID с двумя Xeon Silver 4510 и NECROPOLIS с одним EPYC 7642 удобно разобраться, что даёт второй CPU и почему число сокетов ничего не обещает само по себе. Заодно выясним, как проверить NUMA на Linux и каким нагрузкам стоит внимательно смотреть на размещение потоков и памяти.

Подберите конфигурацию для своего проекта

Характеристики, стоимость и условия подготовки выделенных серверов MAATRIX в России и США.

Выбрать выделенный сервер

Два процессора PYRAMID — это 24 ядра суммарно

Начнём с арифметики, которая регулярно путается при чтении прайсов. В PYRAMID установлены два Xeon Silver 4510, каждый по 12 ядер. Получается 24 физических ядра всего, а не 48. NECROPOLIS с одним EPYC 7642 предлагает 48 ядер. Один корпус CPU в этом сравнении содержит больше ядер, чем два других вместе.

ХарактеристикаPYRAMIDNECROPOLIS
CPU2 × Xeon Silver 45101 × EPYC 7642
Ядра суммарно2448
Потоки суммарно4896
Память в тарифе128 ГБ DDR5128 ГБ DDR4
Накопители1 ТБ NVMe2 × 1 ТБ NVMe
Базовая / максимальная частота CPU2,4 / до 4,1 ГГц2,3 / до 3,3 ГГц
ЛокацияСШАСША
Аренда в месяц$729$529

Данные тарифов приведены по предоставленному прайсу. Число ядер и потоков каждого CPU подтверждают Intel для Silver 4510 и AMD для EPYC 7002.

PYRAMID дороже на $200 в месяц, или на $2400 за год при неизменной цене. Это существенная разница, поэтому у старшей по стоимости машины должно быть понятное преимущество в вашей работе. Более новая архитектура и DDR5 могут оказаться полезными, но доказывать пользу придётся на задаче, а не числом процессорных разъёмов.

NUMA простыми словами: у памяти есть адрес и расстояние

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

В двухсокетном сервере похожим образом устроен доступ к RAM: часть памяти подключена к одному процессору, часть — к другому. Оба могут обращаться к данным, но путь до локальной и удалённой памяти различается. NUMA означает неоднородный доступ к памяти; сама по себе эта архитектура нормальна и широко используется.

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

Linux учитывает топологию системы, однако размещение задач и данных всё равно зависит от поведения приложения и настроек. Принципы описаны в документации ядра о NUMA. Это не повод немедленно закреплять все процессы вручную: сначала нужно увидеть проблему, иначе можно аккуратно настроить ограничение, которого раньше не существовало.

Односокетный EPYC тоже нельзя объявить «без NUMA»

Удобное объяснение про два кабинета иногда заводит слишком далеко. Из него делают вывод, что NUMA существует только при двух физических CPU, а один процессор гарантирует абсолютно одинаковый доступ ко всей памяти. Современные платформы устроены сложнее.

EPYC 7002 использует внутреннюю топологию, которую система может представлять по-разному в зависимости от настроек. В документации AMD описаны варианты NUMA per socket; их доступность зависит от конкретной модели. Поэтому число видимых узлов на NECROPOLIS нужно проверять, а не выводить из слова «один». Подробности приведены в руководстве AMD по настройке EPYC 7002.

При сравнении важно другое: какие задержки и пропускную способность получает приложение при реальном размещении своих данных. PYRAMID имеет межсокетные связи; NECROPOLIS — собственное устройство доступа внутри платформы. Ни одну из машин нельзя полностью описать одним словом «NUMA».

Похожая оговорка касается памяти. 128 ГБ в двух тарифах — одинаковый общий объём, но неизвестна схема установки модулей. На PYRAMID важно распределение RAM между процессорами, на обоих серверах — задействованные каналы. До измерений стоит запросить комплектацию: она поможет понять, какой результат вообще ожидается.

Когда два Xeon могут проиграть

Первый сценарий — длинная операция с небольшой степенью параллелизма. Дополнительный сокет здесь не создаёт дополнительной полезной работы, а результат определяется теми потоками, которые действительно заняты. При этом победитель сравнения зависит от производительности этих потоков на конкретных CPU: односокетность сама по себе не гарантирует лидерства EPYC.

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

Третий случай — неудачное размещение памяти. Например, процесс стартовал с данными на одном узле, затем его потоки активно выполняются на другом. Или виртуальной машине выдали CPU с обеих сторон, а её память распределили иначе, чем ожидала гостевая система. Такие ситуации требуют анализа топологии, а не покупки ещё нескольких ядер.

Четвёртый — ограничение по накопителю. В PYRAMID указан один NVMe, в NECROPOLIS два. Конкретные модели неизвестны, поэтому нельзя заранее объявить победителя по скорости. Но число сокетов точно не компенсирует очередь на запись, если именно она определяет длительность операций.

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

Где PYRAMID заслуживает испытания

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

Другой случай — программа и библиотека, которые хорошо используют возможности современного Xeon. Здесь может оказаться полезной новая архитектура, определённые инструкции или особенности работы с памятью. Но нужно проверять весь программный путь: поддерживаемую операцию, формат данных, сборку библиотеки и реальные затраты времени.

Если корпоративное приложение сертифицировано и отлажено под конкретную платформу, уменьшение организационного риска тоже имеет ценность. Его следует назвать прямо: совместимость, поддержка, известная конфигурация. Не нужно превращать этот аргумент в универсальное утверждение «два CPU лучше для бизнеса».

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

Общее назначение двухпроцессорных платформ рассматривается в статье «Второй процессор в выделенном сервере: кому он нужен». В текущем сравнении решающими остаются конкретные 24 и 48 ядер, одинаковые 128 ГБ RAM и разница аренды.

Как посмотреть NUMA на Linux без изменения настроек

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

lscpu
numactl --hardware
numactl --show

В выводе lscpu найдите число сокетов, физических ядер, потоков и NUMA-узлов. numactl --hardware показывает доступные узлы, связанные с ними CPU и память. numactl --show выводит политику текущего процесса, а не универсальную настройку всех программ машины. Если утилиты нет, её устанавливают из доверенного репозитория выбранного дистрибутива.

Смысл параметров описан в документации проекта numactl. Сохраните исходный вывод до экспериментов. Он пригодится для сравнения и общения с поддержкой, особенно если фактическая комплектация отличается от ожиданий.

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

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

Сравнение, которое отвечает на деловой вопрос

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

Отдельно проверьте предсказуемость результата. Быстрый средний запуск мало помогает, если часть задач регулярно задерживается. Для пользовательского приложения важны долгие ответы, для пакетной обработки — время завершения всей очереди, для сборочной фермы — ожидание разработчика.

После этого посчитайте месячную стоимость полезной работы. Если условная машина завершает больше заданий, но не настолько, чтобы оправдать разницу аренды и обслуживания, экономического выигрыша нет. Пример должен опираться на ваши измерения; сводные баллы 68 226 и 58 177 из карточек не заменяют тест приложения.

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

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

Подберите конфигурацию для своего проекта

Характеристики, стоимость и условия подготовки выделенных серверов MAATRIX в России и США.

Сравнить конфигурации в США

Все материалы о выделенных серверах

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →