Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/build/cmd/golangbuild: reduce network bandwidth requirements for builders accessing through LUCI #67469

Open
abner-chenc opened this issue May 17, 2024 · 2 comments
Labels
Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@abner-chenc
Copy link
Contributor

Hi, all:
The LUCI access method requires much greater network bandwidth than the legacy buildlet access method, and the required network traffic is many times more than the previous legacy access method. Now, although the LUCI linux-loong64 builder can work correctly , but the network bandwidth in the area where the Linux/loong64 builder is located is small, and network failures often occur. Is there any configuration that can reduce the network traffic and network bandwidth during the operation of the LUCI builder?

Thanks.

@gopherbot gopherbot added the Builders x/build issues (builders, bots, dashboards) label May 17, 2024
@gopherbot gopherbot added this to the Unreleased milestone May 17, 2024
@dmitshur dmitshur added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label May 17, 2024
@dmitshur dmitshur changed the title x/build: Reduce network bandwidth requirements for builders accessing through LUCI x/build/cmd/golangbuild: reduce network bandwidth requirements for builders accessing through LUCI May 17, 2024
@dmitshur
Copy link
Contributor

Thanks for reporting. CC @golang/release, @mknyszek.

Are you able to narrow down more specifics of where the additional bandwidth utilization comes from? Is it uplink or downlink?

The testing strategy used by LUCI builders is more robust than the legacy coordinator infrastructure. For instance, we exercise finer grained control over the exact bootstrap version per Go major version (compare with legacy builder that provided a fixed bootstrap version), and certain dependencies like git. Some of this may have overhead. Depending on how much the overhead is, we can consider adding some options for builders that require lower bandwidth with some reduction to testing signal quality.

At the same time there are various measures that the builders take to reduce bandwidth use. The CIPD downloads use a local cache, so only the first download should take up significant bandwidth, while subsequent ones should not. It would be good if you can verify CIPD caching is working on your side.

I suspect a significant source of additional bandwith are the pre-built binary toolchain downloads that happen for all of the golang.org/x tests, and there are quite a few more golang.org/x repos being tested by the LUCI loong64 builder (see here) compared to the legacy loong64 builder (see here). In particular, the legacy builder was only testing 3 x/ repos while the new one is testing all. This might be a good place to start looking.

@abner-chenc
Copy link
Contributor Author

Thanks.

The traffic in the downlink is more, about 6 times that in the uplink, and CIPD caching is working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
Status: No status
Development

No branches or pull requests

3 participants