From 305a456551467623d38acdb5a1b9741cb0dc1219 Mon Sep 17 00:00:00 2001 From: Zach Koopmans Date: Fri, 11 Dec 2020 12:35:42 -0800 Subject: Adjust requests to be constant equal to b.N in network tests. For "hey", requests >= concurrency. b.N can be set by the --test.benchtime={b.N}x. The previous setting of b.N * c can be surprisingly slow for larger c. Set the requests to max(b.N, c) and log to the user if it is c. PiperOrigin-RevId: 347053675 --- test/benchmarks/network/httpd_test.go | 8 +++++++- test/benchmarks/network/nginx_test.go | 9 +++++++-- test/benchmarks/network/node_test.go | 7 ++++++- test/benchmarks/network/ruby_test.go | 7 ++++++- 4 files changed, 26 insertions(+), 5 deletions(-) (limited to 'test/benchmarks/network') diff --git a/test/benchmarks/network/httpd_test.go b/test/benchmarks/network/httpd_test.go index aa300dabd..b07274662 100644 --- a/test/benchmarks/network/httpd_test.go +++ b/test/benchmarks/network/httpd_test.go @@ -82,9 +82,14 @@ func benchmarkHttpdDocSize(b *testing.B, reverse bool) { if err != nil { b.Fatalf("Failed to parse parameters: %v", err) } + requests := b.N + if requests < c { + b.Logf("b.N is %d must be greater than threads %d. Consider running with --test.benchtime=Nx where N >= %d", b.N, c, c) + requests = c + } b.Run(name, func(b *testing.B) { hey := &tools.Hey{ - Requests: c * b.N, + Requests: requests, Concurrency: c, Doc: filename, } @@ -116,6 +121,7 @@ func benchmarkHttpdContinuous(b *testing.B, concurrency []int, sizes []string, r requests := b.N if requests < c { + b.Logf("b.N is %d must be greater than threads %d. Consider running with --test.benchtime=Nx where N >= %d", b.N, c, c) requests = c } b.Run(name, func(b *testing.B) { diff --git a/test/benchmarks/network/nginx_test.go b/test/benchmarks/network/nginx_test.go index 6e7a4dec4..87449612a 100644 --- a/test/benchmarks/network/nginx_test.go +++ b/test/benchmarks/network/nginx_test.go @@ -92,9 +92,14 @@ func benchmarkNginxDocSize(b *testing.B, reverse, tmpfs bool) { b.Fatalf("Failed to parse parameters: %v", err) } + requests := b.N + if requests < c { + b.Logf("b.N is %d must be greater than threads %d. Consider running with --test.benchtime=Nx where N >= %d", b.N, c, c) + requests = c + } b.Run(name, func(b *testing.B) { hey := &tools.Hey{ - Requests: c * b.N, + Requests: requests, Concurrency: c, Doc: filename, } @@ -128,9 +133,9 @@ func benchmarkNginxContinuous(b *testing.B, concurrency []int, sizes []string, r if err != nil { b.Fatalf("Failed to parse parameters: %v", err) } - requests := b.N if requests < c { + b.Logf("b.N is %d must be greater than threads %d. Consider running with --test.benchtime=Nx where N >= %d", b.N, c, c) requests = c } b.Run(name, func(b *testing.B) { diff --git a/test/benchmarks/network/node_test.go b/test/benchmarks/network/node_test.go index 246720d43..3e837a9e4 100644 --- a/test/benchmarks/network/node_test.go +++ b/test/benchmarks/network/node_test.go @@ -42,9 +42,14 @@ func BenchmarkNode(b *testing.B) { if err != nil { b.Fatalf("Failed to parse parameters: %v", err) } + requests := b.N + if requests < c { + b.Logf("b.N is %d must be greater than threads %d. Consider running with --test.benchtime=Nx where N >= %d", b.N, c, c) + requests = c + } b.Run(name, func(b *testing.B) { hey := &tools.Hey{ - Requests: b.N * c, // Requests b.N requests per thread. + Requests: requests, Concurrency: c, } runNode(b, hey) diff --git a/test/benchmarks/network/ruby_test.go b/test/benchmarks/network/ruby_test.go index 6f5199480..c89672873 100644 --- a/test/benchmarks/network/ruby_test.go +++ b/test/benchmarks/network/ruby_test.go @@ -43,9 +43,14 @@ func BenchmarkRuby(b *testing.B) { if err != nil { b.Fatalf("Failed to parse parameters: %v", err) } + requests := b.N + if requests < c { + b.Logf("b.N is %d must be greater than threads %d. Consider running with --test.benchtime=Nx where N >= %d", b.N, c, c) + requests = c + } b.Run(name, func(b *testing.B) { hey := &tools.Hey{ - Requests: b.N * c, // b.N requests per thread. + Requests: requests, Concurrency: c, } runRuby(b, hey) -- cgit v1.2.3