guix/guix
Maxim Cournoyer efbf5fdd01
offload: Improve load normalization and configurability.
Fixes <https://issues.guix.gnu.org/43773>.

The computed normalized load was previously obtained by dividing the load
average as found in /proc/loadavg by the number of parallel builds defined for
a build machine.

This normalized load didn't allow to compare machines with different number of
cores, as the load average reported by /proc/loadavg can be as high as the
number of cores; thus comparing that value to a fixed threshold of 2.0 would
mean machines with multiple cores were more likely to be flagged as overloaded
compared to single core machines.

This can be fixed by normalizing using the available number of cores instead
of the number of parallel jobs.

* guix/scripts/offload.scm (<build-machine>)[overload-threshold]: New field.
(node-load): Modify to return a normalized load value between 0 and 1, taking
into account the number of cores available.
(normalized-load): Remove procedure.
(report-load): New procedure.
(choose-build-machine): Adjust to use the modified 'node-load' and the new
'report-load' and 'build-machine-overload-threshold' procedures.
(check-machine-status): Adjust.
* doc/guix.texi (Daemon Offload Setup): Document the offload scheduler and the
new 'overload-threshold' field.
2020-10-08 10:57:12 -04:00
..
build build: svn: Fix handle fetch errors. 2020-10-08 12:38:43 +02:00
build-system build-system: linux-module: Delete some huge items that we probably don't need. 2020-09-14 10:15:43 +02:00
import import: opam: Report groups in syntax tree. 2020-10-02 00:43:41 +02:00
scripts offload: Improve load normalization and configurability. 2020-10-08 10:57:12 -04:00
store database: register-items: reduce transaction scope. 2020-09-14 10:51:26 +02:00
tests
android-repo-download.scm android-repo-download: Remove unnecessary use of Guile-JSON. 2020-09-08 00:47:35 +02:00
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm
cache.scm
channels.scm Use 'formatted-message' instead of '&message' where appropriate. 2020-07-25 19:11:37 +02:00
ci.scm Remove (guix json) and require Guile-JSON 4.3.0+. 2020-09-08 00:47:35 +02:00
colors.scm
combinators.scm
config.scm.in Use "guile-zlib" and "guile-lzlib" instead of (guix config). 2020-08-24 13:35:24 +02:00
cpio.scm
cve.scm Remove (guix json) and require Guile-JSON 4.3.0+. 2020-09-08 00:47:35 +02:00
cvs-download.scm Use guile-zlib extension in build-side code. 2020-08-24 10:41:06 +02:00
deprecation.scm
derivations.scm derivations: Avoid uses of 'write' in 'write-derivation'. 2020-08-28 23:29:07 +02:00
describe.scm describe: Save the original value of (program-arguments). 2020-09-19 22:52:36 +02:00
diagnostics.scm diagnostics: Add '&formatted-message'. 2020-07-25 19:11:36 +02:00
discovery.scm
docker.scm
download.scm
elf.scm
ftp-client.scm
gexp.scm gexp: Fix argument ordering in 'local-file' macro. 2020-10-02 09:29:26 +02:00
git-authenticate.scm Use 'formatted-message' instead of '&message' where appropriate. 2020-07-25 19:11:37 +02:00
git-download.scm Remove (guix json) and require Guile-JSON 4.3.0+. 2020-09-08 00:47:35 +02:00
git.scm git: Export url-cache-directory. 2020-09-06 15:40:54 +02:00
glob.scm
gnu-maintenance.scm Use "guile-zlib" and "guile-lzlib" instead of (guix config). 2020-08-24 13:35:24 +02:00
gnupg.scm
grafts.scm
graph.scm
hg-download.scm Use guile-zlib extension in build-side code. 2020-08-24 10:41:06 +02:00
http-client.scm
i18n.scm
inferior.scm utils: Move <location> and '&error-location' to (guix diagnostics). 2020-07-25 19:11:36 +02:00
licenses.scm licenses: Add Apple Public Source License 2.0. 2020-09-25 14:11:04 +02:00
lint.scm lint: formatting: Gracefully handle relative file names. 2020-08-23 23:05:16 +02:00
man-db.scm Use "guile-zlib" and "guile-lzlib" instead of (guix config). 2020-08-24 13:35:24 +02:00
memoization.scm
modules.scm
monad-repl.scm
monads.scm
nar.scm doc: Distinguish the "nar bundle" format from "nar". 2020-09-11 17:53:58 +02:00
openpgp.scm openpgp: Fix argument order of 'fxbit-set?'. 2020-09-29 22:53:36 +02:00
packages.scm packages: 'package-input-rewriting' has a #:deep? parameter. 2020-09-27 21:41:15 +02:00
pki.scm
profiles.scm linux-libre: Support module compression. 2020-08-25 11:53:20 +02:00
profiling.scm
progress.scm
quirks.scm quirks: Adjust patch to allow traveling back to Dec. 2018. 2020-07-24 18:56:25 +02:00
records.scm
remote.scm Use 'formatted-message' instead of '&message' where appropriate. 2020-07-25 19:11:37 +02:00
repl.scm
scripts.scm scripts: Use 'define-command' and have 'guix help' use that. 2020-09-10 12:27:24 +02:00
search-paths.scm
self.scm self: Use a 'guile' that doesn't complain about locales. 2020-10-05 23:19:19 +02:00
serialization.scm
sets.scm
ssh.scm ssh: Fix progress bar crash when there are zero items to send. 2020-09-02 23:59:24 +02:00
status.scm
store.scm store: 'set-build-options' sends LC_MESSAGES, not LC_ALL. 2020-09-02 17:17:37 +02:00
svn-download.scm guix: Fix download-svn-to-store. 2020-09-14 14:24:29 +01:00
swh.scm Remove (guix json) and require Guile-JSON 4.3.0+. 2020-09-08 00:47:35 +02:00
tests.scm
ui.scm ui: Use "guix install" in locale hint. 2020-10-02 08:11:38 +02:00
upstream.scm upstream: Handle the case where the file name has no extension. 2020-07-27 13:35:49 +02:00
utils.scm Use "guile-zlib" and "guile-lzlib" instead of (guix config). 2020-08-24 13:35:24 +02:00
workers.scm