На этот вопрос уже есть ответ здесь:
- Нахождение использования ЦП службы 3 ответа
У меня есть ноутбук с 32-разрядной системой Win 7 на базе двухъядерного процессора Pentium (это ноутбук 2010 года). Иногда он работает нормально, но обычно он работает на холостом ходу при 100% загрузке процессора. Процессор используется двумя процессами svchost.exe (по 50% каждый). Насколько я понимаю, это сервисный хост. Есть ли способ узнать, какой сервис является виновником?
Примечательно: это происходит даже в безопасном режиме.
Ответы:
В качестве примера svchost.exe размещены несколько системных служб, вот как разделить службы, каждый на свой экземпляр svchost.exe, чтобы узнать, какая служба потребляет процессор.
Процедура выглядит следующим образом:
Используйте диспетчер задач, чтобы показать все процессы, отсортированные по убыванию ЦП и отметьте PID процессов, которые потребляют процессор
В командной строке (cmd) введите команду
Tasklist /svc /fi "IMAGENAME eq svchost.exe"
Проблемные экземпляры svchost.exe теперь могут быть найдены по их PID а справа вы найдете список системных служб, которые они размещают
Для каждого из имен в списке введите следующую команду в Командная строка (cmd), которая запускается от имени администратора:
sc config <name> type= own
(Обратите внимание на пробел между ‘=’ и ‘own’)
перезагружать
Системные службы, которые вы разделили, теперь будут работать в своем собственном экземпляре. svchost.exe и можно увидеть в диспетчере задач на вкладке «Процессы». Вы можете щелкнуть правой кнопкой мыши по экземпляру и выбрать «Перейти к сервису (ам)» перейти непосредственно к сервису или снова использовать команду tasklist.
Для получения дополнительной информации см. Статью Microsoft
Начало работы с SVCHOST.EXE ,
источник
Process Explorer делает это легко Я подтвердил, что это работает с Process Explorer v16.20 на 64-битной Windows 7 Professional и 64-битной Windows 10 Pro.
svchost.exe
процесс с высоким (или даже просто измеримым / непустым) значением вCPU
колонка. Сортировка поProcess
или жеCPU
колонка может помочь с этим.svchost.exe
обработать и выбратьProperties...
,Threads
Вкладка. Все темы в этом процессе будут отображаться.CPU
колонка. Сортировка поCPU
колонка может помочь с этим.Service
столбец покажет имя службы, в которой работает этот поток.Если название сервиса вам не знакомо ...
Services
Вкладка. Все сервисы, которые работают в этом процессе, будут отображены.Service
колонка наServices
вкладка к значениюService
колонка наThreads
Вкладка, расположенная на шаге 6.Display Name
В столбце будет отображаться понятное название сервиса. Описание выбранной услуги появится под списком услуг.источник
Ты можешь использовать Диспетчер задач , Есть и другие способы (командная строка или даже написать какую-нибудь программу, используя WinAPI ), но я не буду обсуждать их здесь. Прежде чем идти дальше, ваш пользователь должен иметь права администратора.
На Процессы вкладка:
Назад к Процессы вкладка, нажмите на ЦПУ Заголовок столбца, так что процессы будут упорядочены по их загрузке процессора (обратите внимание, что процессы могут отображаться в порядке возрастания / убывания - каждый щелчок по ЦПУ переключает заказы), нажимайте, пока 2 процесса не появятся в верхней части таблицы. Теперь вы можете видеть их командную строку (я не знаю, но у меня есть ощущение, что один из них
netsvcs
(Сетевые сервисы)), а также их PID.Далее необходимо сопоставить 2 процесса с сервисами. Для этого вы можете:
EDIT0 : Обновленный ответ, чтобы обеспечить более простой (и более понятный) подход вместо царапая мою правую голову левой рукой стиль один, который я изначально разместил.
источник