Высокая загрузка ЦП - похоже, в функции DefPortWriteAcpiRegister в ACPI.sys
Я довольно долго боролся с высокой загрузкой процессора, проблема возникает, когда я делаю полную перезагрузку моего ноутбука (DELL Precision M6800, Windows 7, 64bit), это происходит в процессе ACPI.sys (я нашел это через инструмент Kernrate от Microsoft), а загрузка ЦП остается на уровне от 9% до 12%. Если я перезагружу ноутбук, проблема исчезнет.
Сегодня я столкнулся с сообщением на этом форуме ( Устранение проблем с высокой загрузкой ЦП процессом "Система"), где пользователь magicandre1981 предоставляет довольно подробное руководство по поиску причины этой проблемы, которое я считаю очень информативным и полезным.
После установки и запуска инструмента WPR, предложенного magicandre1981 в его ответе на вышеупомянутый пост, я получил прилагаемую диаграмму использования ЦП, где, по-видимому, основная проблема заключается в функции DefPortWriteAcpiRegister в ACPI.sys. В другом посте я нашел на другом форуме ( https://msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/?page=80) magicandre1981 (я предполагаю, что тот же пользователь) предполагает, что в этом случае проблема может быть связана с температурой в ноутбуке, но я не уверен, как это проверить. Будем весьма благодарны за любые дальнейшие советы о том, как решить эту проблему.
1 ответ
После некоторого ожидания потенциального ответа (к сожалению, я его не получил) я продолжил поиск и обнаружил следующее решение, опубликованное @qedstar здесь: System (ACPI.sys) всегда использует около 15-20% моего ЦП: "Сетевые подключения -> Intel(R) Ethernet-соединение I217-LM -> щелкните правой кнопкой мыши Свойства -> Конфигурировать -> Управление питанием -> раздел Пробуждение по локальной сети -> отключить пробуждение по волшебному пакету и пробуждение по совпадению с образцом".
Я пробовал пару дней назад, с тех пор 3 раза делал полную перезагрузку и проблема вроде бы решена.
Чтобы добавить обходное решение для тех из нас, кто использует WOL, несмотря на эту невероятно длительную ошибку, которую Intel и Microsoft не хотят исправлять, я предлагаю вам свое решение, которое влечет за собой отключение и последующее включение wol на ранних этапах процесса пробуждения системы. Я рекомендую вам подтвердить, что отключение wol "wake on magic packet" действительно снижает чрезмерное использование процессора. В моем сценарии "пробуждение при совпадении с образцом" отключено.
Я добавил задачу для запуска командного файла при пробуждении (журнал: система, источник: мощность ядра, идентификатор события: 131). Обязательно проверьте: Запускать независимо от того, вошел ли пользователь в систему и: Запускать с наивысшими привилегиями.
Пакетный файл выглядит следующим образом (используйте свои собственные пути):
powershell -ExecutionPolicy Bypass -File "C: \ Users \% username% \ Documents \ woldisable.ps1"
путь локального хоста -n -q 1 -p 50 > нуль 2> &1
powershell -ExecutionPolicy Bypass -File "C: \ Users \% username% \ Documents \ wolenable.ps1"
woldisable.ps1 выглядит следующим образом (возможно, вам придется изменить имя: "Ethernet" - это имя Windows 10 по умолчанию для проверки проводного подключения к Интернету в разделе: Настройки сети и Интернета):
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Wake on Magic Packet" -DisplayValue "Disabled" -NoRestart
wolenable.ps1 выглядит следующим образом:
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Wake on Magic Packet" -DisplayValue "Enabled"
Я думаю, что потенциально вы могли бы вызвать файл.ps1 с самого начала и обойти пакет, но это работает для меня, поэтому я оставлю его на данный момент.