Система Windows 10 (ntoskrnl.exe), использующая процессор, когда машина простаивает некоторое время

1194
Jez

Я заметил, что процессор моего ноутбука начинает привыкать (может быть, 15% использования?) И вентилятор процессора включается, как правило, вечером, когда мой ноутбук простаивает в течение 5 минут или около того. Процесс с использованием ЦП Systemне очень много говорил мне, поэтому я решил оставить Process Explorer запущенным и отслеживать потоки System. Он снова начал использовать процессор, и вот что я нашел:

Система Process Explorer

Поток, поедающий ЦП после нескольких минут простоя, имел начальный адрес ntoskrnl.exe!RtlAvlRemoveNode+0x7ba0. Так что это кажется довольно ядром системы. Кто-нибудь знает, что может быть причиной этого и / или как я мог бы дополнительно диагностировать это? Мне не нравится, когда мой вентилятор процессора так крутится, и я хотел бы, чтобы система делала это.

Я даже отключил все запланированные задачи, которые запускаются в режиме ожидания (находя их с помощью PowerShell Get-ScheduledTask | Where-Object { $_.State -ne "Disabled" } | Select-Object TaskName, TaskPath, Triggers | Where-Object { $_.Triggers -match "MSFT_TaskIdleTrigger" }), и это все еще происходит.

2
Это происходит при загрузке в безопасном режиме? Если это не так, вы можете использовать [Autoruns] (https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns), чтобы отключить задачу запуска в пакетах, пока не найдете проблему один. harrymc 5 лет назад 0
Это ядро ​​NT, использующее процессор; Я сомневаюсь, что это какая-то задача запуска. Jez 5 лет назад 0
Попробуйте загрузиться в безопасном режиме для теста. Система может быть много вещей. harrymc 5 лет назад 0
Я не думаю, что вы перехватили все «пустые задачи» с помощью этого запроса. Например, печально известный «RunFullMemoryDiagnostic» не отображается. Вы можете использовать Windows Performance Toolkit, чтобы отследить, что он делает. См. Https://superuser.com/questions/ 527401 / Troubleshoot-High-CPU-Use-the-System-Process / 1164299 # 1164299 за замечательные примеры от magicandre1981 HoD 5 лет назад 1
Несмотря на то, что это не решает основную проблему, если вентилятор центрального процессора является проблемой, вы рассматривали возможность приобретения безвентиляторного ПК? Stese 5 лет назад 0
Jez - Попробуйте ** остановить ** и ** отключить ** службу `superfetch` из` services.msc`, как указано в инструкциях в [** Отключить из служб **] (https: //www.technipages. com / windows-enable-disable-superfetch) в этом посте. Затем, чтобы быть тщательным, перезагрузите машину, а затем проверьте, если у вас все еще есть эта проблема. Кроме того, из того же инструмента `services.msc` остановите и отключите именованную службу ** Windows Search **, а затем перезагрузите, протестируйте и т. Д. Чтобы отменить, просто включите их обратно из` services.msc` и затем перезагрузите, протестируйте и т. д. Дайте мне знать, если это поможет, когда сможете. Pimp Juice IT 5 лет назад 0
Джез, просто хотел знать, тебе удалось решить проблему? Если да, то какое приложение ответственно за сокращение времени процессора? PS. И спасибо за применение щедрости, рад, что вы нашли мой ответ полезным. Albin 5 лет назад 0
Загрузка процессора не происходила уже неделю. В следующий раз я попытаюсь выяснить, что было причиной этого с WPT. Jez 5 лет назад 0

3 ответа на вопрос

1
Albin

Упоминается начальный адрес потока RtlAvlRemoveNode. Эта функция вызывается через ntoskrnl.exe. Rtl расшифровывается как Run-Time Library, поэтому (скорее всего и без дальнейшего углубления в нее) она вызывается через нативное приложение (например, программу autochk). Если вы хотите узнать больше об истории, на этом сайте много информации . Однако это только начальный адрес, не обязательно, чтобы эта функция вызывала использование процессорного времени. Нажмите кнопку «стек», чтобы увидеть полный стек вызовов, или используйте сторонние инструменты, такие как ProcessThreadsView .

У вас есть два основных варианта:

  • Подход с отслеживанием ошибок: вы отключаете приложения, например, через планировщик задач / безопасный режим и т. Д., Надеясь отключить нужное приложение. (Скорее всего, приложениями могут быть заставка, дефрагментация, индекс поиска и т. Д., Но не обязательно что-то, что вызывается при простое ПК)

  • Аналитический подход: вы проводите дальнейший анализ, чтобы точно определить проблему, например, путем дополнительного анализа рассматриваемого потока или с помощью «Windows Performance Toolkit» для дальнейшей идентификации приложения, которое вызывает использование ЦП.

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

Если вы ничего не получите по следам и ошибкам, вам придется переключиться на более аналитический подход. Как предложил HoD в своем комментарии, Windows Performance Toolkit - хороший следующий шаг. Когда у вас будет больше информации или возникнут конкретные проблемы, вы можете указать свой вопрос, чтобы мы могли вам помочь.

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

1
harrymc

Вызываемые подсистемы, которые я могу определить в вашем стеке вызовов:

  • MMCSS - mmcss.sys
  • DirectX 12 - dxgmms2.sys

Можно увидеть другие низкоуровневые вызовы служебных функций, но мы не знаем, кто их вызывает, поэтому они не добавляют много информации. Здесь четко обозначены подсистемы высокого уровня MMCSS и DirectX 12:

  • Служба планировщика мультимедийных классов (MMCSS) : обеспечивает мультимедийным приложениям приоритетный доступ к ресурсам ЦП.
  • DirectX 12 : программное обеспечение Windows, которое работает непосредственно с вашим видео и аудио оборудованием.

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

Планировщик заданий никогда не запускает графическое приложение, так что это не то направление, куда нужно идти. Вам нужно найти графическое приложение, которое запускается в состоянии простоя.

Наиболее очевидным кандидатом является заставка. Я бы предложил отключить его в качестве теста:

  • Щелкните правой кнопкой мыши по рабочему столу и выберите «Персонализация»> «Экран блокировки»> «Настройки экранной заставки», выберите (None)«Экранная заставка» и нажмите «ОК».
  • Вместо этого вы могли бы в Панели управления> Параметры электропитания> Изменить настройки плана установить «Отключить дисплей», чтобы, по крайней мере, иметь пустой экран.

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

Спасибо, как вы пришли к выводу, что "RtlSetOwnerSecurityDescriptor" использует много процессорного времени? Может быть, я упустил из виду но я не вижу никаких признаков этого ?! Albin 5 лет назад 0
@Albin: Как я уже сказал, я этого не сделал, постер сделал. Я предлагаю очистить наши комментарии до того, как модератор будет раздражен. harrymc 5 лет назад 0
Давайте [продолжим это обсуждение в чате] (https://chat.stackexchange.com/rooms/84889/discussion-between-albin-and-harrymc). Albin 5 лет назад 0
Это не стек вызовов; это дюжина отдельных тем. Единственный, кто использует значительный процессор, является верхним, в RtlAvlRemoveNode. Поток mmcss, похоже, совсем не отвечает за большую нагрузку на процессор. dave 5 лет назад 0
Тот факт, что начальный адрес является `` `RtlAvlRemoveNode + кое-что```, не обязательно означает, что мы выполняем в RtlAvlRemoveNode. Это может быть просто ближайший символ, доступный для ProcessExplorer. Мы могли бы догадаться, знали ли мы `` `что-то```, но, увы, изображение на экране было слишком маленьким. Возможно ли более широкое изображение, захватив все части `` `+ 0x ....` ``? (Рутина RTL AVL кажется маловероятным началом потока) dave 5 лет назад 0
@ dave спасибо, "точно" моя точка зрения! :) Возможно, вы захотите поместить свой комментарий вместо здесь, хотя, я думаю, есть больше шансов получить ответ от ОП. Albin 5 лет назад 0
@dave: низкоуровневые служебные вызовы не очень полезны для анализа, но четко обозначены подсистемы высокого уровня MMCSS и DirectX 12, оба графические по своей природе. Понятно, что графика является частью указанной программы, и на этом основывается мой ответ. Остальное менее важно. harrymc 5 лет назад 0
@Albin: я уточнил свой ответ и вычеркнул спорные части, которые не были действительно полезны в любом случае. Но мой аргумент остается в силе. harrymc 5 лет назад 0
@harrymc какой аргумент? Вы только что высказали свое мнение, вы не предоставили никаких причин для своего вывода (почему «RtlSetOwnerSecurityDescriptor» использует много процессорного времени). Что еще более важно, вы предложили не продолжать эту дискуссию здесь, что является хорошим моментом, поэтому я открыл чат. Было бы неплохо, если бы вы могли там ответить. ;) PS. как правильно указывает Дейв, OP не публикует никакого стека вызовов (по крайней мере, не в текущей версии его вопроса), но это просто семантическое и не важно для меня, поэтому я не упоминал об этом раньше. Albin 5 лет назад 0
@harrymc PS. не поймите меня неправильно, я очень ценю все ваши ответы (они помогли мне довольно много раз). Я все еще хотел бы знать ваши причины, потому что я прихожу к другому выводу в этом случае. Albin 5 лет назад 0
@Albin: я думаю, что у нас было великолепное недоразумение, и я надеюсь, что ответ сейчас однозначен. Я не очень понял, почему вы настаивали на неважной детали. Я виноват в том, что не сформулировал это более точно. Не стесняйтесь настаивать на том, что мой ответ написан плохо, если конечный результат является хорошим ответом, и я надеюсь, что теперь это спасибо за вашу помощь. Ваше другое мнение - это само отношение, которое обогащает SU. harrymc 5 лет назад 0
@harrymc Конечно. На самом деле есть несколько моментов (например, по-прежнему нет причин для выбора выбранной темы в качестве причины). Но я бы посоветовал сделать это в чате ?! Albin 5 лет назад 0
@Albin: Спасибо, но я предпочитаю дать этому посту отдохнуть. С информацией под рукой, я не могу сделать лучше. harrymc 5 лет назад 0
@harrymc Спасибо, но если вы предлагаете обсудить свой ответ, было бы неплохо, если бы вы поддержали его. Но в конце концов это ваш выбор. Было бы неплохо, если бы вы могли исправить две ошибки в вашем ответе, чтобы другие пользователи не запутались. В конце концов, у вас много репутации, и многие люди верят, что вы ответите. И спасибо за всю вашу работу! :) Albin 5 лет назад 0
0
David Marshall

Это просто задачи по обслуживанию Windows 10, которые запускаются после простоя системы некоторое время.

Erm, which tasks? How can I tell? How can I stop them from running? Jez 5 лет назад 2
См. Раздел «Безопасность и обслуживание» на старой панели управления (ее нужно искать с помощью Cortana). Он запустит такие вещи, как дефрагментация диска, очистка обновлений и т. Д. Вам придется искать в планировщике заданий, чтобы отключить то, что вам не нужно. https://docs.microsoft.com/en-gb/windows/desktop/TaskSchd/task-maintenence David Marshall 5 лет назад 0
Я отключил их, и проблема все еще происходит. Jez 5 лет назад 0