為什么網站有時出現“Service Unavailable”的提示?
問:為什么我的網站有時會出現“Service Unavailable”的提示,刷新幾下又可以訪問。
答: 出現這種情況是由于您的網站超過了系統資源限制造成的,主要是流量太大或者程序占用資源太多。 1.流量太大 比如您購買的是入門經濟A型主機, 超負荷運行情況下,則會出現有時能正常訪問,有時被系統自動停止(Service Unavailable)的情況。 解決辦法是:首先登錄虛擬主機管理中心查看最近的訪問統計和流量統計,看看流量有沒有異常增加的情況,有時站內的個別RAR或者mp3文件被其他網站盜鏈,則會出現流量上升幾十倍的情況。通過我們提供的日志下載功能和訪問統計中的"文件類別"功能進行分析,可以得出是否有盜鏈或者被大量下載。如果是流量自然增長,購買的型號不能滿足要求,則需要對虛擬主機型號進行升級,以獲得更多的流量配額。 2.程序占用資源過多 比如同樣是100人在線的論壇,雷傲論壇所占的資源就是動網論壇所占資源的10倍以上;另外,一些死循環程序,或者不優化的程序(比如1.0版的阿江統計在數據庫太大的情況下)都會占用太多的系統資源,而系統資源明顯是有限的。由于我們的新虛擬主機是采用WINDOWS2003的操作系統,各網站之間是以獨立進程運行的,不會相互影響。
如果一個網站的程序占資源太多或者發生太多的錯誤,系統日志就會提示:“應用程序池 xxxx 被自動禁用,原因是為此應用程序池提供服務的進程中出現一系列錯誤, 或者提示:應用程序池 'xxxxx' 超過了其作業限制設置。有關更多信息,請參閱在 http://go.microsoft.com/fwlink/events.asp 的幫助和支持中心。 這時,訪問這個網站就會提示:Service Unavailable。一般系統會在30秒左右恢復正常,多刷新幾次就能正常訪問了。 如果經常出現類似的錯誤,請及時優化網站程序,或者升級你的虛擬主機至更高的款型,以獲得更多的系統資源。
程序占用資源太多的原因如下: 1.有一個或多個ACCESS數據庫在多次讀寫過程中損壞,微軟的MDAC系統在寫入這個損壞的ACCESS文件時,ASP線程處于BLOCK狀態,結果其他線程只能等待,IIS被死鎖了,全部的CPU時間都消耗在DLLHOST(ASP進程)中。 參考解決辦法: 壓縮和修復我的數據庫 下載數據庫文件--[如果是.asp的擴展名,請改為.mdb的擴展名]--用ACCESS打開--選擇工具--數據庫實用工具--壓縮和修復數據庫--[改回.asp的擴展名]--上傳覆蓋原來數據庫文件 2.注冊了不良的Com組件,特別是用VB開發的ACTIVE X控件,可能導致占用內存使用量不斷增長 參考解決辦法:盡量減少或避免非官方或是客戶要求的不必要的組件 3.多媒體等文件下載占用服務器帶寬 參考解決辦法:停止下載 4.程序問題 需要及時的關閉不再使用的數據庫,以避免一直占用服務器資源 在conn.asp 連接數據庫字符串語句中加入如下 sub endConnection() conn.close set conn=nothing end sub 其它程序問題:把IE選項里 顯示友好HTTP錯誤信息 的勾取消掉,再訪問網站看出現什么錯誤信息,然后再調試 5.上傳重要的數據庫等文件更新,由于正處于受訪問狀態,可能導致瞬間占用率上升 一般此情況較少,若有出現此情況時,可能有必要先暫停站點,再作更新 6.ACCESS論壇(如動網)大了以后就很容易出現數據庫方面的問題,當你的論壇數據庫在30M以上,帖子5萬左右,可能就會出現數據庫吃不消的情況 7.建議取消程序中使用的on error resume next這個容錯語句,對錯誤進行調試。 臨時解決辦法:定期刪除多余的數據、壓縮數據庫,限制論壇灌水,甚至限制論壇注冊。如果是動網論壇,可以使用論壇自帶的分表儲存功能,會有較好的效果 比較長遠辦法:更換論壇和數據庫,一般都采用動網sql商業版本+MSSQL 的方案來解決
|