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无法解析等。
调优连接
# 降低连接数,默认为