Java 连接到127.0.0.1的间歇性故障,连接到IP(eth0)时无故障

Java 连接到127.0.0.1的间歇性故障,连接到IP(eth0)时无故障,java,linux,tcp,network-programming,ip,Java,Linux,Tcp,Network Programming,Ip,我有一个在tomcat(7.0.53)、OracleJVM(1.7.x)和CentOS(6.5)上运行的基于servlet的应用程序。 有一个脚本,它通过向应用程序发出GET请求(每10秒)来定期“检查”应用程序 我遇到了以下问题: 在正常(中等)负载(~4k并行连接)下,一些健全性检查会因连接超时而失败(大约每10到20次请求失败一次)。 客户端上配置的连接超时为120秒。 只有当连接到127.0.0.1(环回)时才会发生这种情况,连接到真正的lan接口(eth0)的)没有此问题*。 因此:

我有一个在tomcat(7.0.53)、OracleJVM(1.7.x)和CentOS(6.5)上运行的基于servlet的应用程序。 有一个脚本,它通过向应用程序发出
GET
请求(每10秒)来定期“检查”应用程序

我遇到了以下问题:

在正常(中等)负载(~4k并行连接)下,一些健全性检查会因连接超时而失败(大约每10到20次请求失败一次)。 客户端上配置的连接超时为120秒。 只有当连接到
127.0.0.1
(环回)时才会发生这种情况,连接到真正的lan接口(
eth0
)的
)没有此问题*
。 因此:

curlhttp://127.0.0.1:
失败

curlhttp://1.2.3.4:
不会失败

运行
tcpdump
表明服务器端在失败的情况下不会发回
SYN-ACK

注意:出于好奇,我禁用了IPv6支持(
net.IPv6.conf.all.disable_IPv6=1
),问题消失了。 以前,未使用IPv6,但环回(
lo
)接口的IPv6已初始化,并且应用程序已绑定到所有可用接口(
127.0.0.1
::1
)。 在
eth
接口上,IPv6根本没有初始化

这种行为的可能原因是什么


是否有进一步解决此问题的方法?

如果您在eth0中初始化IPv6,则向eth0发送健全性检查时是否存在相同的问题?