-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
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
stdenv: reintroduce limiting by system load #192799
base: staging
Are you sure you want to change the base?
Conversation
Commit c2b898d removed the mechanism; now it's replaced by a different one with higher limit of $(nproc) * 2. Unfortunately there's no good mechanism how to override it from outside like `--cores` or `--max-jobs`, but at least the new limit should be high enough to avoid the previous downsides.
I'm opening this mainly for discussion for now. I believe that at least some load limit is better than none. I was testing this on a 24-core machine to observe the behavior. Using So I chose |
Ideally, I think should have this support on the That being said, I think this is better than what we had. |
Yes, adding a similar config to |
For my setup a load limit twice the cores is too high. It is more likely that my machines run out of memory or starting to swap. |
Yea, there's a big difference between a 2-core CI machine, and something like my 128 vCPU server :/ |
A good default for everyone seems impossible with the mechanisms at hand. Generally I believe it helps to set |
I created NixOS/nix#7091 to make a longer term solution viable. |
Note that most machines in Hydra have between 24 and 80 cores, but have between 2 and 80 cores allocated to the build. I agree there isn't a heuristic here that will be robust across hardware configurations. |
People who have RAM issues still have the option of reducing |
Yea, looked into what load actually provides, and I don't think it's as useful for burst workloads :(. |
But by reducing |
Linking #328677 for those subscribed to this. |
Commit c2b898d removed the mechanism; now it's replaced by a different one with higher limit of $(nproc) * 2.
Unfortunately there's no good mechanism how to override it from outside like
--cores
or--max-jobs
, but at least the new limit should be high enough to avoid the previous downsides.