2016-04-03 18:25:01

Отлавливаем самый горячий процесс в Windows

Windows

Некоторое время назад столкнулся с непонятным поведением в Windows 7: ноут стоит и вроде бы ничего не делает, но кулер системы охлаждения работает изо всех сил и наполняет комнату горячим воздухом. Но вот только стоит к нему подойти, чтоб посмотреть в чем дело, так сразу нагрузки исчезает и работа охлаждения нормализуется. Далее я опишу свою схему поиска и отлова "горячего" процесса.


Для начала вооружаемся: нам понадобится CoreTemp с плагином Core Temp Grapher. Теперь можно понять на каких значениях температуры шум от охлаждения начинает нам мешать, а график полезен для наблюдения, хотя и не обязателен в данной ситуации.

Продолжаем вооружаться: понадобится набор утилит PsTools. Из него будем использовать PsList для получения списка процессов и нагрузки на процессор. Пишем простенький файл c:\hotlog.bat вот с таким содержанием (пути естественно поменяйте на ваши):

chcp 1251 >nul
C:\PsTools\pslist -s 2 >> C:\Hot.log
tasklist /svc >> C:\Hot.log
exit

В результате выполнения запускается консольный диспетчер задач и скидывает в лог файл список процессов, отсортированных по нагрузке на процессор. Запускается он на 2 секунды, тк опытным путем выяснилось, что за 1 не успевает засветиться самый горячий процесс.

Далее запускается штатная утилита tasklist с ключом svc для того, чтоб по PID можно было найти имя вредоносной службы. Эти данные также дописываются в лог файл.

Ну а теперь собираем все вместе: идем в CoreTemp -> Options -> Overheat protection. Ставим галку "Enable overhaet protection", точку "Activate at specified temperature" и вводим то значение, на котором шум охлаждения при простое начинает раздражать, например 90 градусов. Рядом с полем "Execute program" жмем "browse" и выбираем наш c:\hotlog.bat, жмем OK, все готово.

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