我的树脂服务器的SYN_RECV状态太多了

时间:2012-10-13 14:57:34

标签: java http resin

这里有一些信息:

cat / proc / net / sockstat

sockets: used 541
TCP: inuse 4000 orphan 3515 tw 4459 alloc 4011 mem 2012
UDP: inuse 2
RAW: inuse 0
FRAG: inuse 0 memory 0

TIME_WAIT 6014
CLOSE_WAIT 5
FIN_WAIT1 1563
FIN_WAIT2 47
ESTABLISHED 586
SYN_RECV 1314
CLOSING 154
LAST_ACK 211
Cpu(s):  0.1% us,  0.1% sy,  0.0% ni, 99.8% id,  0.0% wa,  0.0% hi,  0.0% si

树脂服务器需要几秒钟来响应HTTP请求,这让我困扰了很长时间。

我需要更多服务器吗?虽然CPU使用率很高,但服务器负载似乎并不重。

1 个答案:

答案 0 :(得分:0)

您可能会考虑一些事情来帮助追踪这一点。这可能是旧版Resin的线程饥饿问题。 (这个猜测不适用于Resin 4.0,但调试过程也是类似的。)

如果您拥有Resin 4.0 professional,请生成PDF报告或查看/ resin-admin。特别是,请看一下线程图。

或者在/ resin-admin或使用“resinctl thread-dump”或使用jps / jstack查看线程转储。

您应该在accept()中看到HTTP端口的几个线程,以及处理请求的几个线程。

如果你只在端口的accept()中看到一个或两个线程,你可能遇到了这个问题。

要么你可以升级到Resin 4.0,要么可以增加到像4096这样大的东西。旧版的Resin 3.x默认设置得太低,因为64位机器很少见。