From e2ab6fb0dd3e2bcaadc0d349c96c3689db5ac670 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 23 Apr 2021 11:00:56 +0100 Subject: services: guix-build-coordinator: Add max-1min-load-average option. To the agent configuration. * gnu/services/guix.scm (): 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. --- doc/guix.texi | 9 +++++++++ gnu/services/guix.scm | 9 +++++++++ 2 files changed, 18 insertions(+) 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 @@ (define-module (gnu services guix) 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 @@ (define-record-type* (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-service-type (define (guix-build-coordinator-agent-shepherd-services config) (match-record config (package user coordinator authentication max-parallel-builds + max-1min-load-average derivation-substitute-urls non-derivation-substitute-urls systems) (list @@ -402,6 +407,10 @@ (define (guix-build-coordinator-agent-shepherd-services config) 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=" -- cgit v1.2.3