Управление ядрами процессора в Windows 7 или Как экономить батарею
Здравствуй, хабра-человек.
Как известно, Microsoft очень хорошо потрудилась над своим последним детищем по имени Windows 7 и внесла много различных нововведений, об одном из которых я и хочу рассказать. Особенно актуально, я думаю, это будет для владельцев ноутбуков и нетбуков, но и пользователи настольных систем так же могут получить профит.
Как известно, самое большое новшество в «семерке» (после GUI) — это переработанная подсистема ACPI. Тут и нормальная поддержка многоядерных систем, и управление питанием устройств, мониторинга аппаратных средств, да и много чего еще, но одна очень интересная возможность остается за кадром — речь идет об энергопотреблении и управлении ядрами многоядерных/многопроцессорных систем.
Windows 7 позволяет управлять электропитанием процессоров, а так же назначать политики активности/простоя ядер.
При работе на многоядерных процессорах производится постоянная ротация потоков между ядрами и система переносит поток с более загруженных на менее загруженные ядра, что обеспечивает равномерную загрузку всех ядер, но и не менее равномерное энергопотребление, приводит к потере производительности и повышению энергопотребления, а это сказывается в первую очередь на сроке работы от аккумулятора. Сегодня я попытаюсь «восстановить справедливость» штатными средствами ОС.
В Windows 7 и Windows 2008 R2, была реализована функция «Processor performance core parking» или по нашему — «Система парковки ядра», которая оставляет выполнение процесса на том ядре, на котором он начался, до полного его завершения. Такой подход позволяет получить более динамичную систему и значительно снизить потребление энергии.
В отличии от штатного режима работы, когда процессы постоянно переносятся с одного ядра на другое, равномерно загружая ЦП, Система парковки позволяет подключать ядра по мере необходимости, стараясь сложить все задачи на минимальное количество ядер (в идеале на одно).
Пример: На четырех-ядерном процессоре в период простоя будет использоваться только одно ядро, остальные будут запаркованы и отключены, а в период нагрузки будут подключены остальные ядра.
И так, как же добиться такой фичи?
Для начала в реестр необходимо добавить следующие ключи
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583]
«Attributes»=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb]
«Attributes»=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\5d76a2ca-e8c0-402f-a133-2158492d58ad]
«Attributes»=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\a55612aa-f624-42c6-a443-7397d064c04f]
«Attributes»=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\ea062031-0e34-4ff1-9b6d-eb1059334028]
«Attributes»=dword:00000000
После этого идем в
Панель управления -> Электропитание -> Настройка плана электропитания -> Изменить дополнительные параметры питания -> Управление питанием процессора
- Минимальное число ядер в состоянии простоя (Processor performance core parking min cores) — Установить 25% для четырех ядерного процессора (одно ядро) — или 50% для двух ядерного процессора.
- Разрешить состояния снижения питания (Allow Throttle States) – Включить.
- Отключение простоя процессора (Processor idle disable) — Включить состояние простоя.
- Переопределение ядра приостановки ядра производительности процессора (Processor performance core parking core override) – Отключено.
- Максимальное число ядер в состоянии простоя (Processor performance core parking max cores) — Установить 100% (использовать все ядра)
После применения новых параметров можно смело идти в «мониторинг ресурсов» и любоваться тем, что большая часть ядер отключена

Вот собственно и все. Мы получили политику использования ядер «пока нам хватает одного ядра (или сколько вы там укажите) — используем одно ядро», экономим батарейку, а еще и система стала более отзывчивой.
UPD: Поделюсь своим тестом — мой HP Pavilion dv8-1150er раньше работал от полностью заряженной батареи — 3-3,5 часа, теперь его хватает на 4,5 часа.
Как увеличить производительность процессора за счет настроек электропитания (парковка ядер, как включить все ядра ЦП ✔)
Доброго времени!
Долго думал, стоит ли публиковать сегодняшнюю статью, т.к. вопрос довольно спорный (и результат после настройки у всех может быть разным, в зависимости от оборудования и ПО). И всё же, попрошу к статье отнестись критически и как к «экспериментальной».
Итак, ближе к теме.
Windows не всегда «идеально» работает с многоядерными процессорами. В целях снижения энергопотребления, ряд процессов может выполняться на том ядре, на котором они были запущены изначально (такой подход позволяет: с одной стороны (позитивной) — не использовать постоянно все ядра (и за счет этого снизить энергопотребление) , а с другой (негативной) — не позволяет процессору работать на полную «катушку»). 👀
К тому же функция парковки ядер позволяет процессору (при определенной нагрузке) переносить все задачи на одно ядро, а остальные переводить в режим ожидания (т.е. работать будет фактически только одно ядро). Естественно, это снижает общую производительность (правда, делает систему более отзывчивой, но незначительно). Отмечу, что Windows к тому же не совсем корректно работает с парковой ядер на процессорах Intel (по крайней мере Windows 7).
Так вот, задав определенные настройки электропитания, можно ограничить работу функции парковки ядер и повысить общую производительность (в некоторых случаях до 20%!). На мой взгляд есть смысл попробовать потратить 3-5 мин. на «эксперимент»! 😉
Примечание : в первую очередь эта тема касается многоядерных процессоров от Intel (на AMD, честно говоря, адекватной статистики не имею. Но попробовать можно. ).
Как настроить тонко электропитание процессора
Чтобы не быть голословным о повышении производительности, приведу один небольшой тест быстродействия в WinRAR (👉 офиц. сайт архиватора).
На скриншоте ниже: в левой части приведена общая скорость до оптимизации настроек; справа — после. Даже невооруженным глазом видно, что в тестах ЦП начинает работать быстрее (что положительно сказывается и в реальных задачах, тех же играх, например).

Разница в производительности
Примечание : рекомендую вам запустить тест в WinRAR сначала до оптимизации настроек (и запомнить общую скорость), и затем провести тест после оптимизации. Далее просто сравнить эти числа, в ряде случаев удается выжать из ЦП еще 10-20%!
👉 Важный момент!
Как уже сказал выше, в первую очередь этот вопрос касается многоядерных процессоров (4 ядра и выше). Чтобы узнать количество ядер своего ЦП — просто запустите утилиту 👉 CPU-Z, и посмотрите в нижнюю часть окна: в графе Cores увидите кол-во ядер (пример ниже 👇).

CPU-Z — 4 Cores (4 ядра, 8 потоков)
1) Итак, начать нужно с настройки реестра.
Тут дело в том, что Windows по умолчанию скрывает часть настроек электропитания. Чтобы их открыть для редактирования, необходимо внести определенные изменения в реестр. Проще всего это сделать с помощью уже готового файла настроек, который нужно просто запустить и согласиться с добавлением параметров в системный реестр.
Вот подготовленный файл: 👉 core_parking (нужно извлечь его из архива и запустить. Архив запакован с помощью WinRAR, актуален для Windows 7-10).

Редактор реестра — настройки успешно внесены в реестр
На всякий случай приведу текст этого файла чуть ниже (в целях безопасности, вдруг кто-то усомниться в файле, и пожелает вносить изменения в реестр вручную 👇).
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583]
«Attributes»=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb]
«Attributes»=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\5d76a2ca-e8c0-402f-a133-2158492d58ad]
«Attributes»=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\a55612aa-f624-42c6-a443-7397d064c04f]
«Attributes»=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\ea062031-0e34-4ff1-9b6d-eb1059334028]
«Attributes»=dword:00000000
2) Настройка схемы электропитания
Теперь необходимо открыть 👉 панель управления Windows раздел «Оборудование и звук/Электропитание» . После перейти в настройки текущей схемы электропитания (т.е. ту, которая сейчас у вас используется). В моем случае это сбалансированная (см. скриншот ниже 👇).

Настройка текущей схемы электропитания
Далее нужно открыть дополнительные настройки питания.

Изменить дополнительные параметры питания
Теперь самое главное (см. скриншот ниже 👇):
- минимальное число ядер в состоянии простоя : рекомендуется выставить значение в 99% (почему-то если выставить 100% — Windows часто отправляет одно ядро «отдыхать»);
- разрешить состояние снижения питания : переведите в режим выкл. (не дает процессору экономить энергию);
- отключение простоя процессора : переведите режим в откл.;
- минимальное состояние процессора : 100% (незначительно ускоряет работу ЦП (кстати, в некоторых случаях позволяет уменьшить писк от дросселей )) .
- политика охлаждения системы : активная (более эффективно охлаждает ЦП);
- максимальное состояние процессора : 100% (очень сильно влияет на производительность! Обязательно выставите на 100%);
- максимальное число ядер в состоянии простоя : 100% (противоречивая опция. Если выставить что-то отличное от 100% — то грузятся почему-то не все ядра, несмотря на то что активны все. ).

Дополнительные параметры электропитания
Сохраните настройки и перезагрузите компьютер!
3) Еще раз о режиме питания (касается в первую очередь ноутбуков)
После перезагрузки компьютера (ноутбука) — обратите внимание на режим питания (кликните по батарейке в трее). Выставите производительность на 100%!

Кроме этого, обратите внимание на центры управления ноутбуком, которые могут идти в комплекте к вашим драйверам (например, такие есть у устройств от Lenovo, Sony и пр.). В них также устройство нужно перевести в режим высокой производительности.
Питание ноутбука // менеджер ноутбука
4) Тестирование быстродействия
После чего можно запустить WinRAR и провести тест быстродействия. Как правило, после точечной настройки электропитания наблюдается рост цифр (т.к. система перестает ограничивать ЦП, и он может начать работать на весь свой потенциал). 👇

Тестирование — WinRAR / Кликабельно
👉 Дополнение!
Чтобы посмотреть, как идет нагрузка на ядра ЦП — откройте «Диспетчер задач» (Ctrl+Shift+Esc) и перейдите во вкладку «Производительность» . Далее щелкните правой кнопкой мышки по графику загрузки ЦП и в меню выберите «Изменить график/Логические процессы» . См. скрин ниже. 👇

Диспетчер задач — производительность
В результате у вас будет не один график, а несколько, в зависимости от количества ядер (потоков).

Все ядра загружены
Обратите внимание, при нагрузке (например, тестировании) — в идеале все ядра должны быть загружены (как на скриншоте ниже). 👇

Для более показательного теста работы ЦП рекомендую воспользоваться утилитой AIDA64 (ссылку на инструкцию привожу ниже).
👉 В помощь!
Как выполнить стресс-тест процессора и системы в целом, держит ли он частоты, нет ли перегрева (AIDA 64) — [см. пошаговую инструкцию]
PS
В рамках этой статьи не могу не порекомендовать еще одну статью на похожую тему. Она касается в первую очередь ноутбуков (т.к. в ряде случаев у них в настройках по умолчанию отключен Turbo Boost, в следствии чего устройство работает медленнее, чем потенциально могло бы. ).
👉 В помощь!
Из-за чего низкая производительность процессора Intel на ноутбуке. Как его можно ускорить? (про Turbo Boost).
Как включить все ядра процессора

Привет всем! Иногда игра или программа не работает на полную мощность, т.к. за производительность отвечают не все ядра. В этой статье посмотрим как задействовать все ядра вашего процессора.
Но не ждите волшебной палочки, т.к. если игра или программа не поддерживает многоядерность, то ничего не поделать, если только не переписать заново приложение.
Как запустить все ядра процессора?
Итак, способов будет несколько. По этому показываю первый.
Заходим в пуск — выполнить или клавиши win+r

Далее в открывшемся окне переходим в загрузки — дополнительные параметры.

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

Нажимаем ОК, перезагружаемся.
Далее способ 2.
- Заходим в диспетчер задач — ctrl+shift+esc.
- Или ctrl+alt+del и диспетчер задач.
- Или нажимаем правой кнопкой по панели управления и выбираем диспетчер задач.
Переходим во вкладку процессы. Находим игру и нажимаем правой кнопкой мыши по процессу. Да кстати, игра должна быть запущена. Свернуть её можно или Win+D или alt+tab.

Выбираем задать соответствие.

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

Во всех вкладках будет идти диаграмма.
Если нет, то нажимаем опять задать соответствие, оставляем только ЦП 0, нажимаем ок. Закрываем диспетчер задач, открываем опять повторяем все, то же самое, выбираем все процессоры и нажимаем ок.
Ещё!
В ноутбуках, бывает настроено энергосбережение таким образом, что настройки не дают использовать все ядра.
- Win7 — Заходим в панель управления, идем в электропитание — Изменить параметры плана — изменить дополнительные параметры питания — управление питанием процессора — минимальное состояние процессора.
- Win8, 10 — Или: параметры — система — питание и спящий режим — дополнительные параметры питания — настройка схемы электропитания — изменить дополнительные параметры питания — управление питанием процессора — минимальное состояние процессора

Для полного использования, должно стоять 100%.
Как проверить сколько работает ядер?
Запускаем и видим число активных ядер.

Не путайте этот параметр с количеством виртуальных процессоров, который отображены правее.
На что влияет количество ядер процессора?
Многие путают понятие количества ядер и частоту процессора. Если это сравнивать с человеком, то мозг это процессор, нейроны — это ядра. Ядра работают не во всех играх и приложениях. Если в игре например выполняется 2 процесса, один вырисовывает лес, а другой город и в игре заложено многоядерность, то понадобиться всего 2 ядра, чтобы загрузить эту картинку. А если в игре заложено больше процессов, то задействуют все ядра.
И может быть наоборот, игра или приложение может быть написана так, одно действие может выполнять только одно ядро и в этой ситуации выиграет процессор, у которого выше частота и наиболее хорошо сложена архитектура (по этому обычно процессоры Интел чуть выигрывают Амд).
По этому грубо говоря, количество ядер процессора, влияет на производительность и быстродействие.

Интересно бы знать, зачем по умолчанию в компе задействуются не все ядра. На этом же многие производители делают акценты при рекламе своих продуктов — столько-то ядер, это круто и т.д.
Скорее всего упущение разработчиков)
Не знал, что их нужно включать, я думал они сразу все работают, и компьютер сам контролирует их количество. Сделал все по инструкции, пока ощутимых изменений не заметил, посмотрим, что будет дальше.
Не все приложения и игры используют все ядра, это минус разработчиков. Где-то можно увидеть разницу, а где-то нет..
Вообще не разбираюсь в компьютерах, слишком заумно все написано, ничего не получилось(
ОКАЗАЛОСЬ У МЕНЯ НОУТ РАБОТАЛ НА 1 ЯДРО! как я вообще раньше жил? спасибо, помогли, теперь работаем на полную.
все понятно, спасибо) картиночки очень помогли)) получилось включить все 4 ядра.
То, что изложено в материале — знал. Но здесь изложено настолько доходчиво и с взуализацией всего процесса. Должен понимать любой пользователь. Очень многое здесь знакомо, но изложение материалов, просто впечатляет. Красиво, элегантно, профессионально и с душой. Автору спасибо.
Всё суперр сам не знал ничего про ядра !! Всё заработало +
далано нетак фсё абисню во
корочи игра старый выделяет один поток этот поток может раскинутся на использования на все ядра но по чуть чуть процент формула (100%/колвоядер) или на одно конкретное скорее всего самое первое ядро на 100% ктоестъ получается што если 8 ядер то 100%/8=невышенесможет 12.5% и поэтому производительность процессора должна раскрыть игру в районе этих 12.5% так как выше не сможет такова старая игра которую небудут улучшать чтобы задействовать все ядра
а то что ставиш ты в диспетчере задач все ядра так ээто поумолчанию так а msconfig если ты сборку устанавил и там такие преднастройки или сам поставил это решение на исправление собственных дел рук толку от него 0 так как это давно миф
так што для токих игр главное производительность процессора на одно ядро за которое отвечает архитектура новых процессоров уж потом ядра и ггц процессоров по техн харкам
амд кстате неплохо потанцевал засвои деньги чем ентел афтор рак полный
Перепробовал все методы и тесты кпу-з, эверест, аида 64 итд. Везде в работе одно ядро. Пробовал в биосе включить all cores, комп вырубается. Что делать
Все сделал но после перезагрузки надо опять задавать соответствие, как сделать чтобы windows запомнил игру и сам задавал соответствие.
