androidpn使用一段时间后推送不成功解决方案.doc

androidpn使用一段时间后推送不成功解决方案.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
androidpn使用一段时间后推送不成功解决方案

Androidpn使用一段时间后推送不成功 解决方案 问题背景 服务端在使用一段时间后推送没有反应,检测后发现部署服务的服务器端口被占用尽了。Androidpn使用的mina框架维持与客户端的长连接,本质上还是可以当成基本的socket通讯进行分析。根据以往的经验,应当是too many open files” 导致 socket 连接不能建立。 定位测试 现进行了如下测试,使用netstat 看看网络连接状态(netstat -na|findstr 5222命令监视服务端的5222端口,该端口为Androidpn监听socket连接所用)。 正常关闭客户端时,观察到服务端连接可以正常释放。 当客户端网络异常断开后(如开启飞行模式、或者用户在地铁等网络信号差的地方),服务端连接没有释放,端口依旧被占用。一直进行这样的测试,发现大量的 127.0.0.1 到 127.0.0.1 的连接,状态为 ESTABLISHED , 端口看起来是逐步增加的。 所以当客户端不停的进行连接导致服务端的连接数越来越多,最终导致服务器文件句柄消耗完了再无法建立socket连接,英文名词为“socket leak”。 解决分析 mina框架属于apache公司,针对”too many open files”的情况,apache的官方网站要永久生效修改:/etc/security/limits.conf文件在文件最后加上以下信息:* - nofile 65536 以上语句表示,每个用户打开文件的个数为65536个修改文件:/etc/sysctl.conf在文件最后一行加上:fs.file-max=65536 重启服务器后运行: ulimit -a 65536之后可以缓解问题出现的频率,但其实并没有解决端口被占用的问题。 2 减少操作系统 socket连接的等待时间。 在windows TIME_WAIT的缺省值是4 minutes,在Linux中时60秒;

文档评论(0)

tianma2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档