Есть ли параметр реестра или что-то еще, чтобы ограничить количество отдельных служб, запускаемых в одном svchost.exe обработать?
Я знаю о WIN32_SHARE_PROCESS
флаг и sc
способность приложения запускать отдельные службы в их собственном процессе, но мне не нужны накладные расходы на процесс для каждый из десятков сервисов. В идеале хотелось бы увидеть 30 услуг от Автоматические обновления через рабочую станцию, которая в настоящее время обслуживается одним процессом, может использоваться от трех до пяти процессов.
Вы можете контролировать, какие службы объединяются в один процесс svchost, изменяя записи реестра на HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/SvcHost
. Вы будете изменять значения, каждое из которых содержит список запущенных в нем служб (например, netsvcs).
Об этом есть немного больше информации, большая часть которой связана с червем Conficker и очисткой после него. Это основано на исследованиях, связанных с ситуация, когда мне приходилось вручную удалять следы некоторых вредоносных сервисов.
Обновление с дополнительными ресурсами / информацией: информации не так много, и я еще не экспериментировал с этим, но самая полезная информация, которую я нашел ранее во время исследования, была:
Вы не заметите улучшения производительности, сделав это ...
Если вы хотите запускать некоторые службы по запросу, установите для них «Ручной запуск», и Windows запустит службу при попытке доступа.
Если вы хотите видеть, какая служба вызывает проблемы с производительностью, попробуйте запустить командную строку и использовать эту команду: C:\>tasklist /svc /FI "IMAGENAME eq svchost.exe"
Это покажет вам все экземпляры svchost.exe, какие службы работают в каждом процессе, и PID (идентификатор процесса).
Как только вы узнаете PID, вы можете запустить диспетчер задач (Ctrl+Alt+Del)
и в Processes
вкладка перейти к View > Select Columns...
и решил показать PID.
Тогда вы узнаете, какой svchost.exe вызывает проблемы с производительностью, и сможете связать PID со списком служб, запущенных в этом экземпляре svchost.exe.
Надеюсь, это поможет устранить основную причину вашего вопроса.