Сегодня я обновился до 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% ЦП в течение нескольких часов подряд - и это не проблема, которую решит изоляция процесса)
(Я только что заметил: они наконец добавили адресную строку в редактор реестра!)
svchost.exe
непреднамеренным сбоем, и я обеспокоен тем, что запуск каждого сервиса в своем собственном процессе приведет к ненужной трате памяти (несмотря на то, что память общего процесса используется для таких общих вещей, как общие библиотеки) и может даже нанести ущерб производительности, если учесть всю дополнительную память, которая должна быть инициализирована и сериализована (при спящем режиме или просто при перемещении по t-диску). Я планирую перенастроить свой компьютер, чтобы вернуться к использованию общих процессов для служб и выполнить тесты, чтобы увидеть.