worker 进程 busy
按照手册调试过程如下: 调试busy进程
1.使用strace -ttp 4377
查看
2.lsof -nPp 4377
,看到是本地的一个 tcp 连接
3.netstat -lntp | grep 6042
看一下这个端口是哪个进程
pid 4399 正好是其中一个 gateway 进程
4.使用kill -SIGALRM 4377
后,strace 的进程打印一些数据后退出
后续不知道该怎么调试了,status 显示 gateway 进程都是 idle 状态
有没有大哥提供一下思路
\GatewayWorker\Gateway
类做了两个改动:1.心跳定时器改成了 1s 触发一次(被要求修改成心跳间隔更准确)
2.心跳数据从 redis 获取到然后发送
6042是啥端口?看起来是这个端口没返回数据,看下为啥没返回吧
6042是gateway进程监听的端口
因为业务需要,gateway的代码做了一些修改,strace gateway 进程没有发现阻塞,gateway进程日志也在正常打印
有可能是修改代码导致的,最好能本地重现这个问题,先判断是调用哪个接口或者什么操作导致的,然后自己一点一点打日志排查。
@1393:好的,暂时只能想办法复现一点一点打日志排查了,谢谢您了