定时跑批过程中,为啥jenkins会偶现卡住?

背景:

最近这段时间(其实持续了1个月),在线上监控的自动化执行过程中,会偶现jenkins执行任务时502卡住,阻塞其他任务。

最初的原因以为是我的代码有问题,或者执行的接口返回超时导致的。

后来在代码里加了异常捕获、查看对应时间对应接口的服务端日志,都没有找到原因。

 

后来找运维同学帮助,修改了配置之后,得到解决。

“在浏览器和jenkins之间有一个nginx反向代理,负责把流量转发到jenkins上。nginx所在主机上启用了连接追踪功能,这个负责记录代理前后的连接的对应关系,记录内容被放到一个哈希表中。由于nginx要代理的域名有点多,而哈希表容量有限,所以容量满了内核就开始丢包,nginx发送不了请求或者收不到响应就报502、504,等表记录超时时间过了之后,哈希表又空闲了,故障就解除了,所以构建结果时好时坏。解决方案就是把这台主机上的这个哈希表的容量调大一些。”

 

“由于nginx代理偶发连接丢失问题,每次执行任务所启动的进程与jenkins自身有通信故障,导致任务无法在有限时间内结束。”

posted @ 2022-04-12 10:41  小町  阅读(817)  评论(0编辑  收藏  举报