以下是导致服务器CPU利用率占用100%的六个常见问题及其解决方法。
1.dllhost进程导致CPU利用率达到100%
特点:服务器正常的CPU消耗应该在75%以下,CPU消耗上下波动。出现这种问题的服务器,CPU会突然一直处于100%的水平,而且不会下降。查看任务管理器,您可以发现DLLHOST.EXE消耗了所有的CPU空闲时间。在这种情况下,管理员必须重新启动iis服务。奇怪的是,重启IIS服务后一切都很顺利,但也许过了一段时间,问题又出现了。
直接原因:
一个或多个access数据库在多次读写过程中损坏。当微软的MDAC系统在写这个损坏的访问文件时,ASP线程处于阻塞状态,导致其他线程不得不等待,IIS死锁,所有CPU时间都消耗在DLLHOST中。
解决方案:
安装“一级信息监控拦截系统”,使用“首席文档督察IIS健康督察”软件。
启用“查找死锁模块”并设置:
-wblock=是
请指定您的主机文件所在的目录:
- wblockdir=d:\test
生成日志的文件保存在安装目录的log目录下,文件名为logblock.htm。
停止IIS,然后启动首席文档检查器IIS运行状况检查器,然后启动IIS。首席文档检查器IIS健康检查器将记录在logblock.htm中写入的最后一个ACCESS文件。
过一段时间,等问题出来了,比如CPU又会一直处于100%的水平。你可以停止IIS,检查logblock.htm记录的最后十个文件。注意,问题最多的是counter类的访问文件,比如“**COUNT。MDB”和“* *计数。ASP”。您可以先将最后十个文件或可疑文件删除到回收站。“我们相信,经过仔细查找,你一定能找到这份让你担忧了一段时间的文件。
找到这个文件后,可以删除,或者下载后用ACCESS2000修复,问题就解决了。
2.svchost.exe导致CPU占用率100%
在win.ini文件中,在[Windows]下,“run=”和“load=”是加载“木马”程序的可能方式,一定要小心注意。一般来说,它们的等号后面没有什么。如果您发现它们后面的路径和文件名不是您熟悉的启动文件,您的计算机可能中了特洛伊木马。当然,你要看清楚,因为很多“木马”,比如“AOL木马”,都是把自己伪装成command.exe文件,如果你不注意,可能不会发现它们不是真正的系统启动文件。
在system.ini文件中,[BOOT]下有一个“shell=文件名”。正确的文件名应该是“explorer.exe”。如果不是“explorer.exe”而是“shell=explorer.exe程序名”,那么后面的程序就是“木马”程序,说明你已经被木马攻击了。
注册表中的情况是最复杂的。用regedit命令打开注册表编辑器,点击到目录:“HKEY-local-machine \ software \ Microsoft \ windows \ current version \ run”看看有没有你不熟悉的键值中的自动启动文件,扩展名为EXE。这里要记住:有些“木马”程序生成的文件与系统自带文件非常相似,想通过伪装蒙混过关,比如“酸电池1.0版木马”,将注册表“HKEY-local-machine \ software \ Microsoft \ windows \ current version \ Run”下的Explorer键值改为Explorer=" c:\ windows \ Explorer . exe”,“木马”程序与真正的Explorer只有“I”和“L”的区别。当然,注册表中有很多地方可以隐藏“木马”程序,比如“HKEY-当前-用户\软件\微软\ windows \当前版本\运行”和“HKEY-用户\ * * * \软件\微软\ windows \当前\运行”目录,最好的办法就是在“HKEY-本地-机器\软件\微软\ windows \当前版本\运行”下找到“木马”。这种病毒也被称为“红队二代”病毒,与早前流行于西方英语系统的红队病毒有点相反,国际上称为VirtualRoot(。该蠕虫利用微软已知的溢出漏洞,通过端口80传播到其他网页服务器。黑客可以通过Http Get request scripts/root.exe运行受感染的机器,以获得对受感染机器的完全控制。
成功感染一台服务器后,如果被感染的机器是中文系统,程序会休眠2天,其他机器休眠1天。休眠时间到了,蠕虫程序会重启机器。该蠕虫还会检查机器的月份是10月还是年份是2002年,如果是,被感染的服务器就会重启。Windows NT系统启动时,NT系统会自动搜索c盘根目录下的文件explorer.exe,被网络蠕虫感染的服务器上的文件explorer.exe就是网络蠕虫本身。文件大小为8192字节,VirtualRoot网络蠕虫程序就是由这个程序执行的。同时,VirtualRoot网络蠕虫程序还将cmd.exe文件从Windows NT的系统目录复制到其他目录,为黑客入侵打开了方便之门。它还会修改系统的注册表项。通过修改注册表项,蠕虫程序可以建立一个虚拟目录C或D,病毒名称来自该目录。值得一提的是,除了文件explorer.exe,这个网络蠕虫程序的其他操作都不是基于文件的,而是直接在内存中感染和传播,很难被捕获。
让我们先来看看微软是如何描述svchost.exe的。Svchost.exe在Microsoft知识库314056中有如下描述:svchost.exe是从动态链接库(DLL)运行的服务的通用主机进程名。
实际上,svchost.exe是Windows XP系统的一个核心进程。Svchost.exe不仅出现在Windows XP中,也存在于使用NT内核的Windows系统中。通常,在Windows 2000中,svchost.exe进程的数量是两个,而在Windows XP中,svchost.exe进程的数量已经上升到四个或更多。所以当你在系统的进程列表中看到几个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 _本地_机器\软件\微软\ Windows NT \ current version \ 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错误地处理了将文件刷新到磁盘的方式,就会出现此症状。
解决办法
服务包信息
要解决此问题,请获取最新的Microsoft Windows 2000 service pack。有关其他信息,请单击下面的文章编号,以查看Microsoft知识库中相应的文章:
60910如何获得最新的Windows 2000 Service Pack
补丁信息
Microsoft提供了一个受支持的修补程序,但这只是为了解决本文中描述的问题。只有当计算机遇到本文中提到的特定问题时,才能应用此补丁。此补丁可能会接受其他测试。因此,如果这个问题没有严重影响您,Microsoft建议您等待下一个包含此修补程序的版本。