Windows 10 创意者更新(内部版本 1703)中的 svchost.exe 行为是否发生了变化?

Dai*_*Dai 4 windows-10 windows-10-v1703

今天,我通过从本地安装的 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)...
Run Code Online (Sandbox Code Playgroud)

我知道您可以使用该sc config <serviceName> type= own命令将各个服务配置为在其自己的 svc 实例中运行,但据我所知,我从未运行过此命令。

我快速浏览了一下,Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services看起来Type大多数这些服务的关键值缺少0x10控制服务是否在其自己的svchost.exe实例中运行的标志位。我想知道是什么影响了这种变化。

有没有其他人在安装 Windows 10 创意者更新之前或之后观察到这种行为?如果是默认配置更改,是否会对系统性能或稳定性产生任何影响?

我怀疑它会提高系统稳定性,因为如果服务崩溃,它不会关闭其他服务——但这需要大量的 RAM 成本——但我从未经历过服务崩溃——或者至少曾经注意到它(相反,我遇到的最糟糕的问题是wuauserv连续几个小时消耗 100% CPU - 这不是进程隔离可以解决的问题)。

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

mag*_*981 8

是的,如果您使用 RAM 超过 3.5GB 的 PC,这是 Creators Update 中的一项更改。在这里,所有服务都在自己的 svchost.exe 中运行,以便更好地查看哪个服务导致问题或防止其他服务在服务崩溃 svchost.exe 时崩溃。

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

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

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

    在此处输入图片说明

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

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

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

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

  • 所以让我们再次从汽车上取下安全带和安全气囊,因为你从未发生过车祸。多么烂的逻辑。我有 svchost.exe 崩溃,杀死了其他几个服务,这是一个很好的改变,不管你喜不喜欢。我**正确回答了这个问题**,没什么好说的。你看到的是设计使然,所以我不讨论这个话题。 (2认同)
  • 我已经接受了您的回答,对此我很满意——我个人不同意微软在我自己的*个人*计算机上的立场(我不会在我不拥有和使用的 PC 上更改此设置)我自己的个人使用)。我理解安全气囊的比喻,但我的桌面不是一个安全关键系统,我准备接受这种风险:) (2认同)