svchost.exe 的行为在 Windows 10 Creators Update(Build 1703)中发生了变化吗?

svchost.exe 的行为在 Windows 10 Creators Update(Build 1703)中发生了变化吗?

今天我通过从本地安装的 ISO 运行安装程序升级到 Creators Update。当我回到电脑前时,我打开任务管理器,发现我的内存使用量比以前高了很多(现在登录后空闲时内存使用量接近 6GB,而以前的 Windows 版本只有 2-3GB)- 进程选项卡显示有超过60不同的运行实例svchost.exe。这个 6GB 的数字只是进程内存 - 不包括用于缓存或“待机”的内存。

我运行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 之前或之后,还有其他人观察到过这种行为吗?如果这是默认配置更改,它会对系统性能或稳定性产生影响吗?

我怀疑它会增加系统稳定性,因为如果一个服务崩溃,它不会导致其他服务崩溃 - 但这会耗费大量的 RAM - 但我从来没有遇到过服务崩溃的情况 - 或者至少从来没有注意到它(相反,我遇到的最严重的问题是wuauserv连续数小时消耗 100% 的 CPU - 而这不是进程隔离可以解决的问题)。

(我刚刚注意到:他们终于在注册表编辑器中添加了一个地址栏!)

答案1

是的,这个如果你使用的 PC 内存超过 3.5GB,那么 Creators Update 会有所变化。这里所有服务都在自己的 svchost.exe 中运行,以便更好地查看哪个服务导致问题,或者如果某个服务导致 svchost.exe 崩溃,则防止其他服务崩溃。

如果您的 PC 有 3.5+ GB 的内存,您可能会注意到任务管理器中的进程数量有所增加。虽然乍一看这种变化可能令人担忧,但许多人会很高兴发现这种变化背后的动机。随着预装服务数量的增加,它们开始在 Windows 2000 中分组到称为服务主机 (svchost.exe) 的进程中。请注意,此版本推荐的 PC RAM 为 256 MB,而最低 RAM 为 64MB。由于多年来可用内存急剧增加,服务主机的内存节省优势已经减弱。因此,在运行 Windows 的内存丰富(3.5+ GB RAM)的 PC 上取消服务分组现在为我们提供了执行以下操作的机会:

  • 提高可靠性:当服务主机中的一项服务发生故障时,服务主机中的所有服务都会发生故障。换句话说,服务主机
    进程终止,导致
    该进程中所有正在运行的服务终止。

  • 提高透明度:任务管理器现在可以让您更好地了解幕后发生的情况。您现在可以查看各个服务消耗了多少 CPU、内存、磁盘和网络。

    在此处输入图片描述

  • 提高安全性:进程隔离和服务的单独权限集将提高安全性。

所以,不用担心,这是 v1703 中的一个很好的变化,一切都很好。

但有一种方法可以恢复它。这是被用户发现一个涉及 Windows 调整的网站。

因此,运行regedit.exe,转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control并创建一个 32 位 DWORDSvcHostSplitThresholdInKB并将其设置为一个大数字(与安装的 RAM 相比更大)。

相关内容