首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意外跳槽超时

意外跳槽超时
EN

Stack Overflow用户
提问于 2013-01-15 19:05:11
回答 1查看 1.1K关注 0票数 1

在设置连接超时之前,我就会得到一个超时异常。有人对发生了什么事有什么想法吗?

任何输入都是很棒的!

代码语言:javascript
复制
15 Jan 2013 10:44:40,944 [                   Thread-4622] WorkerThread                   INFO  [1538387622377815-4640]- - About to call server with connectionTimeoutMS=30000

15 Jan 2013 10:45:02,003 [                   Thread-4622] WorkerThread                   ERROR [1538387622377815-4640]-run():Connection timed out:java.net.ConnectException

在测试运行时,我记录了netstat、gc和打开文件的数量,没有注意到任何戏剧性的事情。

Env

  • Java 1.6
  • 春季/骆驼路线的码头(骆驼2.10)
  • 客户端是多线程的(向jetty组件发送并发批处理请求)

文件描述符:

  • 超极限-Hn 100000
  • 超极限-Sn 100000

打开文件

  • 运行cat /proc/sys/fs/file-nr的Bash脚本每隔1秒运行一次:
  • 考试开始前:56640200000
  • 最坏情况: 6720 0 200000
  • 客户端和服务器都在本地主机上运行。
  • 客户端连接超时设置为30秒。

客户机如何工作

客户端创建批并发线程(rnd在1-1000之间)并调用jetty组件,然后等待(rnd在1-30秒之间)再调用。这重复最多5分钟。

服务器:尝试使用默认的超时,并将connectTimeout设置为一个很大的值,例如60000 ms,结果相同。

运行的服务器上的

  • jetty-7.6.1.v20120215
  • 骆驼2.10.1
  • 春季3.0.7

春季/骆驼路线:

代码语言:javascript
复制
<route id="startQueue_route" trace="false">
  <from uri="jetty:http://0.0.0.0:9311" />
  <to uri="bean:LDAPBean" />
</route>

<bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent"/>
EN

回答 1

Stack Overflow用户

发布于 2013-01-18 19:44:41

我能够解决这个问题,但调整了一些tcp设置,希望这对其他人有所帮助。

我现在后退一步,将更新的camel jars替换回2.10.0,以确保修复只是tcp env问题(在设置限制之前就已经超时)。

1)我将camel和jetty更新为Java1.6的最新/最大版本,但仍然存在相同的随机超时问题。

代码语言:javascript
复制
-rw-r--r-- 1 dana dana  670388 Jan 16 18:23 spring-context-3.0.7.RELEASE.jar
-rw-r--r-- 1 dana dana  556747 Jan 16 18:24 spring-beans-3.0.7.RELEASE.jar
-rw-r--r-- 1 dana dana  383621 Jan 16 18:25 spring-core-3.0.7.RELEASE.jar
-rw-r--r-- 1 dana dana   53082 Jan 16 18:26 spring-asm-3.0.7.RELEASE.jar
-rw-r--r-- 1 dana dana  169749 Jan 16 18:27 spring-expression-3.0.7.RELEASE.jar
-rw-r--r-- 1 dana dana   88733 Jan 17 11:30 jetty-servlets-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana   97228 Jan 17 11:30 jetty-servlet-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana  338985 Jan 17 11:30 jetty-server-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana   89854 Jan 17 11:30 jetty-security-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana   24596 Jan 17 11:30 jetty-jmx-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana   87621 Jan 17 11:30 jetty-client-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana  311747 Jan 17 11:30 commons-httpclient-3.1_1.jar
-rw-r--r-- 1 dana dana  228640 Jan 17 11:30 camel-spring-2.10.3.jar
-rw-r--r-- 1 dana dana   52852 Jan 17 11:30 camel-jetty-2.10.3.jar
-rw-r--r-- 1 dana dana   66945 Jan 17 11:30 camel-http-2.10.3.jar
-rw-r--r-- 1 dana dana 2218113 Jan 17 11:30 camel-core-2.10.3.jar
-rw-r--r-- 1 dana dana  280529 Jan 17 11:33 jetty-util-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana   94481 Jan 17 11:34 jetty-http-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana  231922 Jan 17 11:36 org.springframework.transaction-    3.0.5.RELEASE.jar
-rw-r--r-- 1 dana dana  321190 Jan 17 11:37 org.springframework.aop-3.0.5.RELEASE.jar
-rw-r--r-- 1 dana dana  103293 Jan 17 11:39 jetty-io-8.1.8.v20121106.jar
-rw-r--r-- 1 dana dana  200387 Jan 17 11:45 servlet-api-3.0.jar
-rw-r--r-- 1 dana dana   21138 Jan 17 11:52 jetty-continuation-8.1.8.v20121106.jar

2)调整了tcp设置:(这似乎解决了超时问题)

代码语言:javascript
复制
ulimit -n 124000

sudo sysctl -w net.ipv4.tcp_syn_retries="1000000"
sudo sysctl -w net.ipv4.tcp_synack_retries="1000000"
sudo sysctl -w fs.file-max=200000
sudo sysctl -w net.ipv4.tcp_fin_timeout=5

sysctl -w net.ipv4.ip_local_port_range="1024 65000"
sysctl -w net.ipv4.tcp_keepalive_time="30"

##-- disable ipv6.
sysctl -w net.ipv6.conf.all.disable_ipv6="1"
sysctl -w net.ipv6.conf.default.disable_ipv6="1"
sysctl -w net.ipv6.conf.lo.disable_ipv6="1"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14345009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档