以下是导致服务器CPU占用率100%的六个常见问题及其解决方法。
1.dllhost进程导致CPU占用率达到100%。
特点:服务器正常的CPU消耗应该在75%以下,CPU消耗会有波动。有这个问题的服务器,CPU会突然停留在100%的水平,不会下降。查看任务管理器,
可以发现,DLLHOST.EXE消耗了所有的CPU空闲时间。在这种情况下,管理员必须重新启动iis服务。奇怪的是,重启IIS服务后一切正常,但过了一会儿,问题又出现了。
直接原因:
一个或多个access数据库在多次读写过程中被损坏。当微软的MDAC系统写入这个损坏的访问文件时,ASP线程处于阻塞状态。结果其他线程只能等待,IIS被死锁。
所有CPU时间都消耗在DLLHOST中。
解决方案:
安装“一级信息监控拦截系统”,使用“首席文档督察IIS健康督察”软件。
启用“查找死锁模块”并设置:
--wblock=yes
受监控的目录,请指定您的主机文件所在的目录:
--wblockdir=d:\test
监控生成的日志的文件存储位置在安装目录的log目录下,文件名为logblock.htm。
停止IIS,然后启动首席文档检查器IIS健康检查器,然后启动IIS。首席文档检查员IIS Health Inspector将在logblock.htm中记录最后的书面访问文件。
过了一段时间,问题出来了,比如CPU又会一直处于100%的水平,可以停止IIS,查看logblock.htm记录的最后十个文件。注意,最有问题的文件通常是counter类的访问文件。
比如,“* *计数。MDB”和“* *计数。ASP”,可以先删除回收站中的最后十个文件或可疑文件,然后启动IIS,看看问题是否再次出现。我们相信经过仔细搜索,
我相信你能找到这个困扰你一段时间的文件。
找到这个文件后,可以删除,或者下载后用ACCESS2000修复,问题就解决了。
2.svchost.exe导致CPU占用率100%。
在win.ini文件中,在[Windows]下,“run=”和“load=”是加载木马程序的可能方式,一定要密切关注。一般来说,它们的等号后面没有什么。
如果你发现启动文件后面跟的路径和文件名你不熟悉,你的电脑可能中了木马。当然,你得看清楚,因为很多“木马”,比如“AOL Trojan特洛伊木马”,都是伪装成command.exe文件的。
如果你不注意,你可能不会发现它不是一个真正的系统启动文件。
在system.ini文件中,[BOOT]下有一个“shell=文件名”。正确的文件名应该是“explorer.exe”。如果不是“explorer.exe”,
但是“shell=explorer.exe程序名”,那么后面的程序就是“木马”程序,也就是说你已经中了“木马”了。
It changes the explorer key value in the registry "HKEY- local-machine \ software \ Microsoft \ Windows \ current version \ running" to explorer="c: \ Windows \ expiorer.exe",
当一个服务器被成功感染后,如果被感染的机器是中文系统,程序会休眠2天,其他机器休眠1天。休眠时间到了,蠕虫程序会重启机器。
该蠕虫还会检查机器的月份是10月还是年份是2002年,如果是,被感染的服务器也会重启。当Windows NT系统启动时,NT系统会自动搜索c盘根目录下的文件explorer.exe,
受该网络蠕虫程序感染的服务器上的文件explorer.exe也就是该网络蠕虫程序本身。该文件的大小是8192字节,VirtualRoot网络蠕虫程序就是通过该程序来执行的。同时,
VirtualRoot网络蠕虫程序还将cmd.exe的文件从Windows NT的system目录拷贝到别的目录,给黑客的入侵敞开了大门。它还会修改系统的注册表项目,通过该注册表项目的修改,
该蠕虫程序可以建立虚拟的目录C或者D,病毒名由此而来。值得一提的是,该网络蠕虫程序除了文件explorer.exe外,其余的操作不是基于文件的,而是直接在内存中来进行感染、传播的,
这就给捕捉带来了难度。
我们先看看微软是怎样描述svchost.exe的。在微软知识库314056中对svchost.exe有如下描述:svchost.exe 是从动态链接库(DLL) 中运行的服务的通用主机进程名称。
其实svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。
一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。
所以看到系统的进程列表中有几个svchost.exe不用那幺担心。
svchost.exe到底是做什幺用的呢?
首先我们要了解一点那就是Windows系统的中的进程分为:独立进程和共享进程这两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源微软把很多的系统服务做成了共享模式。
那svchost.exe在这中间是担任怎样一个角色呢?
svchost.exe的工作就是作为这些服务的宿主,即由svchost.exe来启动这些服务。svchost.exe只是负责为这些服务提供启动的条件,其自身并不能实现任何服务的功能,
也不能为用户提供任何服务。svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系统服务。
svchost.exe是病毒这种说法是任何产生的呢?
因为svchost.exe可以作为服务的宿主来启动服务,所以病毒、木马的编写者也挖空心思的要利用svchost.exe的这个特性来迷惑用户达到入侵、破坏计算机的目的。
如何才能辨别哪些是正常的svchost.exe进程,而哪些是病毒进程呢?
svchost.exe的键值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost”,如图1所示。
图1中每个键值表示一个独立的svchost.exe组。
微软还为我们提供了一种察看系统正在运行在svchost.exe列表中的服务的方法。以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。
系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表。
如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染,
svchost.exe的服务出现异常的话通过搜索svchost.exe文件就可以发现异常情况。一般只会找到一个在:“C:\Windows\System32”目录下的svchost.exe程序。
如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了。
还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。
上面简单的介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是一个系统的核心进程,并不是病毒进程。但由于svchost.exe进程的特殊性,
所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中毒。
3、Services.exe造成CPU使用率占用100%
症状
在基于Windows 2000 的计算机上,Services.exe 中的CPU 使用率可能间歇性地达到100 %,并且计算机可能停止响应(挂起)。出现此问题时,
连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机。如果Esent.dll 错误地处理将文件刷新到磁盘的方式,则会出现此症状。
解决方案
Service Pack 信息
要解决此问题,请获取最新的Microsoft Windows 2000 Service Pack。有关其它信息,请单击下面的文章编号,以查看Microsoft 知识库中相应的文章:
260910 如何获取最新的Windows 2000 Service Pack
修复程序信息
Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题。只有计算机遇到本文提到的特定问题时才可应用此修补程序。此修补程序可能还会接受其它一些测试。因此,
如果这个问题没有对您造成严重的影响,Microsoft 建议您等待包含此修补程序的下一个