Перейти к содержимому

Energy efficient turbo что это

  • автор:

Установки BIOS

Настройка BIOS вашей системы является важным шагом в конфигурировании кластера для предоставления наилучшей смеси производительности приложения и мощности эффективности. В данной главе мы определим установки, которые могут максимизировать производительность инфраструктуры Intel ® Omni-Path и приложения. Оптимально следует применить настройки аналогичные приводимым в процессе фаз подъёма кластера и его валидации чтобы продемонстрировать что ваша инфраструктура работает ожидаемым образом. В долгосрочной перспективе вы можете пожелать установить свои BIOS для предоставления более энергосберегающих настроек, даже если они могут снизить до некоторой степени общие производительности приложения и инфраструктуры.

Семейства Intel ® Xeon ® Processor E5 v3 и v4

В приводимой далее таблице приводятся установки BIOS в сервере с ЦПУ семейства процессоров Intel ® Xeon ® E5 V3 и V4, рекомендуемые для всего, что связано с производительностью инфраструктуры Intel ® Omni-Path:

Политика энергопотребления или производительности ЦПУ

Производительный или Сбалансированная производительность 1

Конфигурация рабочей нагрузки

Uncore Frequency Scaling (Масштабирование частоты вне ядра)

Расширенная технология Intel SpeedStep ®

Настраиваемый Intel TDP

Технология Intel ® Turbo Boost

Intel ® VT for Directed I/O (VT-d)

Energy Efficient Turbo

Технология Intel ® Hyper-Threading

не рекомендуется (проверьте в своей конфигурации чтобы проверить даёт ли она преимущества)

IOU Non-posted Prefetch

Запрещёно (по возможности) 2

Snoop Holdoff Count

1. Для получения более согласованной производительности режима Turbo для запрашиваемых рабочих нагрузок установите значение в «Производительный». Одно из двух указанных значений даст в результате хорошую производительность инфраструктуры Intel ® Omni-Path.

2. Доступно в версии BIOS R016 процессора Intel ® Xeon ® E5 v4.

3. В некоторых версиях BIOS также именуется как Memory.SocketInterleave=NUMA

4. Иногда установки PCIe* Max Payload Size и Max Read Req отсутствуют в BIOS. В этом случае могут быть сделаны описанные в Параметры модуля драйвера HFI1 установки параметра pcie_caps=0x51 для вашего драйвера Intel ® OPA (что подразумевает установку MaxPayLoad в 256B и MaxReadReq в 4096B).

5. В некоторых BIOS также именуется как Snooped Response Wait Time for Posted Prefetch .

Процессоры Intel ® Xeon ® Scalable

Для ЦПУ Intel ® Xeon ® Scalable рекомендуется следующее:

  1. Установить самую последнюю версию BIOS доступную у вашего производителя со следующими или подобными настройками:
Таблица 2-2. Рекомендуемые установки BIOS для процессоров Intel ® Xeon ® Scalable

Настройка BIOS Значение
Политика энергопотребления или производительности ЦПУ Производительный или Сбалансированная производительность a
Технология Intel ® Hyper-Threading не рекомендуется (проверьте в своей конфигурации чтобы проверить даёт ли она преимущества)
Кластер Sub_NUMA Запрещено b
Snoop Holdoff Count 9 c
Uncore Frequency Scaling (Масштабирование частоты вне ядра) Разрешено
WFR Uncore GV Rate Reduction Запрещено (по возможности) d
Замечания: a. Для получения более согласованной производительности режима Turbo для запрашиваемых рабочих нагрузок установите значение в «Производительный». Одно из двух указанных значений даст в результате хорошую производительность инфраструктуры Intel ® Omni-Path. b. Также в некоторых BIOS именуется как Cluster-on-Die . c. В некоторых BIOS также именуется как Snooped Response Wait Time for Posted Prefetch . d. Может иметь различные названия в разных BIOS.

Процессоры Intel ® Xeon Phi™ x200

Для продуктов семейства Intel ® Xeon Phi™ x200 рекомендуется следующее:

  1. Установить самую последнюю версию BIOS доступную у вашего производителя со следующими или подобными настройками:
Таблица 2-3. Рекомендуемые установки BIOS для процессоров Intel ® Xeon ® Scalable

Настройка BIOS Значение
Uncore setting: Cluster Mode По выбору пользователя в зависимости от приложения a
Intel ® VT for Directed I/O (VT-d) Разрешено b
Processor C6 Разрешено
Snoop Holdoff Count 9 c
Замечания: a. Зависит от приложения, однако режим «Quadrant» показвывает определённые преимущества в достижении пиковых значений скорости обмена сообщениями MPI. b. Хотя виртуализация и не поддерживается в семействе продуктов Intel ® Xeon Phi™ x200, процессоры Intel ® Xeon Phi™ x200 работают в режиме X2APIC, который требует чтобы Intel ® VT for Directed I/O (VTd) оставался включённым. Если Intel ® VT for Directed I/O (VTd) обнаруживается в вашем BIOS, мы рекомендуем установить его в значение «Разрешено». При проверке настроек хоста через сценарий verifyhosts.sh или opaverifyhosts , пожалуйста, не выбирайте/ не включайте в состав тест vtd . c. В некоторых BIOS также именуется как Snooped Response Wait Time for Posted Prefetch .

Energy efficient turbo что это

Процессоры Intel поддерживают несколько технологий для оптимизации энергопотребления. В этой статье (перевод [1]) дается обзор p-состояний (оптимизация напряжения питания и частоты CPU во время работы) и c-состояний (оптимизация потребления мощности, если ядро не выполняет ни одной инструкции).

[P-состояния]

Во время выполнения кода операционная система и CPU могут оптимизировать энергопотребление с помощью различных P-состояний (P это сокращение от «performance», что означает «производительность»). В зависимости от требований, CPU работает на разных частотах. Состояние P0 соответствует самой высокой частоте (с самым высоким напряжением питания).

Для процессоров Intel до архитектуры Haswell/Broadwell, желаемая частота (и соответствующее ей напряжение питания) указывается операционной системой путем записи соответствующих величин в специальные регистры процессора [2][3].

В архитектуре Skylake операционная система может оставить управление P-состояниями аппаратуру CPU (Speed Shift Technology, Hardware P-states [4]). С Kaby Lake эти функции были дополнительно оптимизированы [5].

processor P state vs speed shift

Speed Schift (сдвиг скорости). P-состояния определяются в BIOS, и управляются операционной системой. Технология Speed Schift дает полное или частичное управление частотой тактирования CPU (может осуществляться либо во всем диапазоне, либо в узком окне). Speed Schift требует поддержки со стороны операционной системы (Windows 10 с новыми обновлением эту функцию поддерживает), также требуется любой процессор Intel 6 Skylake. Сдвиг скорости означает ускоренный отклик на запросы изменения производительности со стороны ПО (JavaScript, инструменты офиса, веб-браузеры). Технология сдвига скорости обеспечивает увеличение производительности для обычных задач, при этом незначительно снижается общее энергопотребление, т. е. эффективность работы всей системы повышается.

[C-состояния]

В отличие от P-состояний, которые были разработаны для регулирования потребления мощности во время выполнения кода (т. е. в нормальном рабочем состоянии процессора), C-состояния используются для оптимизации энергопотребления в режиме ожидания (idle mode, т. е. когда никакой код процессором не выполняется).

Типовые C-состояния следующие:

C0 – Active Mode: код выполняется, это состояние соответствует одному из P-состояний.
C1 – Auto Halt (автоматическая приостановка).
C1E – Auto halt, low frequency, low voltage (автоматическая приостановка с пониженной частотой и напряжением питания).
C2 – Временное состояние перед переходом в C3. Память в рабочем состоянии.
C3 – Сброс кэшей L1/L2 (flush), выключение тактовых частот.
C6 – Сохранение состояний ядра перед выключением, и выключение PLL (т. е. прекращение синтеза тактовых частот).
C7 – C6, плюс может быть сброшен LLC (LLC означает кэш самого высокого уровня, т. е. самая медленная память кэш).
C8 – C7, плюс должен быть сброшен LLC.

processor C states

Примечание *: показано в грубом приближении.

C-состояния можно отличить друг от друга по C-состояниям ядра (Core C-states или CC-states), состояниям корпуса (Package C-states или PC-states) и логическим состояниям. В большинстве случаев операционная система устанавливает определенное состояние для ядра путем выполнения команды MWAIT.

processor Package and Core C States

Примечание: «состояние ядра» (core state) относится к ядру, которое находится в состоянии самого большого потребления энергии (наиболее активно).

[Запрет в BIOS функции CPU Power Saving]

В некоторых случаях рекомендуется деактивировать в BIOS настройки экономии питания CPU. Здесь показано, где найти эти опции и как их запретить, чтобы опции управления питанием (CPU P State Control и CPU C State Control) были полностью запрещены в BIOS (на примере материнской платы Supermicro X10DRi и процессора Intel Xeon E5 2620v4.

Как запретить CPU Power Saving:

1. Во время начального процесса загрузки (сразу после включения питания или сброса) нажмите специальную клавишу для входа в BIOS. Чаще всего это Del (Delete) или F2, для материнской платы Supermicro X10DRi это клавиша Delete.

BIOS CPU configuration

2. Перейдите в раздел настроек Advanced CPU Configuration -> Advanced Power Management Configuration.

BIOS Advanced Power Management Configuration

3. Поменяйте настройку Power Technology в состояние Custom и Energy Efficient Turbo в состояние Disable.

BIOS Power Technology, Energy Efficient Turbo

4. Перейдите в раздел CPU P State Control, деактивируйте EIST (P-States) and Turbo Mode.

BIOS EIST, Turbo Mode

5. Перейдите в раздел CPU C State Control, поменяйте Package C State Limit на C0/C1 state и деактивируйте CPU C3 Report, CPU C6 Report и Enhanced Halt State (C1E).

BIOS Package Limit, C0/C1 State

[Ссылки]

1. Processor P-states and C-states site:thomas-krenn.com.
2. Intel Xeon Processor E3-1200 V3 site:intel.com.
3. What exactly is a P-state? site:intel.com.
4. [IDF15]Intel’s 6th Gen Skylake Unwrapped – CPU Microarchitecture, Gen9 Graphics Core and Speed Shift Hardware P-State site:wccftech.com.
5. Intel Kaby Lake: 14nm+ und optimiertes Speed Shift steigern Performance site:thomas-krenn.com.

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

Энергоэффективность становится все более важной в средах предприятия и центра обработки данных, и она добавляет еще один набор компромиссов в сочетании параметров конфигурации. При управлении серверами важно убедиться, что они работают максимально эффективно при удовлетворении потребностей в производительности рабочих нагрузок. Windows Server оптимизирован для отличной энергетической эффективности с минимальным воздействием на производительность в широком диапазоне клиентских рабочих нагрузок. Настройка управления питанием процессора (система УПП) для плана Windows Server Balanced Power Plan описывает рабочие нагрузки, используемые для настройки параметров по умолчанию в нескольких версиях Windows Server, и предоставляет рекомендации по настройке.

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

Выбор метрик настройки

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

Настройка параметров windows Server по умолчанию использует энергоэффективность в качестве ключевой метрики для балансировки мощности и производительности. Эффективность энергии — это соотношение работы, выполняемой с средней мощностью, необходимой в течение указанного периода времени.

energy efficiency formula

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

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

Измерение энергопотребления системы

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

Если сервер имеет необходимую поддержку, вы можете использовать функции измерения электроэнергии и бюджетирования в Windows Server 2016 для просмотра потребления энергии на уровне системы с помощью Монитор производительности.

Один из способов определить, имеет ли сервер поддержку измерения и бюджетирования, заключается в проверке каталога Windows Server. Если модель сервера соответствует новой квалификации расширенного управления питанием в программе сертификации оборудования Windows, она гарантирует поддержку функций измерения и бюджетирования.

Еще одним способом проверка для поддержки измерения является ручной поиск счетчиков в Монитор производительности. Откройте Монитор производительности, выберите «Добавить счетчики», а затем найдите группу счетчиков Power Meter.

Если именованные экземпляры счетчиков питания отображаются в полях с метками «Экземпляры выбранного объекта«, платформа поддерживает измерение. Счетчик питания , показывающий мощность в уоттах, отображается в выбранной группе счетчиков. Точное производное значение данных питания не указано. Например, это может быть мгновенное рисование энергии или средняя черпать мощность в течение некоторого интервала времени.

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

Чтобы установить базовый план, следует измерять среднюю мощность, необходимую для различных точек загрузки системы, от простоя до 100 процентов (максимальная пропускная способность) для создания линии загрузки. На следующем рисунке показаны строки загрузки для трех примеров конфигураций:

sample load lines

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

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

Диагностика проблем с эффективностью энергии

PowerCfg.exe поддерживает параметр командной строки, который можно использовать для анализа бездействия энергии сервера. При запуске PowerCfg.exe с параметром /energy средство выполняет 60-секундный тест для обнаружения потенциальных проблем с эффективностью энергии. Средство создает простой HTML-отчет в текущем каталоге.

Чтобы обеспечить точный анализ, убедитесь, что все локальные приложения закрыты перед запуском PowerCfg.exe.

Сокращенные показатели таймера, драйверы, которые не поддерживают управление питанием, и чрезмерное использование ЦП является несколькими из проблем поведения, обнаруженных командой powercfg /energy . Это средство обеспечивает простой способ выявления и устранения проблем управления питанием, что может привести к значительной экономии затрат в большом центре обработки данных.

Дополнительные сведения о PowerCfg.exe см. в разделе «Параметры командной строки Powercfg».

Использование планов питания в Windows Server

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

План Description Распространенные применимые сценарии Основные моменты реализации
Баланс (рекомендуется) Значение по умолчанию. Нацелена на хорошую энергоэффективность с минимальным воздействием на производительность. Общие вычисления Соответствует емкости требованиям. Функции экономии энергии балансируйте мощность и производительность.
высокопроизводительная Повышает производительность за счет высокой потребления энергии. Применяются ограничения на питание и тепловую мощность, операционные расходы и рекомендации по надежности. Приложения с низкой задержкой и код приложения, чувствительные к изменениям производительности процессора Процессоры всегда блокируются в максимальном состоянии производительности (включая частоту turbo). Все ядра незапаркованы. Тепловые выходные данные могут быть значительными.
Энергосбережения Ограничивает производительность для экономии энергии и снижения эксплуатационных затрат. Не рекомендуется без тщательного тестирования, чтобы убедиться, что производительность является достаточной. Развертывания с ограниченным бюджетом питания и тепловыми ограничениями Ограничение частоты процессора в процентах от максимального (если поддерживается) и включает другие функции экономии энергии.

Эти планы питания существуют в Windows для чередования текущих (AC) и прямых текущих (DC) систем питания, но предполагается, что серверы всегда используют источник питания AC.

Дополнительные сведения о планах питания и конфигурациях политики питания см. в параметрах командной строки Powercfg.

Некоторые производители серверов имеют собственные возможности управления питанием с помощью параметров BIOS. Если операционная система не контролирует управление питанием, изменение планов питания в Windows не повлияет на питание и производительность системы.

Настройка параметров управления питанием процессора

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

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

Аппаратные P-состояния Intel (HWP)

Начиная с процессоров Intel Broadwell под управлением WS2016 Windows система УПП использует аппаратные P-состояния Intel (HWP). HWP — это новая возможность совместного управления производительностью оборудования и программного обеспечения. Если HWP включен, ЦП отслеживает активность и масштабируемость и выбирает частоту в масштабе оборудования. ОС больше не требуется для мониторинга действий и выбора частоты с регулярными интервалами. Переключение на HWP имеет несколько преимуществ:

  • Быстрое реагирование на временные рабочие нагрузки. Интервал windows система УПП проверка устанавливается как 30 мс по умолчанию и может быть сокращен как минимум до 15 мс. Однако HWP может быстро настроить частоту, как каждые 1 мс.
  • ЦП лучше знает о производительности оборудования для каждого P-состояния. Это может сделать лучший выбор частоты процессора для достижения оптимальной эффективности питания.
  • ЦП может принимать другие аппаратные ресурсы, например память, GPU и т. д., чтобы обеспечить оптимальную эффективность питания при определенных TDP (тепловая мощность).

Windows по-прежнему может задать минимальное и максимальное состояние процессора, чтобы ограничить диапазон частот, которые могут выполнять процессоры. Он также может задать следующий параметр политики предпочтения энергопотребления процессора (EPP), чтобы указать HWP на пользу мощности или производительности.

  • Политика предпочтения энергопотребления процессора для настройки баланса между питанием и производительностью. Более низкое значение способствует производительности, а более высокое значение благоприятует власти. Значение может быть от 0 до 100. Значение по умолчанию 50 для балансировки мощности и производительности.

Следующие команды снижают значение EPP до 0 в текущем плане питания, чтобы полностью повысить производительность над питанием:

Powercfg -setacvalueindex scheme_current sub_processor PERFEPP 0 Powercfg -setactive scheme_current 

Минимальное и максимальное состояние производительности процессора

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

Значения для параметров минимальной производительности процессора и максимального состояния производительности процессора выражаются в процентах от максимальной частоты процессора с значением в диапазоне от 0 до 100.

Если для сервера требуется ультра-низкая задержка, инвариантная частота ЦП (например, для повторяемого тестирования) или самые высокие уровни производительности, может не потребоваться переключение процессоров на состояния низкой производительности. Для такого сервера можно окупать минимальное состояние производительности процессора на 100 процентов, выполнив следующие команды:

Powercfg -setacvalueindex scheme_current sub_processor PROCTHROTTLEMIN 100 Powercfg -setactive scheme_current 

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

Powercfg -setacvalueindex scheme_current sub_processor PROCTHROTTLEMAX 75 Powercfg -setactive scheme_current 

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

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

Алгоритмы управления питанием на основе ЦП обычно используют среднее использование ЦП в течение времени проверка окне, чтобы определить, требуется ли увеличить или уменьшить частоту. Это может повредить задержку рабочих нагрузок дискового ввода-вывода или сетевых тяжелых рабочих нагрузок. Логический процессор может быть неактивным во время ожидания завершения ввода-вывода диска или сетевых пакетов, что делает общее использование ЦП низким. В результате управление питанием будет выбирать низкую частоту для этого процессора. Эта проблема также существует в управлении питанием на основе HWP. ЦП и потоки, обрабатываемые завершением ввода-вывода или сетевыми пакетами, находятся в критическом пути и не должны работать с низкой скоростью. Чтобы устранить эту проблему, Windows система УПП учитывает количество ЦП. Если число DPC превышает определенное пороговое значение в прошлом окне мониторинга, система УПП введет период отклика операций ввода-вывода и повышает уровень частоты до более высокого уровня. Периодичности будет сбрасываться, когда количество DPC достаточно низкое в течение некоторого времени. Поведение можно настроить следующими параметрами.

Параметр Description Значение по умолчанию Минимальное значение Максимальное значение
Пороговое значение включения переопределения скорости реагирования процессора Количество ЦП в проверка perf, над которыми переопределяется скорость отклика процессора, должна быть включена 10 0 Неприменимо
Переопределение скорости реагирования процессора отключает пороговое значение Количество ЦП в проверка под которым переопределяется скорость отклика процессора, должна быть отключена 5 0 Неприменимо
Переопределение скорости реагирования процессора Количество последовательных проверка perf, которые должны соответствовать пороговому значению включения до включения переопределений скорости отклика процессора. 1 1 100
Переопределение скорости реагирования процессора Количество последовательных проверка perf, которые должны соответствовать пороговому значению отключения, прежде чем переопределения скорости отклика процессора отключены 3 1 100
Скорость реагирования процессора переопределяет уровень производительности Минимальная допустимая производительность процессора при включении переопределения скорости реагирования процессора 100 0 100
Потолок предпочтения производительности процессора переопределяется Максимальное значение политики предпочтения производительности энергии при переопределении скорости отклика процессора включена 100 0 100

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

Powercfg -setacvalueindex scheme_current sub_processor RESPENABLETHRESHOLD 100 Powercfg -setacvalueindex scheme_current sub_processor RESPDISABLETHRESHOLD 1 Powercfg -setacvalueindex scheme_current sub_processor RESPENABLETIME 10 Powercfg -setacvalueindex scheme_current sub_processor RESPDISABLETIME 1 Powercfg -setacvalueindex scheme_current sub_processor RESPPERFFLOOR 5 Powercfg -setacvalueindex scheme_current sub_processor RESPEPPCEILING 50 Powercfg -setactive scheme_current 

Режим повышения производительности процессора

Эта настройка параметра применяется только к системам, не относящихся к HWP.

Технологии Intel Turbo Boost и AMD Turbo CORE — это функции, которые позволяют процессорам достичь дополнительной производительности, когда это наиболее полезно (то есть при высокой нагрузке системы). Однако эта функция увеличивает потребление энергии ядра ЦП, поэтому Windows Server 2016 настраивает технологии Turbo на основе используемой политики питания и конкретной реализации процессора.

Turbo включен для планов питания высокой производительности на всех процессорах Intel и AMD и отключен для планов питания Power Saver. Для сбалансированных планов питания в системах, использующих традиционное управление частотой на основе состояния P, Turbo включен по умолчанию только в том случае, если платформа поддерживает регистр EPB.

Регистр EPB поддерживается только в процессорах Intel Westmere и более поздних версий.

Для процессоров Intel Nehalem и AMD Turbo по умолчанию отключается на платформах на основе P-состояний. Однако если система поддерживает управление производительностью процессора совместной работы (CPPC), который является новым альтернативным режимом взаимодействия производительности между операционной системой и оборудованием (определенным в ACPI 5.0), Turbo может быть задействован, если операционная система Windows динамически запрашивает оборудование для обеспечения максимально возможных уровней производительности.

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

Для управления на основе состояния P варианты отключены, включено (Turbo доступно для оборудования при каждом запросе номинальной производительности), а также эффективный (Turbo доступен только в том случае, если будет реализован регистр EPB).

Для управления на основе CPPC выбранные варианты отключены, эффективные (Windows указывает точное количество предоставленных turbo) и агрессивные (Windows запрашивает «максимальную производительность», чтобы включить Turbo).

В Windows Server 2016 значение по умолчанию для режима повышения равно 3.

Название Поведение на основе состояния P Поведение CPPC
0 (отключено) Выключено Выключено
1 (включен) Включен Эффективное включение
2 (агрессивный) Включен Агрессивная
3 (эффективное включение) Эффективность Эффективное включение
4 (эффективное агрессивное) Эффективность Агрессивная

Следующие команды позволяют включить режим повышения производительности процессора в текущем плане питания (укажите политику с помощью псевдонима GUID):

Powercfg -setacvalueindex scheme_current sub_processor PERFBOOSTMODE 1 Powercfg -setactive scheme_current 

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

Чтобы задать это значение для планов питания, отличных от выбранного плана, можно использовать псевдонимы, такие как SCHEME_MAX (Power Saver), SCHEME_MIN (высокая производительность) и SCHEME_BALANCED (balanced) вместо SCHEME_CURRENT. Замените «схема текущей» в командах powercfg -setactive, которые ранее отображались с нужным псевдонимом, чтобы включить этот план питания.

Например, чтобы настроить режим повышения в плане Power Saver и сделать, что Power Saver является текущим планом, выполните следующие команды:

Powercfg -setacvalueindex scheme_max sub_processor PERFBOOSTMODE 1 Powercfg -setactive scheme_max 

Увеличение производительности процессора и снижение пороговых значений и политик

Эта настройка параметра применяется только к системам, не относящихся к HWP.

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

  • Пороговое значение повышения производительности процессора определяет значение использования, выше которого увеличится состояние производительности процессора. Более крупные значения замедляют скорость увеличения состояния производительности в ответ на увеличение активности.
  • Пороговое значение уменьшения производительности процессора определяет значение использования, ниже которого снижается состояние производительности процессора. Большие значения увеличивают скорость уменьшения состояния производительности во время простоя.
  • Политика повышения производительности процессора и политика уменьшения производительности процессора определяют, какое состояние производительности следует задать при изменении. Политика «Single» означает, что она выбирает следующее состояние. «Ракета» означает максимальное или минимальное состояние производительности питания. «Идеальный» пытается найти баланс между мощностью и производительностью.

Например, если на сервере требуется ультра-низкая задержка, но при этом требуется воспользоваться низкой мощностью в периоды простоя, можно ускорить увеличение состояния производительности для любого увеличения нагрузки и замедлить снижение нагрузки при снижении нагрузки. Следующие команды задают для политики увеличения числа «Ракета» для ускорения увеличения состояния и задайте для политики уменьшения значение «Single». Для увеличения и уменьшения пороговых значений задано значение 10 и 8 соответственно.

Powercfg.exe -setacvalueindex scheme_current sub_processor PERFINCPOL 2 Powercfg.exe -setacvalueindex scheme_current sub_processor PERFDECPOL 1 Powercfg.exe -setacvalueindex scheme_current sub_processor PERFINCTHRESHOLD 10 Powercfg.exe -setacvalueindex scheme_current sub_processor PERFDECTHRESHOLD 8 Powercfg.exe /setactive scheme_current 

Максимальное и минимальное количество ядер производительности процессора

Базовая парковка — это функция, представленная в Windows Server 2008 R2. Подсистема управления питанием процессора (система УПП) и планировщик работают вместе, чтобы динамически настроить количество ядер, доступных для запуска потоков. Модуль система УПП выбирает минимальное количество ядер для потоков, которые будут запланированы.

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

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

Если сервер имеет определенные требования к парковке ядра, вы можете контролировать количество ядер, доступных для парковки, с помощью параметра «Максимальное количество ядер производительности процессора» или параметр «Минимальное значение ядра производительности процессора» в Windows Server 2016.

Один из сценариев, для которых не всегда подходит базовая парковка, заключается в том, что при наличии одного или нескольких активных потоков, сопоставленных с нетривиальным подмножеством ЦП на узле NUMA (т. е. более 1 ЦП, но меньше всего набора ЦП на узле). Когда основной алгоритм парковки выбирает ядра для разпарковки (если происходит увеличение интенсивности рабочей нагрузки), он может не всегда выбирать ядра в активном сходстве подмножества (или подмножества) для разпарковки, и таким образом может в конечном итоге разпарковать ядра, которые на самом деле не будут использоваться.

Значения этих параметров — проценты в диапазоне от 0 до 100. Параметр «Максимальное значение ядра производительности процессора» управляет максимальным процентом ядер, которые могут быть незапаркованы (доступны для запуска потоков) в любое время, в то время как параметр «Минимальное значение ядра производительности процессора» управляет минимальным процентом ядер, которые можно разпарковать. Чтобы отключить парковку ядра, задайте параметр «Минимальное значение ядра производительности процессора», равный 100 процентам, с помощью следующих команд:

Powercfg -setacvalueindex scheme_current sub_processor CPMINCORES 100 Powercfg -setactive scheme_current 

Чтобы уменьшить число шedulable ядер до 50 процентов максимального количества, задайте параметр «Максимальное количество ядер производительности процессора» на 50, как показано ниже.

Powercfg -setacvalueindex scheme_current sub_processor CPMAXCORES 50 Powercfg -setactive scheme_current 

Распределение служебной программы парковки ядра процессора

Распределение служебных программ — это алгоритмическая оптимизация в Windows Server 2016, предназначенная для повышения эффективности питания для некоторых рабочих нагрузок. Он отслеживает недвижимые действия ЦП (т. е. DPCs, прерывания или строго аффинизованные потоки), и прогнозирует будущую работу на каждом процессоре на основе предположения, что любая перемещаемая работа может быть распределена одинаково по всем незапаркованным ядрам.

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

Для таких рабочих нагрузок рекомендуется отключить распределение служебной программы с помощью следующих команд:

Powercfg -setacvalueindex scheme_current sub_processor DISTRIBUTEUTIL 0 Powercfg -setactive scheme_current 

Дополнительные справочники

  • Рекомендации по производительности оборудования сервера
  • Рекомендации по питанию серверного оборудования
  • Настройка управления питанием процессора (PPM) для сбалансированного плана питания Windows Server

Влияние настроек энергопотребления на производительность SQL Server

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

Для тестирования использовалась платформа Supermicro SuperServer 6017R-N3RF4+ с парой процессоров Intel® Xeon® Processor E5-2650 и включенным Hyper Threading, 64 Гб оперативной памяти и установленным Microsoft SQL Server 2008 R2.

Конфигурацию дисковой подсистемы я не привожу, т.к. для тестирования я выбрал запрос, который дает нагрузку только на процессор. Данные из таблицы объемом приблизительно 500 Мб и содержащие поле типа XML предварительно были закэшированы в Buffer Pool. Запрос проводит выборку из вышеуказанных данных, проводя над XML данными несколько операций с использованием методов nodes, query и value. Запрос я запускал несколько раз для каждой комбинации настроек как параллельно на всех логических процессорах, так и с опцией MAXDOP = 1.

За настройки энергопотребления CPU в BIOS отвечают следующие настройки в разделе CPU Power Management Configuration: Power Technology и Energy Performance Bias. По умолчанию они имеют значения Energy Efficiency и Balanced Performance. Соответственно, чтобы отключить экономию энергии для CPU я переключал эти параметры в значения Disabled и Performance соответственно.

В операционной системе в панели управления в разделе Power Options также можно выбрать один из 3х режимов энергопотребления. Значение по умолчанию Balanced. Причем перезапуск SQL Server или операционной системы после изменения не требуется – все начинает работать сразу.

Теперь я привожу результаты тестирования. Для начала посмотрим на время выполнения запроса с опцией MAXDOP = 1.

BIOS – настройки по умолчанию BIOS, отключена экономия энергии для CPU
Power Options: Balanced 3 мин. 15 сек. 4 мин. 18 сек.
Power Options: High performance 3 мин. 10 сек. 4 мин. 18 сек.
Power Options: Power saver 5 мин. 48 сек. 4 мин. 18 сек.

Как мы видим, если оставить настройки BIOS по умолчанию и менять параметры энергопотребления в операционной системе, то можно приблизительно на 2.5% ускорить запрос только выбрав значение High performance в Power Option. И напротив, что стало для меня удивлением, если изменить настройки в BIOS – мы наоборот, теряем в производительности.

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

BIOS – настройки по умолчанию BIOS, отключена экономия энергии для CPU
Power Options: Balanced 25-26 сек. 21 сек.
Power Options: High performance 18-19 сек. 21 сек.
Power Options: Power saver 29 сек. 21 сек.

И опять получились довольно интересные результаты. Если изменить настройки BIOS по умолчанию, то мы получаем некоторый выигрыш в производительности. Но наилучший результат показывает ситуация, когда настройки BIOS не изменяются, а в настройках энергопотребления операционной системы мы выбираем High performance.

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

This entry was posted in SQL Server and tagged cpu, performance on 03.11.2012 by Sergey Olontsev .

4 thoughts on “ Влияние настроек энергопотребления на производительность SQL Server ”

  1. ya.a03.09.2013 at 10:21 Сергей, отличная статья. Но в ней упущен один момент, как собственно понять что эта проблема есть и нужно работать над её решением. Исправляю сей недочёт. Для того что бы понять что у вас некоторые процессоры не используются на всю катушку (спят) нужно установить счетчик “Processor: %Processor Time)” на сутки и посмотреть равномерно ли распределяется нагрузка на процессоры с утра. Если вы увидите что при наступлении нагрузки (как правило с утра) она не равномерно распределена по всем CPU, то скорее всего ваши процессоры после ночного сна, ещё не успели проснуться и в этом виноват режим “Balanced”, попробуйте поставить на “High Perfomance” и проверьте считчики повторно. Примечание: если у вас OLTP система (MAXDOP=1), а не OLAP, то возможно что часть процессоров спит, так как на них нет нагрузки.
  1. Sergey Olontsev03.09.2013 at 10:47 Отличный комментарий. В свою очередь поделюсь еще информацией: позже я проводил тесты на IBM BladeCenter и там вообще не играло никакой роли, как были установлены параметры – сама система управляла энергопитанием. И время выполнения тестового запроса там сильно колебалось, в то время как на Supermicro оно было стабильным. Я вообще склоняюсь к факту, что энергопотребление в High Performance надо ставить сразу и без всяких дополнительных тестов. Идеальный вариант – создать OU на уровне AD, включить туда все MS SQL сервера в организации и повесить на OU доменную политику, которая сама рулит уже настройками (и не только энергопотребления).
  1. ya.a03.09.2013 at 10:50 Microsoft в рамках программы Microsoft RAS (Premier Support) советует ставить в High Perfomance. ��
    Основы телепатии изучили видимо ))
  1. Sergey Olontsev03.09.2013 at 11:40 Да на самом деле набор параметров, значения которых по умолчанию не очень хороши и замена этих значений гарантированно не сделает хуже (на крайний случай просто не будет лучше) достаточно большой. �� Просто они придерживаются консервативного подхода – всегда было такое значение по умолчанию – пусть остается.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *