diff options
author | fmeawad <fmeawad@chromium.org> | 2015-12-21 14:28:35 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-21 22:29:17 +0000 |
commit | 53c08b29d0a2b2a88cdf481ab63b06db2f4c4abd (patch) | |
tree | 9f29b4959afa9f6b996285032714d99adda6d854 | |
parent | 80ce9f0a1b5da2dadd18bfa29464a20ad64c680f (diff) | |
download | chromium_src-53c08b29d0a2b2a88cdf481ab63b06db2f4c4abd.zip chromium_src-53c08b29d0a2b2a88cdf481ab63b06db2f4c4abd.tar.gz chromium_src-53c08b29d0a2b2a88cdf481ab63b06db2f4c4abd.tar.bz2 |
[Telemetry] Add hash shift for Android 21 devices configuration
The hash shift changes where the tests are run while maintaining affinity. This shift should save ~30 minutes cycle time from slaves 1 and 3 and ~15 minutes from slave 2.
Note to Perf Sheriffs: This CL moves the tests on the Android slaves to acheive better load balancing. It is unexpected to see any regressions, but if you do see regressions and it is completly unexplained otherwise please add it to the associated bug with this CL, but do not revert it.
BUG=571103
Review URL: https://codereview.chromium.org/1541963002
Cr-Commit-Position: refs/heads/master@{#366474}
-rw-r--r-- | tools/telemetry/telemetry/benchmark_runner.py | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/tools/telemetry/telemetry/benchmark_runner.py b/tools/telemetry/telemetry/benchmark_runner.py index 00f27c4..06347f7 100644 --- a/tools/telemetry/telemetry/benchmark_runner.py +++ b/tools/telemetry/telemetry/benchmark_runner.py @@ -324,20 +324,15 @@ def _GetJsonBenchmarkList(possible_browser, possible_reference_browser, '-v', '--output-format=chartjson', '--upload-results', base_name] perf_dashboard_id = base_name - # TODO(fmeawad): Currently we set the device affinity to a stable hash of - # the benchmark name. This somewhat evenly distributes benchmarks among the - # requested number of shards. However, it is far from optimal in terms of - # cycle time. We should add a benchmark size decorator (e.g. small, medium, - # large) and let that inform sharding. # Based on the current timings, we shift the result of the hash function to # achieve better load balancing. Those shift values are to be revised when - # necessary. (See tools/build/scripts/tools/perf/chrome-perf-step-timings.py - # for more details) + # necessary. The shift value is calculated such that the total cycle time + # is minimized. hash_shift = { - 2 : 47, - 5 : 56, - 8 : 50 + 2 : 47, # for old desktop configurations with 2 slaves + 5 : 56, # for new desktop configurations with 5 slaves + 21 : 43 # for Android 3 slaves 7 devices configurations } shift = hash_shift.get(num_shards, 0) base_name_hash = hashlib.sha1(base_name).hexdigest() |