summaryrefslogtreecommitdiffhomepage
path: root/test/benchmarks/tools/redis.go
diff options
context:
space:
mode:
authorAdin Scannell <ascannell@google.com>2020-12-29 18:26:46 -0800
committergVisor bot <gvisor-bot@google.com>2020-12-29 18:29:12 -0800
commitffa9a715aaf4ebc4c8d8bef948649af358e4f4e4 (patch)
tree47e16fdc85a56d00f8c8e5380cfc28a44957f877 /test/benchmarks/tools/redis.go
parent3c58405a544dcd599bd84406b5d52848941675f7 (diff)
Simplify profiling and benchmarks.
- Tweak the benchmarks to work with b.N where appropriate. In many cases, b.N was simply being ignored. This creates an implicit dependency in the user passing a reasonable benchtime (less than or equal to the actual runtime of the test, or using the X syntax) otherwise the test runs forever. - In cases where the above is impossible, explicitly set benchtime from the test wrapper, to prevent the above behavior (tensorflow). - Drop the *Reverse variants, which are simply hey benchmarks. We should just add a hey benchmark. The platforms benchmarks already include a native platform, and thus these benchmarks are incredibly confusing. (In other words, BenchmarkNginxReverse has nothing to do with an nginx benchmark for runsc.) - Remove the redunant Harness object, which contains no state, in order to slightly simplify the code. - Make Block and Heap profiling actually work, but setting appropriate runtime parameters (and plumbing them through the config). - Split the profiling into two phases: start and stop, since some will need to be started early, and others will need to happen at the end. PiperOrigin-RevId: 349495377
Diffstat (limited to 'test/benchmarks/tools/redis.go')
-rw-r--r--test/benchmarks/tools/redis.go21
1 files changed, 16 insertions, 5 deletions
diff --git a/test/benchmarks/tools/redis.go b/test/benchmarks/tools/redis.go
index a42e3456e..12fdbc7cc 100644
--- a/test/benchmarks/tools/redis.go
+++ b/test/benchmarks/tools/redis.go
@@ -19,7 +19,6 @@ import (
"net"
"regexp"
"strconv"
- "strings"
"testing"
)
@@ -33,13 +32,25 @@ func (r *Redis) MakeCmd(ip net.IP, port, requests int) []string {
// There is no -t PING_BULK for redis-benchmark, so adjust the command in that case.
// Note that "ping" will run both PING_INLINE and PING_BULK.
if r.Operation == "PING_BULK" {
- return strings.Split(
- fmt.Sprintf("redis-benchmark --csv -t ping -h %s -p %d -n %d", ip, port, requests), " ")
+ return []string{
+ "redis-benchmark",
+ "--csv",
+ "-t", "ping",
+ "-h", ip.String(),
+ "-p", fmt.Sprintf("%d", port),
+ "-n", fmt.Sprintf("%d", requests),
+ }
}
// runs redis-benchmark -t operation for 100K requests against server.
- return strings.Split(
- fmt.Sprintf("redis-benchmark --csv -t %s -h %s -p %d -n %d", r.Operation, ip, port, requests), " ")
+ return []string{
+ "redis-benchmark",
+ "--csv",
+ "-t", r.Operation,
+ "-h", ip.String(),
+ "-p", fmt.Sprintf("%d", port),
+ "-n", fmt.Sprintf("%d", requests),
+ }
}
// Report parses output from redis-benchmark client and reports metrics.