请教各位达人,基于centos 7 ,GatewayWorker框架写了个小程序,8282端口,ws协议。
平均个把月一次 ,ws无法链接。重启php stop start 后解决,第三次了,重启时80端口是可以访问的。 防火墙没开。
无法连接的客户端错误截图发下。 另外出现问题后php start.php status 截图发下。 还有发生错误后workerman.log 里的日志发下。 发生错误后命令行运行top命令截图发下。
好的,在发生问题时,我会来贴图。 谢谢walkor及时回复。
昨天重现的。 server到client走的是运营商vpn网络。 抓狂中。。。
看到mysql cpu 100%了,另外Worker进程阻塞住了,有可能是业务执行了耗时的SQL导致的。
要想定位出问题需要截图下 客户端无法连接的报错截图。 还有workerman.log里连接不上那个时间点的日志。
感谢woalkor的及时回复: 1.客户端无法链接的截图,没有保存;
workerman.log没有发现出错日志;
解决阻塞的问题,单纯加大worker数量 是否可以解决? 另外,阻塞是在哪里看到的? 请walkor不吝赐教。
status 里能看到 AzCTIWorker不见了,就是因为阻塞住了。
另外,程序本身没有复杂的查询,只有几条简单的select语句。
检查下慢sql吧。不是框架的问题
再次感谢
walkor,请教: 如果在很短时间内无法找到卡死或则慢的原因, 我能否在此进程中,执行一个定时器发送心跳,在另外一个进程内接收消息,如果N秒内没收到消息,则认为该进程卡死,则kill进程。临时解决办法。
可以这么做
又来了。。。。
请教,walkor 这个是网络阻塞吗?
对,业务代码一直卡在读fd=44的描述符上
可以利用命令
lsof -nPp 进程pid
查看fd=44的fd是什么,有可能是redis mysql curl等资源
好的,谢谢
无法连接的客户端错误截图发下。
另外出现问题后php start.php status 截图发下。
还有发生错误后workerman.log 里的日志发下。
发生错误后命令行运行top命令截图发下。
好的,在发生问题时,我会来贴图。
谢谢walkor及时回复。
昨天重现的。
server到client走的是运营商vpn网络。
抓狂中。。。
看到mysql cpu 100%了,另外Worker进程阻塞住了,有可能是业务执行了耗时的SQL导致的。
要想定位出问题需要截图下
客户端无法连接的报错截图。
还有workerman.log里连接不上那个时间点的日志。
感谢woalkor的及时回复:
1.客户端无法链接的截图,没有保存;
workerman.log没有发现出错日志;
解决阻塞的问题,单纯加大worker数量 是否可以解决?
另外,阻塞是在哪里看到的?
请walkor不吝赐教。
status 里能看到
AzCTIWorker不见了,就是因为阻塞住了。
另外,程序本身没有复杂的查询,只有几条简单的select语句。
检查下慢sql吧。不是框架的问题
再次感谢
walkor,请教:
如果在很短时间内无法找到卡死或则慢的原因,
我能否在此进程中,执行一个定时器发送心跳,在另外一个进程内接收消息,如果N秒内没收到消息,则认为该进程卡死,则kill进程。临时解决办法。
可以这么做
又来了。。。。
请教,walkor 这个是网络阻塞吗?
对,业务代码一直卡在读fd=44的描述符上
可以利用命令
查看fd=44的fd是什么,有可能是redis mysql curl等资源
好的,谢谢