guix-play/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 tests: Move OpenPGP helpers to (guix tests gnupg). 2020-06-16 16:10:46 +02:00
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 base64: Do not use (rnrs). 2019-12-15 00:34:05 +01:00
build-system.scm
bzr-download.scm download: Pass 'http_proxy' et al. to git, hg, etc. 2019-09-05 18:33:30 +02:00
cache.scm Remove workaround for 'time-monotonic' in Guile 2.2.2. 2020-03-22 16:49:47 +01:00
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 ui: Don't disable colors when INSIDE_EMACS is set. 2020-02-24 11:01:52 +01:00
combinators.scm combinators: Fix typo. 2020-07-05 03:15:08 +05:30
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 deprecation: Add a two-element form for simple aliases. 2020-01-12 00:19:09 +01:00
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 discovery: Fix typo. 2020-07-05 16:07:59 +05:30
docker.scm pack: Provide a meaningful "repository name" for Docker. 2019-09-16 10:25:31 +02:00
download.scm download: Add Savannah mirror. 2020-07-20 23:25:10 +02:00
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 gnupg: Accept revoked keys. 2020-04-17 23:36:47 +02:00
grafts.scm grafts: Improve performance for derivations with many inputs. 2020-06-06 23:28:48 +02:00
graph.scm graph: Add 'shortest-path'. 2020-05-11 23:30:55 +02:00
hg-download.scm Use guile-zlib extension in build-side code. 2020-08-24 10:41:06 +02:00
http-client.scm download: Do not leak file descriptors on TLS ports. 2020-01-03 16:06:26 +01:00
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 Remove traces of "GuixSD". 2019-03-13 23:12:43 +01:00
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 Remove workaround for 'time-monotonic' in Guile 2.2.2. 2020-03-22 16:49:47 +01:00
quirks.scm quirks: Adjust patch to allow traveling back to Dec. 2018. 2020-07-24 18:56:25 +02:00
records.scm records: Have ABI check work well for cross-compilation. 2020-04-08 00:05:45 +02:00
remote.scm Use 'formatted-message' instead of '&message' where appropriate. 2020-07-25 19:11:37 +02:00
repl.scm repl: Return stack traces along with exceptions. 2020-03-19 15:14:08 +01:00
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 serialization: 'read-byte-string' makes a single read(2) call. 2020-01-24 23:56:43 +01:00
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 status: Remove extra space before ellipsis. 2020-04-19 13:27:06 +02:00
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 packages: Introduce <content-hash> and use it in <origin>. 2020-05-22 01:29:39 +02:00
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