aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-12-23 18:11:15 +0000
committerChristopher Baines <mail@cbaines.net>2020-12-23 18:11:15 +0000
commite1a4df900d87c4af63dc33aa5aabba821ac2be1f (patch)
treeaab16c20e3511c6fbd946a7f894e04ae1576c082 /scripts
parentc4e5a39a4af6fe13a341631a1862ae50b407f82a (diff)
downloadbuild-coordinator-e1a4df900d87c4af63dc33aa5aabba821ac2be1f.tar
build-coordinator-e1a4df900d87c4af63dc33aa5aabba821ac2be1f.tar.gz
Avoid starting builds if the system load is high
Diffstat (limited to 'scripts')
-rw-r--r--scripts/guix-build-coordinator-agent.in13
1 files changed, 11 insertions, 2 deletions
diff --git a/scripts/guix-build-coordinator-agent.in b/scripts/guix-build-coordinator-agent.in
index 55e8e92..ce4742e 100644
--- a/scripts/guix-build-coordinator-agent.in
+++ b/scripts/guix-build-coordinator-agent.in
@@ -26,6 +26,7 @@
(srfi srfi-37)
(ice-9 textual-ports)
((guix config) #:prefix guix-config:)
+ (guix-build-coordinator utils)
(guix-build-coordinator agent))
(define %options
@@ -56,6 +57,11 @@
(alist-cons 'max-parallel-builds
(string->number arg)
result)))
+ (option '("max-5min-load-average") #t #f
+ (lambda (opt name arg result)
+ (alist-cons 'max-5min-load-average
+ (string->number arg)
+ result)))
(option '("substitute-urls") #t #f
(lambda (opt name arg result)
(alist-cons 'substitute-urls
@@ -89,7 +95,9 @@
(max-parallel-builds . 1)
(systems . (,guix-config:%system))
(metrics-file
- . "/var/lib/prometheus/node-exporter/guix-build-coordinator-agent.prom")))
+ . "/var/lib/prometheus/node-exporter/guix-build-coordinator-agent.prom")
+ (max-5min-load-average
+ . ,(get-available-processing-units))))
(define (parse-options options defaults args)
(args-fold
@@ -115,4 +123,5 @@
(assq-ref opts 'substitute-urls))
(or (assq-ref opts 'non-derivation-substitute-urls)
(assq-ref opts 'substitute-urls))
- (assq-ref opts 'metrics-file)))
+ (assq-ref opts 'metrics-file)
+ (assq-ref opts 'max-5min-load-average)))