Обзор технологии Intel® Speed Select Technology

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

Что такое Intel® Speed Select Technology

Intel® Speed Select (SST) — это технология, которая предоставляет возможность гибкой настройки производительности, доступная на процессорах Intel® Xeon® Scalable с суффиксом «Y».

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

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

Рассмотрим на примере Intel® Xeon Gold 6336Y.

Название профиляКоличество ядерБазовая частота, ГГцМаксимальная частота, ГГцTDP, Ватт
Base242.43.6185
Config 3122.93.6150
Config 483.13.6140

По умолчанию процессор работает в профиле «Base» с 24 ядрами и базовой частотой 2.4 ГГц. В случае, если сервер используется с включенной опцией Intel® Turbo Boost, то снижение количества ядер приведет лишь к снижению энергопотребления и тепловыделения.

При использовании технологии SST на серверах с выключенной опцией Turbo Boost прирост базовой частоты ощутим.

Как включить

Выбор профиля технологии SST производится в Setup Utility при загрузке сервера. Местонахождение настроек и их именование может отличаться в зависимости от используемой материнской платы. В нашем случае путь до настроек следующий:

Setup Utility -> CPU Configuration -> Advanced Power Management Configuration -> CPU P States Configuration

На серверах, арендуемых в Selectel, указанные действия выполняются силами технической поддержки через запрос в тикете.

Настройки Intel® SST в Aptio Setup Utility

Меню настроек SST содержит множество пунктов и краткую таблицу с характеристиками доступных профилей. Рассмотрим наиболее интересные:

  • SpeedStep (Pstates) — включает или отключает управление производительностью процессора через P-states.
  • Intel SST-PP (Speed Select Technology — Performance Profile) — позволяет выбрать один из доступных профилей, описанных в таблице ниже.
  • Dynamic SST-PP — включает режим изменения профиля без перезагрузки сервера.
  • Activate SST-BF (Speed Select Technology — Base Frequency) — включает возможность повышения базовой частоты для определенных ядер ценой снижения для остальных.
  • Configure SST-BF — определяет кто должен конфигурировать ядра с повышенной частотой.
  • Turbo Mode — включает или выключает режим Intel® Turbo Boost.
Разница базовых частот при включенной опции SST-BF (источник intel.ru)

Функция Base Frequency позволяет выбрать определенные процессорные ядра и повысить на них тактовую частоту, снизив частоту остальных ядер. Это позволяет ускорить выполнение приложений, критичных к тактовой частоте.

Внесение изменений в раздел настроек Intel Speed Select обычно требует перезагрузки и манипуляций в Setup Utility. Однако, если включить опцию Dynamic SST-PP, то изменение числа ядер возможно прямо на «живой» системе.

При включенной опции Dynamic SST-PP выбор профиля в Setup Utility недоступен.

Для настройки SST-PP и SST-BF необходима утилита intel-speed-select. Хотя данная утилита включена в исходные коды ядра, в некоторых дистрибутивах Linux она отсутствует. Установить ее достаточно просто.

Посмотрим на установленную версию ядра:

uname -a

Сперва скачиваем исходный код вашей версии ядра, например, с kernel.org.

Далее распаковываем и компилируем требуемую утилиту.

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.143.tar.xz
tar xvf linux-5.4.143.tar.xz
cd linux-5.4.143/tools/power/x86/intel-speed-select/
make
sudo make install

Теперь утилита доступна для использования. Включаем профиль 3:

intel-speed-select perf-profile set-config-level -l 3 -o

В некоторых случаях выполнение этой команды может привести к ошибке.

Option is set to online/offline
offline cpu 0
intel-speed-select: /sys/devices/system/cpu/cpu0/online open failed: No such file or directory

Это связано с тем, что для данного процессора ядро 0 (самое первое, на котором загружается ОС) не может быть отключено по умолчанию. Решить эту проблему просто: включить поддержку отключения первого ядра через добавление параметра cpu0_hotplug в аргументы ядра.

При использовании загрузчика GNU GRUB 2 достаточно дополнить переменную GRUB_CMDLINE_LINUX_DEFAULT в файле /etc/default/grub и выполнить команду update-grub.

Теперь, когда мы умеем настраивать процессор, перейдем к тестам.

Тестирование

Для тестирования мы используем GeekBench 5. Мы провели тесты всех профилей с включенным и выключенным Turbo Boost. Результаты представлены в таблицах ниже.

Single-Core Score

ПрофильС Turbo BoostБез Turbo Boost
Base1286848
Config 312881081
Config 412851155

Multi-Core Score

ПрофильС Turbo BoostБез Turbo Boost
Base3718428328
Config 32446920649
Config 41873715456

Легко заметить, что с режимом Turbo Boost производительность одноядерных вычислений не изменилась, а в многоядерных задачах производительность упала. Однако, если решаемые задачи не предполагают использования Turbo Boost, то тонкая настройка с помощью Intel® SST может быть актуальна.

Заключение

Технология Intel® SST — это специфичная технология, которая позволяет «изменять» конфигурацию сервера без физического вмешательства. Эта технология имеет узкую специализацию и заточена под задачи, которые не используют режим Turbo Boost.

Что еще почитать по теме

Михаил Фомин 29 апреля 2022

Деплой — это лава! Как Managed Kubernetes помогает бизнесу тушить пожары

Рассказываем, как бизнес переходит от монолита к микросервисам и как Managed Kubernetes позволяет эффективнее управлять инфраструктурой.
Михаил Фомин 29 апреля 2022
Дарья Маташина 25 апреля 2022

Разбор: для каких проектов и задач необходим CDN и кому он вреден

CDN помогает ускорить загрузку контента, а также снизить нагрузку на серверы. О том, кому и в каких ситуациях подойдет и не подойдет сервис — в тексте.
Дарья Маташина 25 апреля 2022
Ульяна Малышева 22 апреля 2022

Container Registry: кому нужен и как использовать готовый реестр контейнеров

Рассказываем о решении, которое ускорит деплой приложений и сделает работу с контейнерами более удобной.
Ульяна Малышева 22 апреля 2022

Новое в блоге

Сравнение способов организации мультиклауд-решений

Рассказываем о типах мультиклауд-решений и схемах подключения к зарубежным облакам

Сетевые протоколы: базовые понятия и описание самых востребованных правил

В мире существует более 7 000 протоколов, и их число продолжает расти. Рассказываем о самых часто используемых правилах взаимодействия устройств в сети.

Готовые кластеры Kubernetes: легкий старт, автоматизация и другие преимущества перед self-hosted

Рассказываем, чем отличается Managed Kubernetes от самостоятельного развертывания инфраструктуры. Объясняем, кому подойдет решение.
T-Rex 18 мая 2022

Что такое терминальный сервер и зачем он нужен

Разбираемся, что такое терминальный сервер, чем он похож на VDI и как подобрать сервер под роль терминала.
T-Rex 18 мая 2022