Win7系统开机后,系统响应缓慢,检查任务管理器发现某个 svchost.exe 进程占用内存和CPU过高,严重的还会经常导致打开的某些程序失去响应。
svchost.exe 是用来启动系统服务的,所以某个 svchost.exe 占用内存过大,可能就是它启动的那个服务占用内存过大,所以只要停止并禁用那个服务就行了。
搜索寻找解决方案,百度经验上的文章提示一般来说占用内存最大的服务是 Superfetch 。关闭 Superfetch 服务(修改启动方式为“手动”)即可解决问题,看了下我电脑该服务已经是关闭(手动启动)了的。
无奈继续研究,终于发现,元凶是 Windows Update(Windows自动更新服务),当它检查可用的系统更新时,承载它的 svchost.exe 进程的资源占用率快速飙升(内存占用率从24M飙升至1G),把它关闭,再重新启动系统就好了!
解决办法为:
【开始菜单】 –》【控制面板】 –》【系统和安全】 –》【Windows Update】 下面的“启用或禁用自动更新”,将更新方式修改为“从不检查更新”:
注:判断一个 SVCHOST.EXE 加载了哪些系统服务的方法
1)在Windows任务管理器的“进程”选项卡中查看占用资源较高的SVCHOST.EXE进程对应的PID,将PID记下。(如果在任务管理器中看不到“PID”,请在菜单中选择“查看”-“选择列”,选中“PID”的复选框。)
2)以管理员权限运行命令提示符(CMD.EXE),在命令提示符中执行:
TASKLIST -SVC
将看到类似如下所示的结果:
C:\Users\lee>tasklist -svc
映像名称 PID 服务
========================= ======== ============================================
svchost.exe 1080 RpcEptMapper, RpcSs
svchost.exe 1236 AudioSrv, Dhcp, eventlog, lmhosts, wscsvc
svchost.exe 1360 AudioEndpointBuilder, dot3svc, Netman,
PcaSvc, UxSms, WdiSystemHost, Wlansvc
svchost.exe 1416 EventSystem, FontCache, netprofm, nsi,
WdiServiceHost, WinHttpAutoProxySvc
svchost.exe 1468 AeLookupSvc, BITS, Browser, EapHost, gpsvc,
IKEEXT, LanmanServer, MMCSS, ProfSvc,
Schedule, SENS, ShellHWDetection, Themes,
Winmgmt, wuauserv
===============================================================================
3)对照你在任务管理器中看到的 SVCHOST.EXE 的PID,在上述结果中查找对应的 SVCHOST.EXE。例如,假设您在任务管理器中看到PID为1468的SVCHOST.EXE占用了较多系统资源,则通过 TASKLIST -SVC 的结果显示PID为1468的 SVCHOST.EXE 加载的服务,查找线索。