-
-
Notifications
You must be signed in to change notification settings - Fork 266
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
tests: put (back) plugins tests in a single linkFarm #2015
Conversation
Thanks for testing this out. I'll try and dig up the command we were using to check memory usage. I've marked it as a draft because we'll also need to re-work the |
If we need to, how complex do you think it'll be to split the tests over a handful of link farm derivations? Either based on |
With our new hardware a single linkfarm by itself won't OOM but for the couple of minutes it takes to evaluate it won't leave much for everyone else. It is an option but only just, and it can't really afford to get much bigger.
The command I gave was only using a single worker as sequential eval made it easier to see the problem locally. On the old hardware we were using 16 workers for eval, now we are using 32. Only splitting the linkfarm up a bit (e.g. into 4) likely won't help much as they will still end up being evaluated at the same time but by more than that or by path should work. I'm hoping we'll have some improvements land in buildbot-nix over the next couple of weeks, my short term solution to speed things up would be to reduce the amount of tests by platform, e.g. full tests on x86_64-linux / aarch64-darwin and only a smoke test on aarch64-linux / x86_64-darwin. |
Thanks for clarifying! In that case I don't think we want to go back to a single link farm until buildbot is able to handle it without (potential) issue.
Thanks!
Currently we split the tests up one-per file (i.e.
Are you saying we'd need in the region of 32 items being built by
However We also have (a handful of) other checks that aren't under
Personally, I'd like a way to indicate to buildbot whether a PR is ready for a "full" check or should do a "light" check (e.g. only on This would fit well with mergify's "two-step CI" strategy, where lightweight checks are run on all PR pushes, but heavy checks are only run on PRs queued for merging. Queued PRs could be identified with a label, for example. |
Sorry, just realised that you were asking about this on matrix and I didn't reply. If you don't get a response after a couple of days feel free to ping me.
Yeah, using
Smarter scheduling will help but we only have limited darwin capacity so that will be a problem regardless. Also we still have another two CI systems so other builds could be running even if there isn't a buildbot queue.
This PR has 72 items in total but the 4 linkfarms (1 per platform) end up in memory at the same time as the small jobs are processed quicker. 16 linkfarms (4 per platform) probably won't change much, they'll still be the slowest jobs that'll accumulate in memory.
I'd open an upstream issue about this as well. |
Thank you very much for those insights @zowoq. Of course, I would rather not have to do that and keep the exhaustive |
No description provided.