先谈谈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