[ARVADOS] created: 2.1.0-382-g34d629863

Git user git at public.arvados.org
Thu Feb 4 19:08:20 UTC 2021


        at  34d62986304fa7c67574dc3fbd956f5a7d329496 (commit)


commit 34d62986304fa7c67574dc3fbd956f5a7d329496
Author: Ward Vandewege <ward at curii.com>
Date:   Thu Feb 4 14:07:10 2021 -0500

    17340: arvados-dispatch-cloud should take the Containers.ReserveExtraRAM
           configuration parameter into account when choosing a node size.
    
    Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward at curii.com>

diff --git a/lib/dispatchcloud/node_size.go b/lib/dispatchcloud/node_size.go
index fd0486086..9337c5d58 100644
--- a/lib/dispatchcloud/node_size.go
+++ b/lib/dispatchcloud/node_size.go
@@ -90,12 +90,12 @@ func ChooseInstanceType(cc *arvados.Cluster, ctr *arvados.Container) (best arvad
 		err = ErrInstanceTypesNotConfigured
 		return
 	}
-
 	needScratch := EstimateScratchSpace(ctr)
 
 	needVCPUs := ctr.RuntimeConstraints.VCPUs
 
 	needRAM := ctr.RuntimeConstraints.RAM + ctr.RuntimeConstraints.KeepCacheRAM
+	needRAM += int64(cc.Containers.ReserveExtraRAM)
 	needRAM = (needRAM * 100) / int64(100-discountConfiguredRAMPercent)
 
 	ok := false
diff --git a/lib/dispatchcloud/node_size_test.go b/lib/dispatchcloud/node_size_test.go
index ea98efe1d..abd292cba 100644
--- a/lib/dispatchcloud/node_size_test.go
+++ b/lib/dispatchcloud/node_size_test.go
@@ -73,8 +73,14 @@ func (*NodeSizeSuite) TestChoose(c *check.C) {
 			"best":   {Price: 3.3, RAM: 4000000000, VCPUs: 4, Scratch: 2 * GiB, Name: "best"},
 			"costly": {Price: 4.4, RAM: 4000000000, VCPUs: 8, Scratch: 2 * GiB, Name: "costly"},
 		},
+		{
+			"small":  {Price: 1.1, RAM: 1000000000, VCPUs: 2, Scratch: GiB, Name: "small"},
+			"nearly": {Price: 2.2, RAM: 1200000000, VCPUs: 4, Scratch: 2 * GiB, Name: "nearly"},
+			"best":   {Price: 3.3, RAM: 4000000000, VCPUs: 4, Scratch: 2 * GiB, Name: "best"},
+			"costly": {Price: 4.4, RAM: 4000000000, VCPUs: 8, Scratch: 2 * GiB, Name: "costly"},
+		},
 	} {
-		best, err := ChooseInstanceType(&arvados.Cluster{InstanceTypes: menu}, &arvados.Container{
+		best, err := ChooseInstanceType(&arvados.Cluster{InstanceTypes: menu, Containers: arvados.ContainersConfig{ReserveExtraRAM: 268435456}}, &arvados.Container{
 			Mounts: map[string]arvados.Mount{
 				"/tmp": {Kind: "tmp", Capacity: 2 * int64(GiB)},
 			},

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list