summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfmeawad <fmeawad@chromium.org>2015-12-21 14:28:35 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-21 22:29:17 +0000
commit53c08b29d0a2b2a88cdf481ab63b06db2f4c4abd (patch)
tree9f29b4959afa9f6b996285032714d99adda6d854
parent80ce9f0a1b5da2dadd18bfa29464a20ad64c680f (diff)
downloadchromium_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.py15
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()