Bazel Remote Cache 缓存问题

本文介绍了在使用Bazel Remote Cache时遇到的连接异常问题,包括连接重置、断开、超时和DNS解析问题。通过调整连接、优化CPU使用和利用本地缓存降低请求量来解决问题。特别是,通过本地启动缓存服务作为SideCar,减少网络请求并控制下载线程数,有效解决了netty异常。最后,文章提到了使用Go语言实现的Unix Domain Socket代理,进一步优化了性能。
摘要由CSDN通过智能技术生成

Bazel Remote Cache 缓存问题


简介

公司 iOS 项目使用 bazel 使用编译,同时 bazel 支持远程缓存。 使用远程缓存,可以加速编译速度,节省编译时间。

缓存服务器很简单,支持 GET、 PUT 操作,分别为获取和上传,官网有说明 Bazel Remote Cache

build --remote_cache=http://mycache.com

但是在 CI 服务器上,偶尔会出现连接出现异常问题,如连接重置、断开、超时、dns无法解析等。大概有5%的概率。分析 bazel 源码,发现 bazel 底层使用 netty 进行http通信。远程服务器日志也没有发现问题。
和常规解决思路不一样,bazel 运行的时候无法进行抓包,因为是概率性的,并且 CI 机器有多台,无法统一进行排查。

解决

从错误信息来看,可能是因为 CPU 使用率过高,导致影响网络请求,出现连接超时、断开、重置、dns无法解析等。

调优连接

# 降低连接数,默认为
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值