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