-
-
Notifications
You must be signed in to change notification settings - Fork 6
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
Servo TSC Meeting May 2024 #88
Comments
As usual feel free to propose topics for the agenda in the comments here. |
Can we add one for And if there's some time, I would like to mention my recent side project Verso in AOB. It doesn't have much stuff yet. But I just want to make some clarification if anyone is confused what it is. |
Please add the following topics:
|
I propose that we spend 184.21 EUR/month (~201 USD/month) on a dedicated server for CI runners, to cut our build times by 32%. We can do this in a way that enhances our existing CI setup without locking us in. As of April 2024, our main workflow takes around 61 min across four platforms, where Linux and Windows are the critical paths at 61 min each:
GitHub-hosted runners are limited to 4 cores and 16 GiB RAM, they are forced to install deps and revive caches at runtime, and their Windows runners are notoriously slow. Self-hosted runners would allow us to prebake deps, caches, repo checkout, and even prebuild main for incremental builds. This is especially useful for Windows builds, where file I/O performance is poor. Some prototyping of a libvirt-and-zfs-based runner system, using very similar hardware to a Hetzner AX102, shows that we can cut the Windows build job from 61 min down to under 13 min and the Linux build job from 29 min down to under 8 min, making macOS the critical path. Alternatives considered include:
Raw data (based on April 2024 usage)
|
I think all of this could be achieved using docker images that can be loaded onto provided runners: https://docs.github.com/en/actions/using-jobs/running-jobs-in-a-container, something I've been planing to try out ever since setting up docker images for cross compiling for mozjs: https://github.com/servo/servo-build-deps/tree/main/docker.
I think the predominant reason to have self-hosted runners is so we can bring back WPT runs on windows and mac, just cutting build times isn't worth the price IMO (with the amount of contributors that project currently have).
GitHub already gives us more free runners, so it's possible that they give us better pricing too. |
That sounds promising! But from what I can see, we can only use this for build jobs that run on Linux, whereas Windows and macOS could benefit from that just as much or even more, no?
I think that could be a worthwhile goal too, yeah, it would be great for Servo to run tests on all platforms (and someday other kinds of tests, like perf tests). That said, I wouldn’t discount the effect of faster builds on developer productivity, even when the GitHub-hosted runners have enough capacity.
That’s true, maybe we can ask them. |
CI build times are definitely a drain on my productivity when working on the Servo project, so I would be in favour of self-hosted runners (and FWIW, my experience with self-hosted GA runners in the past has been positive). Some questions:
Some further thoughts:
|
I would like to add the following to the agenda:
|
Can you report an issue about this? I don't think this need to be discussed on the meeting live. The issue can be reported in the general Servo projects. |
Sorry, that was a typo, it should read “Hetzner AX102”, which is 123.76 EUR/month plus 60.45 EUR/month for the necessary 16-core Windows Server Standard licence. |
Done: servo/servo#32387 (I agree that this doesn't require discussion). |
This would have finite capacity, but we should be able to design our workflows to fall back to GitHub-hosted runners. That said, I built the prototype with the assumption that we would allow at least two builds to run concurrently, giving runners up to half the CPU (8c16t out of 16c32t) and 24 GiB RAM. We would be limited to two concurrent Windows builds on this server due to the Standard licence (Datacenter is unlimited but $$$), but given how much of the Servo builds and unit tests are not actually 16-way parallel, we could almost certainly run a bunch of Linux builds plus two Windows builds at the same time by oversubscribing the CPU.
That would be a good next step imo. |
This has now been done. |
Signed-off-by: Manuel Rego Casasnovas <rego@igalia.com>
Agenda
ReadableStream
The text was updated successfully, but these errors were encountered: