2014-10-30 55 views
0

我已經通過擴展NanoHTTPD(1.25)構建了嵌入式Web服務器。它用於Firefox瀏覽器在同一臺機器上顯示其內容。 (SuSE 11)減少未使用的Firefox連接

由於Firefox需要在很短的時間內(0.2秒刷新)顯示更改內容,因此它會非常快速地輪詢JSON URL。

setInterval(function() { 
    $.getJSON("content.json", function(d) { 
... 
     $('#content_div').html(d); 
    }) 
    .error(function() { 
     $('#content_div').html(""); 
    }); 
}, 200); 

其結果是,它創造了大量未使用的連接,有時無法從我的Web服務器的任何響應。

netstat -ap |grep "localhost:80" |wc -l 
(Not all processes could be identified, non-owned process info 
will not be shown, you would have to be root to see it all.) 
2212 

爲什麼有那麼多的TIME_WAIT連接?如何讓我的網絡服務器健康並確保我的網絡服務器的響應?

回答

0

有很多等待,因爲你的客戶提出的請求比你的服務器能處理的要多。

嘗試減少刷新持續時間,直到服務器保持穩定並且您已找到容量。

這可能是一個好主意,用jmeter或者別的什麼來測試你的服務器,這樣你就可以確定服務器的吞吐量,然後做出更好的客戶端配置決定。

+0

如前所述,客戶端和服務器都在同一臺機器上。這只是一對一的。隨着內容在毫秒內保持變化,有必要具有這樣的刷新持續時間。此前我比較了setInterval和setTimeout之間的性能。 setInterval可以達到我的要求。我可以讓SuSE刪除失敗的連接嗎? – 2014-10-30 07:08:00

+0

它們是否是本地主機或其他服務器是無關緊要的。什麼是一對一?不知道SuSE能否做到這一點,但這會掩蓋問題,而不是解決問題。您可以嘗試減少超時,以便更快地獲得連接。 – CharlieS 2014-10-30 23:21:35

+0

有人建議強制/ proc/sys/net/ipv4/tcp_tw_recycle和/ proc/sys/net/ipv4/tcp_tw_reuse成爲一個。我試過這個,netstat -ap | grep「localhost:80」| wc -l的結果變得小於100.但是我不知道這個系統改變的方式是否正確和可靠。 – 2014-12-04 06:06:09