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

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

. К большинству возможностей, доступных из командной строки при работе с POWERCFG, доступ может быть получен и через модуль Power Options в панели управления Control Panel Windows. Однако POWERCFG остается самым наглядным, гибким и в некоторых случаях наиболее быстрым инструментом, поэтому дальнейшие рассуждения и примеры будут касаться использования именно этой утилиты.

Перед применением утилиты POWERCFG и настройкой профиля управления энергосбережением рекомендуется обновить версию BIOS и драйверы периферийных устройств до последней версии, а также выполнить необходимые настройки режима энергосбережения в BIOS. В частности, перед выполнением перечисленных ниже инструкций следует убедиться, что в BIOS компьютера включен режим сна S3. Впрочем, многие современные материнские платы компьютеров не требуют выполнения такой настройки вручную.

Общий порядок использования утилиты POWERCFG заключается в следующем:

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

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

3. Исправление конфигурации. Внести все необходимые изменения в настройки режима энергопотребления устройств системы.

4. Проверка конфигурации. Диагно­сти­ро­вать работоспособность системы и соответствие настроек режима управления энергосбережением выбранной модели применения системы. При необходимости повторно выполнить пункт 1.

5. Экспорт настроек. Экспортировать настройки в отдельный файл.

6. Применение конфигурации. Распро­стра­нить файл на собираемые системы или в сетевом окружении.

Далее в тексте статьи приведенная выше последовательность действий раскрывается более подробно.

Сбор данных

Для выполнения этого шага запустите окно командной строки с правами администратора. В командной строке выполните следующие команды:

1. Создайте каталог, например C:\report. В нем будут храниться промежуточные данные, необходимые для выполнения последующих действий.

2. Перед применением утилиты POWERCFG для настройки режима энергосбережения я также рекомендую экспортировать некоторые исходные данные и дополнительную справочную информацию в отдельные текстовые файлы. Эта информация может затем использоваться в параметрах командной строки для POWERCFG через буфер обмена операционной системы. Итак:

а) Получите текстовой отчет об исходном состоянии настроенных в системе профилей управления энергосбережением и их идентификаторов GUID, для чего выполните команду:

POWERCFG/L > profiles_initial.txt

Текущий активный профиль помечается символом «*»

б) Получите перечень всех устройств в системе:

POWERCFG -DEVICEQUERY all_devices
   > alldevices.txt

в) Получите перечень режимов сна, поддерживаемых BIOS:

POWERCFG –a > bios_modes.txt

г) Получите перечень устройств, поддерживающих режим глубокого сна:

POWERCFG -DEVICEQUERY S3_supported
   > s3.txt

д) Получите перечень устройств, поддерживающих режим гибернации:

POWERCFG -DEVICEQUERY S4_supported
   > s4.txt

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

е) Получите список всех идентификаторов GUID для классов, групп настроек и настроек отдельных компонентов

POWERCFG/Q > guids.txt

При необходимости можно получить список GUID для всех настроек, включая скрытые

POWERCFG/QH > guids_hidden.txt

ж) Скопируйте имеющийся Balanced профиль в новый, например

POWERCFG -DUPLICATESCHEME
   49ef8fc0-bb7f-488e-b6a0-f1fc77ec649b

з) Скопируйте в буфер обмена GUID результирующего профиля.

и) Переименуйте профиль, для чего выполните команду

POWERCFG -CHANGENAME
   a1c421fc-743f-40e8-b2d7-368d2d35b7b2
   Optimal "Fine tuned powerplan",

где a1c421fc-743f-40e8-b2d7-368d2d35b7b2 — GUID нового профиля, скопированный в буфер обмена

к) Получите текстовой отчет о текущем состоянии настроенных в системе профилей управления энергосбережением и их GUID, для чего выполните команду

POWERCFG/L > profiles.txt

л) Сделайте вновь созданный профиль активным, для чего выполните команду

POWERCFG –s a1c421fc-743f-40e8-b2d7-368d2d35b7b2,

где a1c421fc-743f-40e8-b2d7-368d2d35b7b2 — GUID нового профиля, скопированный в буфер обмена.

Анализ

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

POWERCFG -ENERGY -OUTPUT
   C:\REPORT\REPORT.HTML -DURATION
   продолжительность_ диагностики_
   в_секундах

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

Результат выполнения команды показан на экране 1.

 

Экран 1. Результат выполнения команды PowerCfg в режиме генерирования отчета

Сам отчет будет помещен в файл .html, в указанный каталог или в текущий каталог по умолчанию.

Откройте файл REPORT.HTML в браузере. В файле REPORT.HTML сведения об анализе эффективности управления электропитанием сведены в три категории: ошибки Errors выделяются красным цветом, предупреждения Warnings выделяются желтым цветом, информационные Informational — все остальные сведения.

Ошибки свидетельствуют о проблеме, которая оказывает значительный эффект на потребление электроэнергии системой. Обычно «значительный» эффект означает увеличение потребления более чем на 15% или полное отсутствие какой-либо настройки.

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

Ошибки и предупреждения являются предметом изучения на этапе анализа.

Внешний вид отчета показан на экране 2.

 

Экран 2. Фрагмент отчета, сгенерированного утилитой PowerCfg

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

  • Ошибки выбора политики сбережения. Например, выбор профиля High Performance при питании от батареи или промышленной сети.
  • Ошибки, связанные с частым обращением к системному таймеру. Период запроса системного таймера должен быть близок к максимально возможному по продолжительности значению для конкретной системы.
  • Ошибки, связанные с частым запросом доступности системы.
  • Ошибки, связанные с настройкой режима пониженного энергопотребления шины USB.
  • Высокая степень загруженности процессора.
  • Настройка батареи.
  • Учет возможностей платформы.
  • Учет возможностей процессора.

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

Исправление конфигурации

Все действия по исправлению конфигурации выполняются в контексте POWERCFG -setacvalueindex (для питания системы от электросети) и POWERCFG -setdcvalueindex (для питания системы от батареи).

В общем случае команда имеет следующий синтаксис:

POWERCFG -setdcvalueindex {GUID
   профиля питания} {GUID группы
   настроек} {GUID специфической
   настройки в группе}
   значение_настройки

Для того чтобы приступить непосредственно к настройке конфигураций электропитания, выполните такие действия.

  • Откройте guids.txt (или guids_hidden.txt). Найдите в списке компонент с ошибочной конфигурацией, которая помечена в файле REPORT.HTML красным цветом, по его имени.
  • Оцените текущее значение в графе Current AC Power Setting Index и Current DC Power Setting Index.
  • С помощью утилиты POWERCFG измените значения в допустимых пределах. Допустимые значения можно увидеть в файле guids.txt в строке Possible Setting Index конкретного компонента.

Ниже приведен пример действий по анализу конфигурации и внесению поправок:

а) Открываем отчет, полученный в результате выполнения команды POWERCFG -ENERGY, раздел Errors (экран 3).

 

Экран 3. Раздел ошибок в отчете

б) В файле guids.txt (был подготовлен ранее, см. пункт «е») находим настройку USB Selective Suspend (экран 4).

 

Экран 4. Фрагмент содержимого файла guids.txt

в) Включаем режим USB Selective Suspend (экран 5) командой:

POWERCFG -SetACValueIndex 381b4222-
   f694-41f0-9685-ff5bb260df2e 2a737441-
   1930-4402-8d77-b2bebba308a348e6b7
   a6-50f5-4782-a5d4-53bb8f07e226001

или (вариант на экране 5)

POWERCFG -SetDCValueIndex 381b4222-
   f69441f0-9685-ff5bb260df2e 2a737441-
   1930-4402-8d77-b2bebba308a348e6b7
   a6-50f5-4782-a5d4-53bb8f07e226001

 

Экран 5. Пример включения нужного режима энергопотребления для компонента

г) В отчете переходим к разделу Warnings (экран 6).

 

Экран 6. Раздел Warnings отчета

д) В файле guids.txt находим настройку Sleep timeout (экран 7).

 

Экран 7. Фрагмент содержимого файла guids.txt для настройки Sleep timeout

е) Изменяем значения для периода простоя системы, 160 сек. (экран 8), перед тем как она перейдет в режим сна:

POWERCFG -SetAcValueIndex 381b4222-
   f694-41f0-9685-ff5bb260df2e 238c9fa8-
   0aad-41ed-83f4-97be242c8f2029f6c1db-
   86da-48c5-9fdb-f2b67b1f44da 160

 

Экран 8. Еще один пример включения нужного режима энергопотребления для компонента

Некоторые базовые рекомендации по выполнению настроек

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

 

Таблица 1. Параметры для энергосберегающих режимов

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

 

Таблица 2. Базовые рекомендации для выбора параметров для режимов Sleep, Hybrid sleep и Hibernate

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

Проверка конфигурации

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

2. Проверьте работоспособность и время перехода в рабочее состояние имеющихся интерфейсов при выходе системы из режимов пониженного энергопотребления.

3. Выполните теоретическую оценку максимально возможного энергопотребления вашей системы. Для этого можно использовать онлайн-калькуляторы наподобие Journey Systems Power Supply Calculator (http://www.journeysystems.com/power_supply/) или eXtreme Power Supply Calculator Lite v2.5 (http://extreme.outervision.com/psucalculatorlite.jsp), который предназначен строго для некоммерческого использования.

4. Используя эталонный экземпляр системы с настроенными профилями управления энергосбережением и ваттметр (счетчик потребления электроэнергии), измерьте потребление электроэнергии в режимах Sleep и Hibernate, в выключенном (но оставленном включенным в сеть) состоянии и во включенном состоянии (соблюдая предполагаемый режим эксплуатации). Примерная схема организации лаборатории для замеров такого рода описана в исследовании по адресу http://www.mindteck.com/whitepapers/Enabling-Green-Computing.pdf компании Mindteck (см. рисунок).

 

Рисунок. Примерная схема организации лаборатории для замеров

5. Соберите полученные значения измерений в таблицу.

6. Сравните полученные значения с имеющимися эталонными специ­фикациями. В качестве источника такой информации можно использовать, например, сайт программы ENERGY STAR (http://www.energystar.gov/index.cfm? c=bulk_purchasing.bus_purchasing#off), раздел Purchasing & Procurement, подраздел Office Products.

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

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

9. При необходимости еще раз пересмотрите выполненные настройки.

Для экспорта настроек в текстовой файл используйте следующую команду:

POWERCFG -EXPORT C:\report\OEM_
   profile.bin381b4222-f694-41f0-9685-
   ff5bb260df2e,

где 381b4222-f69441f0-9685-ff5bb260df2e — GUID настроенного профиля. По завершении экспорта файл с профилем может быть импортирован на каждом из экземпляров компьютеров в режиме работы с командной строкой.

Применение конфигурации

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

На целевой системе выполните импорт настроек командой (выполняется с повышенными привилегиями):

POWERCFG –IMPORT OEM_profile.bin

Убедитесь в успешном выполнении команды:

POWERCFG/L

Сделайте импортированный профиль активным:

POWERCFG –s a1c421fc-743f-40e8-b2d7-368d2d35b7b2,

где a1c421fc-743f-40e8-b2d7-368d2d35b7b2 — GUID импортированного профиля.

Перед обработкой образа утилитой System Preparation Tool (для сборщиков систем это является обязательным атрибутом подготовки систем) внесите изменения в реестр — в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power установите значение параметра CustomizeDuringSetup=0. Эта настройка предотвращает обобщение некоторых настроек профиля управления энергосбережением при подготовке мобильных компьютеров к первому старту при помощи утилиты System Preparation Tool, sysprep (экран 9).

 

Экран 9. Предотвращение сброса параметров для мобильных компьютеров

Обобщите образ операционной системы с использованием специального файла ответов:

SYSPREP/generalize/oobe/unattend:
   OEM_unattend.xml/shutdown,

где OEM_unattend.xml — специальный файл ответов, который подготавливается отдельно с использованием утилиты Windows SIM из пакета OEM Preinstallation Kit (OPK) или Windows Automated Installation Kit (WAIK). В этом файле ответов для подготовительного прохода установки Generalize должны быть указаны настройки компонента Windows-powercpl_neutral, а параметр PrefferdPlan должен содержать GUID импортированного профиля управления энергосбережением (экран 10).

 

Экран 10. Разработка специального файла ответов в Windows SIM

Альтернативные методы редактирования

Существует возможность тонкой настройки параметров энергопотребления системы с использованием графического интерфейса стандартного приложения Power Options. Для того чтобы расширенные возможности настройки параметров электропитания стали доступны и в графической оболочке, необходимо внести некоторые изменения в раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings.

Данный раздел содержит описание для тех же классов настроек и групп настроек с соответствующими GUID, которыми мы ранее оперировали при обсуждении утилиты PowerCfg.

Для соответствующего GUID класса настроек или группы (раздела) необходимо проверить значение параметра Attributes (экран 11). Значение данного параметра, равное 1, позволяет скрыть соответствующую настройку в меню приложения. И напротив, установка этого параметра в 0 позволяет показать эту настройку в приложении.

 

Экран 11. Настройка показа скрытых параметров в апплете Power Options

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

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

Выводы

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

Валерий Волобуев (vvolobuiev@hotmail.com) — имеет звания MVP, MVT, г. Киев