summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2021-04-23 11:00:56 +0100
committerChristopher Baines <mail@cbaines.net>2021-04-23 11:03:23 +0100
commite2ab6fb0dd3e2bcaadc0d349c96c3689db5ac670 (patch)
tree76aead530762f726243ddf9d965231c19d66f5cb
parent44ae570fba1ec1b5873af3a9f03d7d73a866bfca (diff)
downloadguix-patches-e2ab6fb0dd3e2bcaadc0d349c96c3689db5ac670.tar
guix-patches-e2ab6fb0dd3e2bcaadc0d349c96c3689db5ac670.tar.gz
services: guix-build-coordinator: Add max-1min-load-average option.
To the agent configuration. * gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): New field, max-1min-load-average. (guix-build-coordinator-agent-configuration-max-1min-load-average): New procedure. (guix-build-coordinator-agent-shepherd-services): If set, include the max-1min-load-average in the agent arguments.
-rw-r--r--doc/guix.texi9
-rw-r--r--gnu/services/guix.scm9
2 files changed, 18 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index b9019d5550..262877cb88 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31155,6 +31155,15 @@ will use the current system it's running on as the default.
@item @code{max-parallel-builds} (default: @code{1})
The number of builds to perform in parallel.
+@item @code{max-1min-load-average} (default: @code{#f})
+Load average value to look at when considering starting new builds, if
+the 1 minute load average exceeds this value, the agent will wait before
+starting new builds.
+
+This will be unspecified if the value is @code{#f}, and the agent will
+use the number of cores reported by the system as the max 1 minute load
+average.
+
@item @code{derivation-substitute-urls} (default: @code{#f})
URLs from which to attempt to fetch substitutes for derivations, if the
derivations aren't already available.
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index d1d31febdc..65f3007916 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -58,6 +58,7 @@
guix-build-coordinator-agent-configuration-authentication
guix-build-coordinator-agent-configuration-systems
guix-build-coordinator-agent-configuration-max-parallel-builds
+ guix-build-coordinator-agent-configuration-max-1min-load-average
guix-build-coordinator-agent-configuration-derivation-substitute-urls
guix-build-coordinator-agent-configuration-non-derivation-substitute-urls
@@ -156,6 +157,9 @@
(max-parallel-builds
guix-build-coordinator-agent-configuration-max-parallel-builds
(default 1))
+ (max-1min-load-average
+ guix-build-coordinator-agent-configuration-max-1min-load-average
+ (default #f))
(derivation-substitute-urls
guix-build-coordinator-agent-configuration-derivation-substitute-urls
(default #f))
@@ -370,6 +374,7 @@
(define (guix-build-coordinator-agent-shepherd-services config)
(match-record config <guix-build-coordinator-agent-configuration>
(package user coordinator authentication max-parallel-builds
+ max-1min-load-average
derivation-substitute-urls non-derivation-substitute-urls
systems)
(list
@@ -402,6 +407,10 @@
token-file))))
#$(simple-format #f "--max-parallel-builds=~A"
max-parallel-builds)
+ #$@(if max-1min-load-average
+ #~(#$(simple-format #f "--max-1min-load-average=~A"
+ max-1min-load-average))
+ #~())
#$@(if derivation-substitute-urls
#~(#$(string-append
"--derivation-substitute-urls="