网站无法响应HTTP/1.1
前幾天網(wǎng)站出現(xiàn)不能瀏覽,查看應(yīng)用程序日志顯示server too busy ,下面是具體的解決思路與方法。 上網(wǎng)查了一下,引起的原因主要是由于網(wǎng)站程序中連接數(shù)據(jù)庫(kù)的代碼沒(méi)有及時(shí)關(guān)閉造成的,這樣鏈接多了以后就會(huì)造成鏈接數(shù)據(jù)庫(kù)的鏈接到達(dá)峰值,不能再連接數(shù)據(jù)庫(kù),于是iis就報(bào)server too busy 。
問(wèn)題:
Server is too busy 是什么意思,怎么解決?
回答:
首先,從字面上的意思我們就可以看出:
Server is too busy = 服務(wù)器繁忙
那么這種情況應(yīng)該如何解決呢?分為兩種情況:
1、如果您是訪客,那么請(qǐng)聯(lián)系網(wǎng)站管理人員(咨詢或告知該問(wèn)題),再或者可能您訪問(wèn)的時(shí)段網(wǎng)站流量較大,可以選擇過(guò)一會(huì)再試!
2、如果您是站長(zhǎng),自己的網(wǎng)站出現(xiàn)這種情況,請(qǐng)參照網(wǎng)站Service Unavailable的解決方法。另外,也可以查閱虛擬主機(jī)或IIS下Server is too busy的一些優(yōu)化方法。
一般來(lái)說(shuō),當(dāng)你的iis發(fā)生了諸如"http:1001 server is too busy"的錯(cuò)誤時(shí),是因?yàn)槟愕腶sp程序中開(kāi)了過(guò)多的server.createobject請(qǐng)求,然后每一個(gè)請(qǐng)求都需要排隊(duì)等待直到他們確實(shí)被建立了為止。
如果你的隊(duì)列的最大長(zhǎng)度為500的話,當(dāng)隊(duì)列中已經(jīng)存在了499個(gè)請(qǐng)求時(shí),這時(shí)如果第500個(gè)請(qǐng)求到達(dá)了,就會(huì)發(fā)生“server is too busy”錯(cuò)誤。
那么怎么來(lái)使正在申請(qǐng)的請(qǐng)求最小化了,并且如何提高響應(yīng)時(shí)間呢,下面是幾個(gè)建議:
1.盡量使用.htm后綴的文件,避免使用.asp(尤其是在那些有可能招成超負(fù)荷的條件的特殊事件時(shí))。因?yàn)閔tm不會(huì)障塞服務(wù)器同時(shí)能夠得到最大的緩存性能。(有關(guān)這個(gè)的效率問(wèn)題我曾經(jīng)介紹過(guò)一篇文章,在精華區(qū)中)
2.盡量在你的asp中少使用server.createobject
3.嚴(yán)格限制你的asp調(diào)用不在你服務(wù)器上的外部資源,例如你的資源在另外一臺(tái)服務(wù)器上
4.盡量?jī)?yōu)化你的網(wǎng)絡(luò)性能和穩(wěn)定性,例如增強(qiáng)你的后臺(tái)的sql server數(shù)據(jù)庫(kù)或則遠(yuǎn)程文件共享的局域網(wǎng)性能。
5.盡量讓每一個(gè)組件的執(zhí)行速度快與調(diào)用它的速度.例如,一個(gè)組件一秒鐘被調(diào)用了20次,那么它就必須在1/20秒的時(shí)間內(nèi)執(zhí)行完成,否則該組件將會(huì)阻塞。要知道,一個(gè)阻塞的組件將會(huì)導(dǎo)致你網(wǎng)站上所有的asp崩潰
6.每個(gè)禮拜都要監(jiān)視你的網(wǎng)站的性能狀態(tài).因?yàn)閱蝹€(gè)能夠產(chǎn)生阻塞的對(duì)象能夠?qū)δ愕恼麄€(gè)網(wǎng)站產(chǎn)生很不好的影響。
但是查看代碼固然重要,關(guān)鍵是要及時(shí)解決不能訪問(wèn)的問(wèn)題,于是采取了如下解決方法:
1.首先保證網(wǎng)站可以在第一時(shí)間恢復(fù)正常:a:將sql數(shù)據(jù)庫(kù)服務(wù)器關(guān)閉,在啟動(dòng)。b:將iis重啟.這樣操作之后至少可以保證網(wǎng)站可以馬上瀏覽。
2.將iis應(yīng)用程序池的回收內(nèi)存減小。見(jiàn)到200mb左右。訪問(wèn)量在30萬(wàn)每天的情況下。應(yīng)該是5分鐘就能回收一次。避免鏈接數(shù)據(jù)庫(kù)的鏈接到大峰值。
3.查找沒(méi)有斷開(kāi)連接的代碼,將連接及時(shí)關(guān)閉。如何起名
ASP.NET性能調(diào)整之解決Server Too Busy錯(cuò)誤
最近公司的一個(gè)ASP.NET站點(diǎn)頻繁出現(xiàn)Server Too Busy錯(cuò)誤,具體表現(xiàn)為頁(yè)面響應(yīng)慢、經(jīng)常出現(xiàn)Server Too Busy異常;但實(shí)際上服務(wù)器的資源消耗卻很低,CPU使用只有10%左右,非常奇怪。
該站點(diǎn)運(yùn)行環(huán)境為Windows 2000,IIS5.0,.NET Framework 1.1,站點(diǎn)壓力約為每秒10個(gè)連接,峰值時(shí)約為30。
從網(wǎng)上查找相關(guān)資料后,從表現(xiàn)出的情況來(lái)看(響應(yīng)慢,拋出Server Too Busy異常),初步判斷為同時(shí)連接過(guò)多引起的線程阻塞引起。修改web.config中的httpRuntime配置節(jié)中的appRequestQueueLimit參數(shù)后,Server Too Busy 的錯(cuò)誤得到解決。此參數(shù)默認(rèn)從machine.config中繼承,默認(rèn)值為100,改為1000后Server Too Busy的錯(cuò)誤不再出現(xiàn)。
雖然服務(wù)器忙的錯(cuò)誤解決了,但是站點(diǎn)響應(yīng)還是很慢,有時(shí)候要等上5—10秒才能打開(kāi)頁(yè)面。分析原因應(yīng)該是同時(shí)請(qǐng)求過(guò)多,而IIS工作線程不足的原因引起,修改machine.config中processModel配置節(jié)maxWorkerThreads參數(shù)為200后站點(diǎn)響應(yīng)速度慢的問(wèn)題得到解決。此參數(shù)默認(rèn)值為20,可根據(jù)服務(wù)器硬件配置于壓力大小適當(dāng)調(diào)整。
總結(jié)
以上是生活随笔為你收集整理的网站无法响应HTTP/1.1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Win2003和Win2008防火墙导致
- 下一篇: 用IIS建立的.net网站通过IP地址不