По каким коэффициентам можно выбирать серверный процессор?

Вот как раньше было хорошо: для серверов существовал один-единственный процессор Pentium Pro, который и выбирать-то было не нужно. С появлением многоядерных процессоров, стало ясно, что чем больше вычислительных блоков, тем лучше, но лишь до тех пор, пока в дело не вступили маркетологи и не разделили один CPU на десять сокетов с десятью вариантами кэша и десятью частотными характеристиками, так что сегодня выбор CPU в сервер представляет собой адский ад даже для подготовленного технического специалиста. В этой статье мы сравним между собой сами коэффициенты сравнения, которые так любят приводить маркетологи в своей документации.

1. Цена за ядро (Price per Core)

Самый простой и самый понятный человеку коэффициент, который получается простым делением цены процессора на количество физических ядер. Из-за того, что он не учитывает такие параметры, как архитектуру процессора, объём кэшей, тип контроллера памяти и архитектуру, он является наиболее бесполезной метрикой, которая на текущий момент выгодна лишь компании AMD, щеголяющей перед Intel-ом своими 64-ядерными процессорами.

Конечно, самое время вспомнить о серии Intel Xeon Phi, в которой есть процессоры архитектуры x86-64, имеющие до 72 ядер, с крайне низкой частотой от 1 до 1.7 ГГц. Вообще, Intel любит такие вот низкие частоты, и даже в начальной линейке универсальных процессоров Xeon Bronze, вы можете купить 6-ядерные модели с частотой от 1.6 до 1.8 ГГц, в зависимости от поколения, и цена за ядро там так же очень низкая. И если посмотреть на рандомную выборку серверных процессоров, то цена за ядро не означает вообще ничего!

Процессор

Цена,$

Цена за ядро,$

Intel Xeon Phi 7290, 72C, 1.5-1.7 GHz

3213

44.6

Intel Xeon Gold 5320H, 20C, 2.4-4.2 GHz

1555

77.75

Intel Xeon Bronze 3204, 6C, 1.9 GHz

220

36.6

AMD EPYC 7662, 64C, 2.0-3.3 GHz

7300

114

AMD EPYC 7272, 12C, 2.9 GHz

690

57,5

AMD EPYC 7401P, 24C, 2.0 - 3.0 GHz

1048

43,6

AMD EPYC 7251, 8C, 2.1 - 2.9 GHz

478

59,75

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

2. Цена за мегагерц

Оптимальным выглядит способ умножения числа ядер на их базовую частоту, поскольку современные операционные системы уже научились перекидывать задачи между ядрами без потери производительности. Сама мысль о том, что вы оцениваете весь ваш сервер, весь ваш кластер с точки зрения суммарного количества мегагерц, активно продвигается компанией VMware, и выглядит очень здраво, особенно когда сопоставляешь нагрузку виртуальных машин с частотной ёмкостью сервера или кластера. Например, если среднее потребление виртуалки составляет 500 МГц с пиком до 1.7 ГГц, то можно примерно сказать, что 8-ядерный процессор с частотой 3 ГГц потянет примерно 30 виртуалок, в зависимости от того, насколько синхронно меняется их потребление.

Недостатков у такого метода так же хватает: во-первых, у нас возникает вопрос с технологией HyperThreading, которая предлагает операционной системе от 1 до 4 виртуальных ядер на каждое физическое. Как правило, толку от них в общих задачах нет, а VMware вообще рекомендует отключать эту технологию в BIOS, но если брать в зачёт частоты виртуальных ядер, сравнение будет нечестным.

Ёмкость процессора

Второй недостаток - это Turbo Boost, который может увеличивать частоту как для 1 ядра из 32, так и для всех 32, при этом в документации к процессору ограничения на разгон могут быть не указаны. Сравнивая два поколения EPYC и один Threadripper, мы выяснили, что в одном процессоре «турбобустят» лишь 2 ядра, в другом - 4, а в третьем - 32. При такой расстановке сил, логично брать в расчёт номинальную частоту ядер в системе с хорошим охлаждением, подразумевая что процессор не уйдёт в троттлинг.

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

3. Соотношение ядра на Ватт мощности

В Европейских странах с высокими ценами на электроэнергию, IT-компании иногда используют коэффициент соотношения общего TDP и числа ядер. Эта метрика не подходит для сравнения AMD vs Intel, потому что может возникнуть ситуация, когда у AMD процессор - это SoC, а у Intel нужно учитывать ещё и энергопотребление чипсета. Эта метрика не подходит для сравнения «1 сокет vs 2 сокета», потому что дополнительное процессорное гнездо, как правило, требует более серьёзного охлаждения мощными вентиляторами, которые убьют всю выгоду.

Эта метрика подходит только для одного редкого случая с процессорами AMD, когда в один и тот же сервер можно установить CPU с разной архитектурой: EPYC Napples, имеющий 32 ядра или EPYC Rome, имеющий 64 ядра, при этом все остальные компоненты остаются без изменения. Компания Intel подобными подарками нас не балует и наоборот любит менять сокеты по поводу и без, так что рекомендую не заморачиваться с вопросами соотношения энергопотребления на ядро.

4. Очки бенчмарка на доллар

Казалось бы, самым логичным выглядит соотношение производительности, которую даёт какой-то тест на каждый вложенный доллар, но и тут есть недостатки. Во-первых, вам нужно чётко понимать, как параллелятся ваши нагрузки, и имеет ли смысл тестировать 64-ядерный CPU на задаче, которая не умеет работать более чем в 8 потоков?

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

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

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

Конечно, если ваша основная задача - рендеринг на CPU, то очки Cinebench на доллар - это ваша основная метрика, но опять же, с изменением типа рендерера, она может вас подвести.

Почему невозможны сложные коэффициенты типа «вт/ядро/канал.памяти/кэш»?

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

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

Заключение

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

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

Михаил Дегтярёв (aka LIKE OFF)
22/06.2020


Комментарии

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

Эволюция киберугроз в OT-средах

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

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

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

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

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

Как вода вытесняет воздух в суперкомпьютерах Lenovo

Пару лет назад максимальный предел воздушного охлаждения составлял 600Вт на юнит. Сегодня теоретически с помощью воздуха возможно отвести до 1.2кВт на юнит. Однако, в будущем потребуется отводить уже 2 КВт, и без жидкостного охлаждения здесь не об

Обзор кулера Cooler Master Wraith Ripper для рабочих станций на Threadripper. Сравнение с СЖО на 250-Ваттном CPU!

Если вы подбираете мощную рабочую станцию на 32-ядерном процессоре AMD, то вопрос охлаждения должен для вас быть особенно важным. В этом обзоре на примере кулера для игровых процессоров Threadripper, мы поговорим о том, что может о