Service Unavailable的出現(xiàn)一般是資源不足,如IIS、CPU或內(nèi)存等,極少數(shù)情況下會(huì)因asp.net程序錯(cuò)誤導(dǎo)致出現(xiàn)。http://www.baidu.com
我們的所有虛擬主機(jī)均不限制IIS和CPU,因此可以排除IIS和CPU。
我司所有服務(wù)器操作系統(tǒng)均為windows2003,有個(gè)很關(guān)鍵的東西就是“應(yīng)用程序池”
一般情況下為多個(gè)站共用一個(gè)程序池,這個(gè)程序池可以簡(jiǎn)單理解為資源庫(kù),即這些站點(diǎn)共用這塊資源;內(nèi)存限制為500M物理內(nèi)存(服務(wù)器為8G內(nèi)存)。
如果這個(gè)資源被其中一個(gè)站用完,則程序池就會(huì)停止,所有使用這個(gè)程序池的站就會(huì)出現(xiàn)“Service Unavailable”的提示,直到該程序池被重新啟動(dòng)。
大多數(shù)情況下,500M內(nèi)存完全足夠使用;如果出現(xiàn)垃圾程序或遇到攻擊,則可能出現(xiàn)CPU急速上升或內(nèi)存大量使用,這是大部分“Service Unavailable”出現(xiàn)的原因。從目前我們監(jiān)測(cè)的情況看,大部分是CPU占用在90%-100%之間出現(xiàn)的。
1、出現(xiàn)“Service Unavailable”怎么辦?
我們自主開(kāi)發(fā)了一套專(zhuān)門(mén)監(jiān)視并修復(fù)IIS的程序,每隔5分鐘自動(dòng)檢查一次IIS,如果發(fā)現(xiàn)程序池停止,就會(huì)重新啟動(dòng)。因此一旦出現(xiàn)“Service Unavailable”,最多不超過(guò)5分鐘,就會(huì)自動(dòng)修復(fù),大多數(shù)情況下只需要2-5分鐘。其他大部分公司都沒(méi)有監(jiān)控程序,則只能手工修復(fù),一般持續(xù)時(shí)間為2-6小時(shí)才能發(fā)現(xiàn)并啟動(dòng)。
2、頻繁出現(xiàn)“Service Unavailable”怎么辦?
如果頻繁出現(xiàn)了這個(gè)提示,則表明其中一個(gè)和您共用資源的站點(diǎn)出了問(wèn)題,請(qǐng)聯(lián)系我們的技術(shù)員進(jìn)行排查。
也有可能您的站因?yàn)橄奶郈PU被放入了垃圾池,垃圾池有20%的CPU限制。
3、什么是垃圾池
垃圾池是我司針對(duì)消耗CPU比較嚴(yán)重(在40%-80%之間)的站點(diǎn),為防止對(duì)其他用戶(hù)產(chǎn)生影響,將其放入有CPU限制的程序池。
4、出現(xiàn)“Service Unavailable”是服務(wù)器問(wèn)題嗎?
很多人都認(rèn)為是服務(wù)器不穩(wěn)定的問(wèn)題,其實(shí)不然。如果是服務(wù)器問(wèn)題,不會(huì)出現(xiàn)“Service Unavailable”的提示,而是直接癱瘓掉,連FTP也上不去。
出現(xiàn)這個(gè)是因?yàn)橛姓军c(diǎn)消耗了大量資源,服務(wù)器的資源始終是有限的,如果長(zhǎng)期超過(guò)設(shè)置的值,則服務(wù)器會(huì)自動(dòng)停止這個(gè)程序池,防止影響其他程序池的用戶(hù)。