财讯中国

电脑svchost进程疯狂加内存怎么回事?svchost.exe 为什么会占用那么多 CPU?

来源:知乎 2021-02-23 15:09:11

首先解决你在任务管理器中看不到该进程的问题。如下图所示:

需要选中下方的”显示所有用户的进程“才能看到多个svchost.exe。

究其原因,是因为svchost.exe的全名是Windows服务宿主 ,不是用户进程,而是用户名为SYSTEM、LOCAL SERVICE或NETWORK SERVICE的系统进程。

所谓服务,指的是保障系统正常运行的一系列底层与后台任务流程。svchost.exe作为其宿主,通过调用不同的系统模块,执行不同的命令行来执行不同的任务。可以认为它是一个空壳,通过外部的,模块化的,分散化的内容来发挥作用。

下面来举例。通过开始——运行——services.msc可以打开如下图所示的窗口,即为系统提供的管理工具(家庭版系统中可能不存在该文件):

随机打开一个,例如下图所示:

注意可执行文件的路径及其后的参数。这是一个典型的例子。但是并非所有服务都通过svchost.exe来执行。如下图:

在这里,我需要强调一点:Windows下的服务通常来说都发挥着重要的作用,但并非完全不可或缺。svchost.exe也不例外。

我的结论为:当svchost.exe长时间 占用大量 CPU时,一定说明系统出现了问题。

具体的排查方法,可以按照下列步骤进行:

在任务管理器中找到对应的svchost.exe,如下图所示:

点击右键,选择“转到服务”。例如下图所示:

根据服务的必要性与重要性,根据情况选择结束进程或进行下一步分析。具体分析工具可以选择百度搜索,也可以手动使用Process Monitor等工具进行占用分析。具体原因可能多种多样,无法给出统一的答案,很可能分析半天仍没有头绪。这也正是很多情况下,长时间的分析并不如重装系统来得有效的原因。

总而言之,一般来说 ,问题可能出在以下几个方面:

其一,长期读取某一个文件,造成死循环,导致CPU占用率较高。我遇到过Vista下长期读取hosts导致资源占用过高的情况。

其二,网络资源占用过大。这也是最常见的原因。这与DNS、网关、局域网状况等有多方面的关系,不可一概而论。

其三,其他问题。其实这部分我说不出来……简而言之是各种其他千奇百怪的问题,这种情况下,重装系统是唯一可能的选择。

我们需要记住,解决一切计算机问题的主要原则是:具体问题具体分析。

我们无法对问题表现相同的的问题提出一个通用的解决方案,但是,我们可以从多个角度下手,对个别问题作出自己的判断。

标签:svchost.exe占用CPU

相关新闻