diff options
author | Christopher Baines <mail@cbaines.net> | 2020-12-23 18:11:15 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-12-23 18:11:15 +0000 |
commit | e1a4df900d87c4af63dc33aa5aabba821ac2be1f (patch) | |
tree | aab16c20e3511c6fbd946a7f894e04ae1576c082 /scripts | |
parent | c4e5a39a4af6fe13a341631a1862ae50b407f82a (diff) | |
download | build-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.in | 13 |
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))) |