这里写描述 生产端持续生产,消费端持续消费,长时间消费,消费端就会挂掉不消费 重启后可以消费,一个小时后必挂掉,导致消息积压
php start.php status
lsof -np pid
有问题的时候php start.php status 截图 有问题的时候strace+lsof下消费进程,截图进程系统调用和资源使用情况
命令strace -ttp pid lsof -np pid
strace -ttp pid
注意,是有问题时执行命令
大佬更新截图了
你要strace 的是monitor进程,monitor进程不参与消费。你应该strace consumer进程,找那种显示busy的comsumer进程pid
根据status结果,可能是你进程调用什么东西超时了,参考这个文档排查 https://www.workerman.net/doc/workerman/debug/busy-process.html 如果strace命令一直卡住不输出,就再开一个终端执行kill -SIGALRM pid,然后再看strace输出。
kill -SIGALRM pid
如果排查出来后说明下原因,方便大家参考。
好的大佬
调用接口超时了
竟然是root用户运行的
切换www了,谢谢提醒
不懂就问,root 权限 比 www 要高,为什么不允许 root 运行呢,而切换成 www 呢?
因为权利越高欲望就越高越危险
生动形象,感谢老哥回复
有问题的时候php start.php status 截图
有问题的时候strace+lsof下消费进程,截图进程系统调用和资源使用情况
命令
strace -ttp pid
lsof -np pid
注意,是有问题时执行命令
大佬更新截图了
你要strace 的是monitor进程,monitor进程不参与消费。你应该strace consumer进程,找那种显示busy的comsumer进程pid
根据status结果,可能是你进程调用什么东西超时了,参考这个文档排查
https://www.workerman.net/doc/workerman/debug/busy-process.html
如果strace命令一直卡住不输出,就再开一个终端执行
kill -SIGALRM pid
,然后再看strace输出。如果排查出来后说明下原因,方便大家参考。
好的大佬
调用接口超时了
竟然是root用户运行的
切换www了,谢谢提醒
不懂就问,root 权限 比 www 要高,为什么不允许 root 运行呢,而切换成 www 呢?
因为权利越高欲望就越高越危险
生动形象,感谢老哥回复