2014-10-30 37 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