Tomcat做推送服务引出的对TCP协议的调优

背景

公司有个会议的产品,使用Tomcat的Comet作为长连接推送服务,随着产品的用户量越来越大,出现了多次无响应事件。

产品在Linux和Windows平台上都有部署,但是Linux一直比较稳定,基本上是Windows出问题。而且公司的产品大多部署在银行内部,所以无法直接服务器检查,因为这个问题一直头疼了好一阵。

分析

公司的会议产品主要是用作iPad的推送服务器,猜测网络不好的时候大量的iPad的产生异常的网络连接阻塞了服务器。

检查产品代码发现是采用Tomcat官方推荐的Comet实现代码,没有发现问题。

通过jVisualVM等工具分析本地Tomcat的服务器连接池和内存溢出,没有发现问题。

 

而且Linux下比较稳定,Windows容易出现问题,从这点猜测Linux平台和Windows平台的差异也是一个入口点,所以最大的怀疑对象就是网络不稳定导致的相关问题。

重现

根据不断的查找TCP相关协议,猜测客户服务器那边很可能出现了TIME_WAIT,CLOSE_WAIT的TCP连接异常(这点实在是苦逼啊,没法从客户那边的服务器取证。。。)

既然有了怀疑对象就好说了,验证中......

既然网上的文章大都在讲怎么优化,那我这里为了验证问题只能反着来了(实际上反证法没法很准去的验证问题,因为多个异常的现象可能会一样啊,无论如何实验进行下去!)。

调整TcpTimedWaitDelay,MaxUserPort 参数

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]  "TcpTimedWaitDelay"=dword:0000001e
"MaxUserPort"= 20000

长时间的观察中,未完待续。。。

 

参考资料

http://www.cnblogs.com/tianzhiliang/articles/2400176.html

http://blog.csdn.net/mhfh611/article/details/8769617

http://blog.csdn.net/shootyou/article/details/6622226

http://blog.csdn.net/zdwzzu2006/article/details/7716904

转载于:https://my.oschina.net/qalong/blog/710051

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值