`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Что для вас является метрикой простоя серверной инфраструктуры?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Высокочастотные процессоры в серверах

+66
голосов

На каких процессорах брать сервер: чтобы ядер побольше или с частотой повыше? Зависит от специфики приложений.

Интегральная производительность сервера зависит от множества параметров, а вклад компонентов определяется их ролью в конкретном наборе приложений. Платформа обычно строится вокруг CPU, с него и начинают. Если не вдаваться в детали, позиционирование процессоров определяют два ключевых параметра: количество ядер и тактовая частота. Что и каким приложениям нужно – первый из вопросов, которым надо озаботиться пользователю. 

Частота

Разработчики клиентского ПО сегодня сознательно уходят от оптимизации его производительности под аппаратные платформы (за исключением ряда узких сфер) - современный рынок диктует универсальность и высокую скорость вывода продуктов на рынок.

Меняется характер вычислений – из-за перехода на Web-приложения / Web-сервисы и применения в них языков высокого уровня вроде Java/Python.  Такая нагрузка, по сути, является “интерпретацией”/ “исполнением с прекомпиляцией” программного кода каждый раз при его исполнении / первом исполнении. CPU выполняет в 8-10 раз больше операций, чем при запуске уже откомпилированного кода. Код отрабатывается линейно, чаще всего в один поток. К приложениям с интерпретацией кода относится 1С:Предприятие и подавляющее большинство веб-сайтов (frontend).

Меняется подход к построению логики обработки (backend). Вместо написания единого кода переходят на использование набора готовых сервисов, сокращая время разработки, внедрения и стоимость решения.  Передачу данных между сервисами обеспечивают “человеко-читаемые”, по сути, текстовые форматы xml или  JSON. Для преобразования текста в структурированные данные используется синтаксический анализатор (парсер), который работает линейно в один поток. Примером работы парсера с объемными данными служит программа M.E.Doc, «чудеса быстродействия» которой при обработке больших пакетов документов хорошо знакомы бухгалтерам и ИТ-персоналу.

Ожидать изменения ситуации с ПО не приходится – для кросс-платформенности, переносимости кода и ускорения разработки и далее будет использоваться неоптимизированный интерпретируемый код с обменом данными между сервисами. Сколько бы ни было у CPU ядер, скорость исполнения такого кода для конкретного пользователя не вырастет – нагрузка-то однопоточная. Другое дело частота. Причем, даже не всего CPU, а того ядра, на котором исполняется код данного пользователя. В меньшей степени производительность зависит от объема кэш-памяти всех уровней, скорости доступа к оперативной памяти, других параметров CPU и сервера в целом.

Как отличается нагрузка «одного пользователя» от нагрузки «множества пользователей»? Если клиентов много, количество  процессорных ядер имеет значение (об этом ниже). Но частота CPU в реальных бизнес-приложениях очень важна! Одно не заменяет другое.

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

Другой пример  - масштабные расчеты, которые система не умеет распараллеливать. Так начисляется заработная плата в приложении 1С:Предприятие 8 «Зарплата и Управление Персоналом» (и не только в нем). Ввиду заложенного алгоритма, бухгалтер самостоятельно (без программиста) определяет последовательность начислений и удержаний, а также формулу расчета в виде справочных данных. Сам расчёт идет последовательно, линейно и однопоточно (первый по списку сотрудник – его начисления – его удержания, второй сотрудник, и так далее). Расчет может длиться часами, а число ядер CPU на его скорость практически не влияет - в отличие от частоты, тех самых одного-двух ядер, занятых делом.

Краткое резюме. Высокая тактовая частота (“гигагерцы”) будет критичным параметром там, где есть:
- “слабое звено” в лице множества конечных пользователей, с их ожиданием отклика (нажимают клавиши клавиатуры, вводят и получают информацию люди, не компьютеры)
- любая линейная обработка данных.

Ядра

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

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

Многоядерность – вынужденная мера, ввиду невозможности существенно поднять частоту, оставаясь в том же термопакете. В общем случае, одно быстрое процессорное ядро с вдвое большей частотой при 100% загрузки в многопоточной среде способно сделать столько же операций, сколько и два медленных процессорных ядра. Но в однопоточной среде два медленных процессорных ядра сделают вдвое меньше, чем одно быстрое с удвоенной частотой (одно ядро будет простаивать). Повторюсь, в задачах, требующих быстрого отклика (как интернет-магазины), при неполной загрузке (типовой для таких порталов до 70%) отклик высокочастотного процессора будет заметно быстрее.

Где предпочесть «ядра», а не «гигагерцы»?

Везде, где нет возможности поднять производительность за счет частоты.

А еще из финансовых соображений - в ситуациях, когда время выполнения задачи процессором в разы меньше, чем затраты на другие операции: передачу контента по сети Internet, отрисовку элементов интерфейса на устройстве, ожидание отклика от других устройств/сервисов, запись файлов на медленные носители и т.д. Классические примеры сервисов, где пользователь спокойно подождет пару секунд – доступ к e-mail и в различные персональные файловые хранилища, передача файлов. Из сервисов коллективного использования почти не реагируют на частоту CPU размещенные в контейнерах сайты-визитки компаний, инструменты коллективной работы с файлами и контентом, различные фоновые сервисы (DHCP, FTP, AD) в ненагруженных средах.

Турбо-режим

Способность серверного процессора работать на повышенной частоте не имеет отношения к практике разгона процессоров для ПК. В терминологии Intel технология Turbo Boost - это “максимально возможная частота, достигаемая в условиях, позволяющих процессору использовать режим ускорения ”. Обтекаемая формулировка в переводе на понятный язык означает, что увеличение базовой частоты ядер при пиковых нагрузках: а) автоматическое, б) кратковременное, в) привязано к типу рабочей нагрузки, г) лимитировано по ядрам, д) прекращается, когда мощность, потребляемый ток и температура выходят на пороговые значения.

Рассмотрим на примере процессора Intel Xeon 6130 класса Gold. Его 16 ядер работают на штатной частоте 2.1 GHz, при максимальной (в режиме Turbo Boost) аж 3.70 GHz (!). Суровая правда: в режиме Turbo Boost процессор должен остаться в том же термопакете, что и при частоте 2.1 GHz. Но мы помним, что с ростом частоты энергопотребление и энерговыделение растут квадратично, а не линейно. Получается, частота одних ядер может быть поднята только в случае простоя остальных ядер. При загрузке всего одного ядра и простое всех остальных  это одно ядро может быть разогнано до частоты, существенно выше штатной. Ненадолго. Два загруженных ядра, при простое остальных, уже не выйдут на такую пиковую частоту.  Если процессор загружен на 70-80% и более, все его ядра будут дружно работать на штатной частоте.

Какой прок от Turbo Boost? Бывает, повседневной нужды в высокой производительности нет, но есть периодическая потребность для одного-двух потоков выполнить операции быстрее (например, при расчёте зарплаты). В отсутствие других задач эффект от Turbo Boost возможен. В общем же случае информацию о работе в турборежимах следует воспринимать сдержанно. Это маркетинг.

Цена CPU

По ценообразованию процессоров можно судить об их практической востребованности, понять значимость частоты/числа ядер. Обратимся к сайту ark.intel.com за техническими характеристиками и отпускными ценами, возьмем для примера

     Многоядерный низкочастотный Intel Xeon Gold 6130 (16 ядер, 2.1 GHz) - $ 1894
     Малоядерный высокочастотный Intel Xeon Gold 6144 ( 8 ядер, 3.5 GHz)  - $ 2925

Сравним их «энерговооруженность» по простой (пусть, наивной) метрике «ядрогерцы» - произведению числа ядер на тактовую частоту. Удельная стоимость «ядрогерца»:

Xeon Gold 6130:  $ 1894 / (16 * 2,1) = 1894 / 33,6 = $ 56,37
Xeon Gold 6144:  $ 2925 / (8 * 3,5) = 2925 / 28 = $ 104,46

Получается, компания Intel (и рынок вместе с ней) высоко ценит способность всех ядер процессора одновременно работать на в полтора раза более высокой частоте. Удвоение количества ядер так не ценится.

Что же купить?

Главное при выборе сервера (и его CPU) – соблюдать принцип разумной достаточности, оправданности вложений. Спецификой и скоростью отклика приложений не исчерпывается список критериев. Решающее значение может иметь совсем другое – например, схема лицензирования коммерческого ПО. К примеру, лицензия Microsoft Windows Server 2016 Standard покрывает 16 физических процессорных ядер. Для превышения надо докупать дополнительные лицензии, с шагом по два ядра. Поядерно лицензируется и MS SQL Server. Это лишний повод задуматься над покупкой высокочастотных, а не многоядерных процессоров.

 


Вы можете подписаться на наш Telegram-канал для получения наиболее интересной информации

+66
голосов

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT