当前位置:首页 > 软件开发 > net
firefox

如何解决 dllhost 进程消耗cpu 100%的问题

特征:服务器正常cpu消耗应该在75%以下,而且cpu消耗应该是上下起伏的,出现这种问题的服务器,cpu会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是dllhost.exe消耗了所有的cpu空闲时间,管理员在这种情况下,只好重新启动iis服务,奇怪的是,重新启动 iis服务后一切正常,但可能过了一段时间后,问题又再次出现了。

直接原因:
有一个或多个access数据库在多次读写过程中损坏,微软的mdac系统在写入这个损坏的access文件时,asp线程处于block状态,结果其他线程只能等待,iis被死锁了,全部的cpu时间都消耗在dllhost中。

解决办法:
最简单的办法是使用文件医生,自动查找并修复所有有问题的文件,请参考:
_blank>http://7i24.com/serverdoctor/filedoctor.htm


另一个办法是:
安装“一流信息监控拦截系统”,使用其中的“首席文件检查官iis健康检查官”软件,
启用”查找死锁模块”,设置:
;--wblock=yes
;监控的目录,请指定您的主机的文件所在目录:
;--wblockdir=d:\test
监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm

停止iis,再启动“首席文件检查官iis健康检查官”,再启动iis,“首席文件检查官iis健康检查官”会在logblock.htm中记录下最后写入的access文件的。

过了一段时间后,当问题出来时,例如cpu会再次一直处100%的水平,可以停止iis,检查logblock.htm所记录的最后的十个文件,注意,最有问题的往往是计数器类的access文件,例如:”**count.mdb”,”**count.asp”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动iis,看看问题是否再次出现。我们相信,经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的。
找到这个文件后,可以删除它,或下载下来,用access2000修复它,问题就解决了!!!

 ↓相关文章:
© 2006-2008 All Rights Reserved