GatewayWorker 进程busy

Ederth

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 状态
有没有大哥提供一下思路

2604 2 0
2个回答

Ederth

\GatewayWorker\Gateway 类做了两个改动:
1.心跳定时器改成了 1s 触发一次(被要求修改成心跳间隔更准确)
2.心跳数据从 redis 获取到然后发送

  • 暂无评论
six

6042是啥端口?看起来是这个端口没返回数据,看下为啥没返回吧

  • Ederth 2020-06-30

    6042是gateway进程监听的端口

  • Ederth 2020-06-30

    因为业务需要,gateway的代码做了一些修改,strace gateway 进程没有发现阻塞,gateway进程日志也在正常打印

  • six 2020-06-30

    有可能是修改代码导致的,最好能本地重现这个问题,先判断是调用哪个接口或者什么操作导致的,然后自己一点一点打日志排查。

  • Ederth 2020-06-30

    @1393:好的,暂时只能想办法复现一点一点打日志排查了,谢谢您了

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