3

Сегодня я обновился до Creators Update, запустив установку из локально установленного ISO. Вернувшись к своему компьютеру, я открыл диспетчер задач и увидел, что использование моей памяти было намного выше, чем было ранее (теперь это почти 6 ГБ памяти в режиме ожидания после входа в систему вместо 2-3 ГБ в предыдущей сборке Windows) - процессы Вкладка показала, что было запущено более 60 различных экземпляров svchost.exe . Эта цифра 6 ГБ предназначена только для памяти процесса - не включая память, используемую для кэширования или "ожидания".

Я запустил tasklist /svc чтобы получить список служб, в которых процессы, и он перечисляет почти каждый экземпляр svchost.exe как содержащий только одну работающую службу (за исключением нескольких экземпляров, которые работают с несколькими системными службами),

Вот мой вывод:

Image Name                     PID Services
========================= ======== ============================================
System Idle Process              0 N/A
System                           4 N/A
smss.exe                       440 N/A
csrss.exe                      612 N/A
wininit.exe                    700 N/A
csrss.exe                      708 N/A
services.exe                   776 N/A
lsass.exe                      784 KeyIso, Netlogon, SamSs, VaultSvc
svchost.exe                    888 PlugPlay
svchost.exe                    908 BrokerInfrastructure, DcomLaunch, Power,
                                   SystemEventsBroker
fontdrvhost.exe                936 N/A
svchost.exe                   1000 RpcEptMapper, RpcSs
svchost.exe                    104 LSM
winlogon.exe                   544 N/A
fontdrvhost.exe                420 N/A
svchost.exe                   1072 DeviceInstall
dwm.exe                       1136 N/A
svchost.exe                   1164 BFE, CoreMessagingRegistrar, MpsSvc
svchost.exe                   1424 lmhosts
svchost.exe                   1432 W32Time
svchost.exe                   1440 nsi
svchost.exe                   1448 wudfsvc
svchost.exe                   1528 hidserv
svchost.exe                   1628 Dhcp
svchost.exe                   1716 Dnscache
svchost.exe                   1748 EventLog
WUDFHost.exe                  1792 N/A
svchost.exe                   1908 TimeBrokerSvc
svchost.exe                   1952 NlaSvc
NVDisplay.Container.exe       1968 NVDisplay.ContainerLocalSystem
svchost.exe                   1324 Themes
svchost.exe                   1596 ProfSvc
svchost.exe                   1944 EventSystem
svchost.exe                   1052 netprofm
svchost.exe                   2116 StateRepository
svchost.exe                   2256 SENS
svchost.exe                   2296 AudioEndpointBuilder
svchost.exe                   2304 FontCache
(etc)...

Я знаю, что вы можете настроить отдельные службы для запуска в своем собственном экземпляре svc с помощью команды sc config <serviceName> type= own , но, насколько мне известно, я никогда не выполнял эту команду.

Я быстро взглянул на Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services и похоже, что в значениях ключей Type для большинства этих служб отсутствует бит флага 0x10 который контролирует, работает ли служба в своем собственном экземпляре svchost.exe или нет , Интересно, что могло повлиять на это изменение.

Кто-нибудь еще наблюдал такое поведение до или после установки Windows 10 Creators Update? Если это изменение конфигурации по умолчанию, повлияет ли это на производительность или стабильность системы?

Я подозреваю, что это повысит стабильность системы, потому что в случае сбоя службы это не приведет к остановке других служб - но это связано с огромными затратами оперативной памяти - но я никогда не сталкивался со сбоем службы - или, по крайней мере, когда-либо замечал это ( вместо этого наихудшая проблема, с которой я столкнулся, это то, что wuauserv потребляет 100% ЦП в течение нескольких часов подряд - и это не проблема, которую решит изоляция процесса).

(Я только что заметил: они наконец добавили адресную строку в редактор реестра!)

1 ответ1

6

Да, это изменение в обновлении Creators, если вы используете компьютер с более чем 3,5 ГБ ОЗУ. Здесь все службы запускаются в своем собственном файле svchost.exe, чтобы лучше увидеть, какая служба вызывает проблему или предотвратить сбой других служб, если служба вызывает сбой svchost.exe.

Если ваш компьютер имеет 3,5 ГБ памяти, вы можете заметить увеличение количества процессов в диспетчере задач. Хотя это изменение может выглядеть на первый взгляд, многие будут рады узнать мотивы этого изменения. По мере роста количества предустановленных служб они начали группироваться в процессы, известные как узлы служб (svchost.exe) в Windows 2000. Обратите внимание, что рекомендуемая для этого выпуска оперативная память для ПК составляла 256 МБ, а минимальная - 64 МБ. Из-за резкого увеличения объема доступной памяти с годами преимущество сервис-хостов в экономии памяти уменьшилось. Соответственно, разгруппировка сервисов на ПК с большим объемом памяти (3,5 ГБ ОЗУ) под управлением Windows теперь дает нам возможность делать следующее:

  • Повышение надежности: при сбое одной службы на узле службы происходит сбой всех служб на узле службы. Другими словами, сервис хост
    процесс завершается, что приводит к прекращению всех работ
    услуги в рамках этого процесса.

  • Увеличьте прозрачность: диспетчер задач теперь даст вам лучшее представление о том, что происходит за кулисами. Теперь вы можете видеть, сколько ресурсов процессора, памяти, диска и сети потребляют отдельные службы.

  • Повышение безопасности: изоляция процессов и отдельные наборы разрешений для служб повысят безопасность.

Так что не волнуйтесь, это хорошее изменение в v1703, и все в порядке.

Но есть способ вернуть его. Это было обнаружено пользователем веб-сайта, который занимается настройкой Windows.

Итак, запустите regedit.exe , перейдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control и создайте 32-битный DWORD SvcHostSplitThresholdInKB и установите для него большое число (больше по сравнению с установленной ОЗУ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .