cloudwu/skynet

cluster.call调用偶发异常

palominoforever opened this issue · 0 comments

首先抱歉这是在比较老的版本(介于skynet 1.3.0和1.4.0之间的某个版本)上遇到的问题,暂时无法升级到最新版本。issue里的问题我翻到了2019年,没看到有类似的,只好在此问问有没有遇到过类似情况的大佬。
电脑系统是ubuntu 18.04
电脑配置是4核8G内存
场景是用cluster模式跑的skynet集群,目前跑在同一台电脑上
现在从进程A cluster.call 进程B,正常情况下skynet.trace()的结果如下:
正常A.txt
正常B.txt

trace的结果很短,两边的时间也吻合。但偶尔会出现异常情况如下:
异常A.txt
异常B节选.txt

(异常B节选是因为trace的结果实在太长了,有几万行,我就只选了带"tracecall"的行)

正常情况下,进程B这边只有一组tracecall begin/end。但在异常的时候,首先B侧出现的第一条trace的时间比A那边发送时慢了5秒,其次B那边在极短的时间里出现了38组tracecall begin/end,而且A那边也出现了大量的本来应该在B侧出现的trace结果(包括33组tracecall begin/end,正常时是没有的),就感觉似乎是由于这5秒延迟,cluster.call反复发送了很多次请求似的

在这个时间点上,cpu占用率不到50%,内存占用率不到30%,systemload大概是2.x,对于4核来说感觉也没什么问题
现在想不明白两个进程在同一台电脑上,网络访问应该是极快的,为何调用会出现5秒的延迟呢

另外再补充一个现象,就是在延迟的这5秒时间之内,发生过另一次A cluster.call B的操作,但这次就是正常的,几乎没有延迟,而且这次的trace结果比前一次的先返回