Обеспечение оптимального питания и производительности
Энергоэффективность становится все более важной в средах предприятия и центра обработки данных, и она добавляет еще один набор компромиссов в сочетании параметров конфигурации. При управлении серверами важно убедиться, что они работают максимально эффективно при удовлетворении потребностей в производительности рабочих нагрузок. Windows Server оптимизирован для отличной энергетической эффективности с минимальным воздействием на производительность в широком диапазоне клиентских рабочих нагрузок. Настройка управления питанием процессора (система УПП) для плана Windows Server Balanced Power Plan описывает рабочие нагрузки, используемые для настройки параметров по умолчанию в нескольких версиях Windows Server, и предоставляет рекомендации по настройке.
В этом разделе описаны компромиссы по энергоэффективности, которые помогут вам принять обоснованные решения, если необходимо настроить параметры питания по умолчанию на сервере. Однако большинство серверных оборудования и рабочих нагрузок не должны требовать настройки питания администратора при запуске Windows Server.
Выбор метрик настройки
При настройке сервера для экономии энергии необходимо также учитывать производительность. Настройка влияет на производительность и мощность, иногда в непропорциональном количестве. Для каждой возможной корректировки рассмотрите ваши цели бюджета питания и производительности, чтобы определить, является ли компромисс приемлемым.
Настройка параметров windows Server по умолчанию использует энергоэффективность в качестве ключевой метрики для балансировки мощности и производительности. Эффективность энергии — это соотношение работы, выполняемой с средней мощностью, необходимой в течение указанного периода времени.
Эту метрику можно использовать для установки практических целей, которые уважают компромисс между мощностью и производительностью. В отличие от этого, цель 10 процентов экономии энергии в центре обработки данных не может захватить соответствующие последствия для производительности и наоборот.
Аналогичным образом, если вы настраиваете сервер для повышения производительности на 5 процентов, и это приводит к увеличению 10 процентов потребления энергии, общий результат может или не может быть приемлемым для ваших бизнес-целей. Метрика эффективности энергии позволяет более информированное принятие решений, чем только метрики питания или производительности.
Измерение энергопотребления системы
Перед настройкой сервера для повышения эффективности энергии необходимо установить базовые показатели питания.
Если сервер имеет необходимую поддержку, вы можете использовать функции измерения электроэнергии и бюджетирования в Windows Server 2016 для просмотра потребления энергии на уровне системы с помощью Монитор производительности.
Один из способов определить, имеет ли сервер поддержку измерения и бюджетирования, заключается в проверке каталога Windows Server. Если модель сервера соответствует новой квалификации расширенного управления питанием в программе сертификации оборудования Windows, она гарантирует поддержку функций измерения и бюджетирования.
Еще одним способом проверка для поддержки измерения является ручной поиск счетчиков в Монитор производительности. Откройте Монитор производительности, выберите "Добавить счетчики", а затем найдите группу счетчиков Power Meter.
Если именованные экземпляры счетчиков питания отображаются в полях с метками "Экземпляры выбранного объекта", платформа поддерживает измерение. Счетчик питания , показывающий мощность в уоттах, отображается в выбранной группе счетчиков. Точное производное значение данных питания не указано. Например, это может быть мгновенное рисование энергии или средняя черпать мощность в течение некоторого интервала времени.
Если серверная платформа не поддерживает измерения, можно использовать физическое устройство измерения, подключенное к входным данным питания для измерения потребления электроэнергии или энергопотребления.
Чтобы установить базовый план, следует измерять среднюю мощность, необходимую для различных точек загрузки системы, от простоя до 100 процентов (максимальная пропускная способность) для создания линии загрузки. На следующем рисунке показаны строки загрузки для трех примеров конфигураций:
Линии загрузки можно использовать для оценки и сравнения производительности и энергопотребления конфигураций во всех точках нагрузки. В этом примере можно легко увидеть, какая конфигурация лучше всего подходит. Однако можно легко использовать сценарии, в которых одна конфигурация лучше подходит для тяжелых рабочих нагрузок, и она лучше подходит для легких рабочих нагрузок.
Необходимо тщательно понять требования рабочей нагрузки, чтобы выбрать оптимальную конфигурацию. Не предполагайте, что при поиске хорошей конфигурации она всегда будет оставаться оптимальной. Следует регулярно измерять использование системы и потребление энергии на регулярной основе и после изменений в рабочих нагрузках, уровнях рабочей нагрузки или серверном оборудовании.
Диагностика проблем с эффективностью энергии
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