服务器socket的time_wait进程过多

hunterkou

服务器socket的time_wait进程过多会影响实时给浏览器推数据的速度吗?
我现在就遇到了 有时候推送到浏览器的数据很及时, 有时候基本就像断开了似的(但其实没有断开)。 

2788 6 0
6个回答

walkor

一般来说time_wait状态连接数在2万以内没有问题。
注意线上如果在线连接数大于1000,需要安装event扩展,按照workerman手册优化linux内核。

  • hunterkou 2018-11-26

    大神, 另外我想问下 我用netstat -ant grep 我的socket服务器端口, 结果发现 Send-Q 这一列有很多不发数据包, 为什么呢?导致我以为是time_wait 进程造成的。

  • hunterkou 2018-11-26

    大神 看我下面的贴图, 只有一个连接在正常推送,其它的连接向客户端发送的数据都是0

hunterkou

[attach]1447[/attach]
为什么其它连接发送的数据都是0, 只有一个在正常发送。

  • 暂无评论
hunterkou

这是相关代码

  • hunterkou 2018-11-26

    有没有可能是因为 只有连接到appwork->id==0 的 才会接收到推送数据。。。。

walkor

你这个用法不能开多进程,比如a连接连到了非0号进程,0号进程是没办法直接给a连接推送的

  • hunterkou 2018-11-26

    可以指导一下应该如何改进吗?

hunterkou

我把发送的逻辑放到了 onStart外面来了, 结果现在一个连接都不发送数据了。。

  • 暂无评论
walkor

你这种方法不能用多进程,$appWork->count 设置为1

  • 暂无评论
年代过于久远,无法发表回答
🔝