欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-17 20:13:49
...

征:服务器正常CPU 消耗 应该在75%以下,而且CPU 消耗 应该是上下起伏的,出现这种 问题 的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE 消耗 了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,


征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。
  直接原因:
  有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。
  解决办法:
  最简单的办法是使用文件医生,自动查找并修复所有有问题的文件,请参考:
  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修复它,问题解决了!!!