如何加速 Envoy 代理 bazel 构建?

问题描述 投票:0回答:1

我在 CI Docker 镜像中从头开始构建 Envoy 代理,如下所示

./ci/run_envoy_docker.sh './ci/do_ci.sh dev'

尽管“dev”目标打开了“fastbuild”选项,但构建 envoy 二进制文件仍然需要极长的时间。 Remote_cache的使用给单个动作的编译带来了显着的改进

./ci/run_envoy_docker.sh \"BAZEL_BUILD_OPTIONS='--remote_cache=http://cachesrv:8000' ./ci/do_ci.sh dev

尽管如此,在更改单个源文件时,bazel 的整个运行(启动、依赖项检查、链接等)仍然需要很长时间。

如何进一步增加 Envoy bazel 构建的响应时间,以便迭代开发过滤器?

bazel envoyproxy
1个回答
0
投票

tl;博士使用尽可能多的核心和尽可能多的内存。

对此没有简短的答案,但浏览页面为什么 Envoy 需要这么长时间来编译确实提供了一些补救措施,尽管没有确凿证据:

最好的方法是:

  • 使用基于云的虚拟机以及 vscode 远程开发等工具。拥有 36 个以上的核心以及每个核心大约 2 GiB 的 RAM 仍然允许以合理的数量构建和测试整个源代码树
  • 如果使用云计算机,请确保在本地临时 SSD 上构建,而不是在远程块存储(例如 EBS)上构建。该构建涉及大量磁盘访问,如果不使用快速本地驱动器,将会受到磁盘限制。
© www.soinside.com 2019 - 2024. All rights reserved.