Jenkins在高延迟网络上的第一份工作进展缓慢

时间:2019-01-31 23:22:14

标签: amazon-web-services jenkins networking

我们已决定更新我们的基础架构,以将Jenkins与Kubernetes插件一起使用。我们通过以下方式配置了4节点混合集群:

  • 2个本地节点:A和B
  • AWS上的2个节点:C和D

在数据中心中,延迟非常低(<1毫秒):A-B或C-D。

在整个互联网上,等待时间非常长(75毫秒):A-C,A-D,B-C,B-D。

我们注意到,当Jenkins主服务器和Jenkins代理之间存在高延迟时,从作业工作完成到作业显示“成功”,作业似乎要等待45秒。此延迟仅发生在第一份工作上。当等待时间很短时,此延迟小于2秒。时间完全可重复,可用带宽充足(> 50 Mb / s)。

令人惊讶的是,额外的时间仅在工作完成后才发生,而不管工作需要多少时间。除此之外,数据包捕获显示在第一次执行作业期间从主服务器到代理的25 MB数据。

我们能够通过在本地运行主服务器和代理并通过tc注入延迟来复制此行为。

有人遇到过类似的问题,并且采用了哪种解决方案?

似乎Jenkins在最后发送了一些数据,并且RPC框架正在执行受延迟限制的顺序调用。但是数据是什么,有什么办法可以避免呢?我们已经剥离了所有非Kubernetes插件,以测试可能是构建后插件代码的理论,但这没有效果。

0 个答案:

没有答案