workerman时常假死,链接不上去,非得重启

loveruby

为什么按照官方文档用它与thinkphp3一起使用,workerman部署在不同服务器上用一段时间有3个月以上,时常性质的假死,在重启后2个月内视乎没有什么不稳定的就是不知道为什么它突然连不上去了,怎么也连不上去了。只能重启服务才能再次连上去,搞不懂为什么会这样,现在公司业务方面很多用了这个推送,要是时常会死掉该考虑换掉它了,这么不稳定的。。时常的假死,不确定原因假死,既没有日志也没有报错信息,就死掉了。连不上去,而那服务器居然还是开着的。

6337 1 0
1个回答

walkor 打赏

首先,workerman本身100%稳定,前提是业务代码没有问题,保证event扩展已经安装,并且根据workerman手册优化了linux内核。这就像有一辆好车,但是司机不行也容易翻车道理一样。

假死一般是由于业务访问了外部接口或者存储没有设置好超时时间,外部接口或者存储一直没有返回数据导致业务傻等,无法正常运行。还有业务死循环等都有可能导致服务出现问题。出现这些情况运行php start.php status 能看到busy状态的进程,根据手册 http://doc.workerman.net/debug/busy-process.html 排查问题。
 
另外如果连接数超过1000需要安装event扩展,按照workerman手册优化linux内核,否则也会有连不上的情况。
http://doc.workerman.net/appendices/kernel-optimization.html
 
当连不上的时候,通过top命令和strace -ttp pid命令基本能定位到哪里出了问题。
 
 
 
 
 

  • loveruby 2019-03-27

    event扩展指的是PHP扩展吗?完全按照官方的那个文档搭个推送服务而已。其他什么都没有做什么。连接数现在照看100都没有超过。

  • walkor 2019-03-30

    手册有说,windows只能开发调试使用,连接数最多支持200左右,多了会连不上。建议换linux系统

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