请问断开连接的情况有哪些?

frontlon

我现在遇到一个问题。现象是:个别用户在连接成功后,在0-2秒之内会断开连接。检查了客户端,可以确定不是客户端主动断开。
这个断开连接数量,从服务器日志来看,还是比较频繁的。

现在服务器连接人数大约在1000左右。

请问出现这种问题的可能性有哪些?

Linux参数配置:
tcp_max_tw_buckets:20000
tcp_max_syn_backlog:262144
tcp_tw_recycle:0
file-max:6815744
root soft nofile 65535
root hard nofile 65535

  • soft nofile 65535
  • hard nofile 65535
    ulimit -n : 65535

CPU核数:16核
Gateway进程数:32
Worker进程数:64

4523 5 0
5个回答

walkor

根据手册,超过1000连接需要安装event扩展,并按照workerman手册优化linux内核

  • 暂无评论
frontlon

有event扩展:

libevent
libevent support => enabled
extension version => 0.1.0
Revision => $Revision$
libevent version => 2.0.22-stable

也已经按照手册优化内核了。

  • 暂无评论
walkor

压测下,出现问题后 php start.php status 贴下

  • 暂无评论
frontlon

谢谢大神了!有大神的帮助我心里就有依靠!

  • 暂无评论
walkor

你这个workerman版本太太低了,备份下整个项目,然后升级下workerman。

升级前先stop workerman

然后再压测下,出现问题后 php start.php status 贴下

  • frontlon 2018-07-09

    之前有3.5的时候出现过
    http://wenda.workerman.net/?/question/2689?notification_id-9630__rf-false__item_id-5179__answer_id-5179__single-TRUE#!answer_5179
    这个问题。到现在也没有解决。但是这个问题在3.2中是没有的。

    而且之前我们一只在用3.2比较稳定。现在不太敢用3.5了。

    这个和3.2有重要关系吗?请问除了升级版本,有什么好的办法吗?

  • frontlon 2018-07-09

    @1 大神求助!

  • walkor 2018-07-10

    应该不是版本影响。升级版本为了方便查看一些指标,比如是否使用了libevent/event扩展,进程是否有阻塞。

  • walkor 2018-07-10

    从status来看系统负载并不高,你这个问题有可能是业务问题或者客户端问题。
    你可以通过 tcpdump -Ans 4096 -iany port 8890 抓包看是客户端还是服务端关闭了连接,关闭连接前传输了什么数据

  • aidong_wang 2018-07-15

    现在有什么进展?我们也是同样的情况,客户端频繁被断开 tcp 连接

  • aidong_wang 2018-07-15

    @1:如果是业务问题,那 workerman.log里应该有记录的异常信息吧?我们仔细排查过,业务并没有卡住的情况存在,每次请求响应都挺快的

  • walkor 2018-07-16

    不一定有记录,比如业务哪里执行了close关闭了连接不会有记录。workerman.log只会记录Fatal Error这种致命错误

  • walkor 2018-07-16

    断开连接问题先检查客户端是否有定时发送心跳数据保活,workerman是否安装了event扩展,并按照workerman手册优化了linux内核

年代过于久远,无法发表回答
🔝