From: Ward Vandewege Date: Thu, 4 Feb 2021 19:07:10 +0000 (-0500) Subject: 17340: arvados-dispatch-cloud should take the Containers.ReserveExtraRAM X-Git-Tag: 2.2.0~138^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/5e99f2c5cb423b08b18ba8b7ba9c25035b9c689e?hp=-c 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 --- 5e99f2c5cb423b08b18ba8b7ba9c25035b9c689e diff --git a/lib/dispatchcloud/node_size.go b/lib/dispatchcloud/node_size.go index fd04860861..7e8ce0bf42 100644 --- a/lib/dispatchcloud/node_size.go +++ b/lib/dispatchcloud/node_size.go @@ -96,6 +96,7 @@ func ChooseInstanceType(cc *arvados.Cluster, ctr *arvados.Container) (best arvad 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 ea98efe1d2..abd292cbaf 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)}, },