先谈谈DllHotst进程消耗cpu 100%的问题:
服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处
100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种
情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。
直接原因:
有一个或多个ACCESS数据库在多次读写过程中损坏, MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。
解决办法:
把数据库下载到本地,然后用ACCESS打开,进行修复操作。再上传到网站。如果还不行,只有新建一个ACCESS数据库,再从原来的数据库中导入所有表和记录。然后把新数据库上传到服务器上。
1。以问题数据库文件jit8.mdb为例,原文件大小为17.2MB 如图:
2。用本地安装的office access 2003打开此数据库文件jit8.mdb,或者直接双击数据库文件。
这个时候会弹出一个安全警告,直接点“打开”。
3。 这时候会出现关于数据库结构的视图出来:
4。执行上面的“工具” — “数据库实用工具”—“压缩和修复数据库” 。如图:
5。 当执行完毕后,再再次回到 1。表示完成操作,可以关闭access 2003了。这个时候再看下数据库大小 如图:
怎么样,惊奇吧,原本17.2MB的数据库被这么轻易的两下减少到还有5.4MB,再传到空间里,是不是感觉速度快多了。
6。也可以借助第三方辅助工具进行压缩与修复 如:http://www.repair-access.com/aar.exe