1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-18 11:40:45 +00:00
nixpkgs/pkgs/tools
Graham Christensen c2b898da76 treewide: drop -l$NIX_BUILD_CORES
Passing `-l$NIX_BUILD_CORES` improperly limits the overall system load.

For a build machine which is configured to run `$B` builds where each
build gets `total cores / B` cores (`$C`), passing `-l $C` to make will
improperly limit the load to `$C` instead of `$B * $C`.

This effect becomes quite pronounced on machines with 80 cores, with
40 simultaneous builds and a cores limit of 2. On a machine with this
configuration, Nix will run 40 builds and make will limit the overall
system load to approximately 2. A build machine with this many cores
can happily run with a load approaching 80.

A non-solution is to oversubscribe the machine, by picking a larger
`$C`. However, there is no way to divide the number of cores in a way
which fairly subdivides the available cores when `$B` is greater than
1.

There has been exploration of passing a jobserver in to the sandbox,
or sharing a jobserver between all the builds. This is one option, but
relatively complicated and only supports make. Lots of other software
uses its own implementation of `-j` and doesn't support either `-l` or
the Make jobserver.

For the case of an interactive user machine, the user should limit
overall system load using `$B`, `$C`, and optionally systemd's
cpu/network/io limiting features.

Making this change should significantly improve the utilization of our
build farm, and improve the throughput of Hydra.
2022-09-22 16:01:23 -04:00
..
admin treewide: drop -l$NIX_BUILD_CORES 2022-09-22 16:01:23 -04:00
archivers
audio
backup Merge pull request #191730 from viraptor/rdedup-darwin-fixed 2022-09-19 17:29:26 +01:00
bluetooth
bootloaders/refind
cd-dvd
compression lz4: fix static build 2022-09-19 21:33:47 +02:00
filesystems zpool-iostat-viz: build using format other 2022-09-19 16:05:31 +02:00
games optifinePackages: update versions, refactor version generation 2022-09-21 15:05:20 +08:00
graphics Merge master into staging-next 2022-09-16 18:02:08 +00:00
inputmethods ibus-engines.libpinyin: 1.13.0 -> 1.13.1 2022-09-20 15:25:44 +00:00
misc Merge staging-next into staging 2022-09-22 00:03:56 +00:00
networking Merge staging-next into staging 2022-09-22 00:03:56 +00:00
nix
package-management Merge master into staging-next 2022-09-21 00:03:46 +00:00
security treewide: drop -l$NIX_BUILD_CORES 2022-09-22 16:01:23 -04:00
system Merge pull request #187873 from SuperSandro2000/rsyslog 2022-09-20 17:03:24 +02:00
text difftastic: 0.36.0 -> 0.36.1 2022-09-18 13:01:42 -04:00
toml2nix
typesetting treewide: drop -l$NIX_BUILD_CORES 2022-09-22 16:01:23 -04:00
video Merge pull request #187038 from r-ryantm/auto-update/svt-av1 2022-09-17 11:23:07 -05:00
virtualization Merge master into staging-next 2022-09-22 06:19:43 +00:00
wayland wayout: mark as unsupported rather than broken on darwin 2022-09-17 14:36:30 +10:00
X11 Merge pull request #191381 from Baitinq/smart-wallpaper-update 2022-09-18 20:24:22 +08:00