From 19ea0d226d176ba30dd6b66f2e3ba2a2a80cdcb9 Mon Sep 17 00:00:00 2001 From: Michael Pratt Date: Fri, 1 Oct 2021 14:59:33 -0400 Subject: [PATCH] dashboard: add linux-amd64-perf host and builder Add a new builder to run the x/benchmarks performance tests on linux-amd64. For now, this runs on a GCE C2 instance type, as these instances have well-defined, consistent CPUs and other server architecture components. In basic noise testing, even standard VMs of this type appear to be fairly low noise. As we gain experience with actual monitoring, we may change this to a sole-tenant VM type or even a dedicated machine if necessary. For golang/go#49207 Change-Id: I17eaeeb5349af925249940bebd5b860a2579e6df Reviewed-on: https://go-review.googlesource.com/c/build/+/354311 Trust: Michael Pratt Run-TryBot: Michael Pratt TryBot-Result: Go Bot Reviewed-by: Alexander Rakoczy --- dashboard/builders.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/dashboard/builders.go b/dashboard/builders.go index 917c69c5ff..d0a24ddd55 100644 --- a/dashboard/builders.go +++ b/dashboard/builders.go @@ -619,6 +619,14 @@ var Hosts = map[string]*HostConfig{ ExpectNum: 2, env: []string{"GOROOT_BOOTSTRAP=/usr/lib/go"}, }, + "host-linux-amd64-perf": &HostConfig{ + Notes: "Cascade Lake performance testing machines", + machineType: "c2-standard-8", // C2 has precisely defined, consistent server architecture. + ContainerImage: "linux-x86-bullseye:latest", + buildletURLTmpl: "https://storage.googleapis.com/$BUCKET/buildlet.linux-amd64", + env: []string{"GOROOT_BOOTSTRAP=/go1.4"}, + SSHUsername: "root", + }, } // CrossCompileConfig describes how to cross-compile a build on a @@ -692,7 +700,7 @@ type HostConfig struct { ContainerImage string // e.g. "linux-buildlet-std:latest" (suffix after "gcr.io//") IsReverse bool // if true, only use the reverse buildlet pool - // GCE options, if VMImage != "" + // GCE options, if VMImage != "" || ContainerImage != "" machineType string // optional GCE instance type RegularDisk bool // if true, use spinning disk instead of SSD MinCPUPlatform string // optional; https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform @@ -2519,6 +2527,15 @@ func init() { FlakyNet: true, SkipSnapshot: true, // The builder has a slow uplink bandwidth. }) + addBuilder(BuildConfig{ + Name: "linux-amd64-perf", + HostType: "host-linux-amd64-perf", + Notes: "Performance testing for linux-amd64", + buildsRepo: func(repo, branch, goBranch string) bool { + return repo == "benchmarks" + }, + RunBench: true, + }) } // addBuilder adds c to the Builders map after doing some sanity