Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Side by Side Diff: docs/speed/bisects.md

Issue 2943223002: Added documentation for running perf bisects and tryjobs. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | docs/speed/images/bisect_dialog.png » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Bisecting Performance Regressions
2
3 ## What are performance bisects?
4
5 The perf tests on chromium's continuous build are very long-running, so we
6 cannot run them on every revision. Further, separate repositories like v8
7 and skia sometimes roll multiple performance-sensitive changes into chromium
8 at once. For these reasons, we need a tool that can bisect the root cause of
9 performance regressions over a CL range, descending into third_party
10 repositories as necessary. This is what the performance bisect bots do.
11
12 The team is currently working on a new version of performance biscect called
13 [pinpoint](https://docs.google.com/document/d/1FKPRNU2kbPJ15p6XHO0itCjYtfvCpGt2I HblriTX1tg/edit)
14
15 ## Starting a perf bisect
16
17 Performance bisects are tightly integrated with the
18 [Chrome Performance Dashboard](https://chromeperf.appspot.com/alerts) and
19 [monorail](https://bugs.chromium.org/p/chromium/issues/list). Users kick off
20 perf bisects on the perf dashboard and view results in monorail.
21
22 You can kick off a perf bisect anywhere you see a performance graph on the perf
23 dashboard (except for some tests which don't bisect, because they do not run on
24 the [chromium.perf waterfall](https://build.chromium.org/p/chromium.perf/waterfa ll)).
25
26 ### To get to a graph, use one of the following methods:
27
28 * From a perf sheriff-filed bug, follow the link in #1 that looks like
29 `https://chromeperf.appspot.com/group_report?bug_id=XXXXXX`. Check the
30 boxes next to alerts in the table to display graphs.
31 * From the [alerts page](https://chromeperf.appspot.com/alerts), check the
32 box next to an alert and click the `Graph` button.
33 * From the [report page](https://chromeperf.appspot.com/report), use the menu
34 to navigate to the graph you want.
35
36 ### To kick off a bisect from the graph:
37
38 ![Bisecting on a performance graph](images/bisect_graph.png)
39 ![The bisect dialog](images/bisect_dialog.png)
40
41 1. Click on a data point in the graph.
42 2. In the tooltip that shows up, click the `BISECT` button.
43 3. Make sure to enter a Bug ID in the dialog that comes up.
44 4. Click the `START BISECT` button.
45
46 ### What are all the boxes in the form?
47
48 * **Bisect bot**: The name of the configuration in the perf lab to bisect on.
49 This has been prefilled to match the bot that generated the graph as
50 closely as possible.
51 * **Metric**: The metric of the performance test to bisect. This defaults to
52 the metric shown on the graph. It shows a list of other related metrics
53 (for example, if average page load time increased, the drop down will show
54 a list of individual pages which were measured).
55 * **Story filter**: This is a flag specific to
56 [telemetry](https://github.com/catapult-project/catapult/blob/master/telemet ry/README.md).
57 It tells telemetry to only run a specific test case, instead of running all
58 the test cases in the suite. This dramatically reduces bisect time for
59 large test suites. The dashboard will prefill this box based on the graph
60 you clicked on. If you suspect that test cases in the benchmark are not
61 independent, you can try bisecting with this box cleared.
62 * **Bug ID**: The bug number in monorail. It's very important to fill in
63 this field, as this is where bisect results will be posted.
64 * **Earlier revision**: The chromium commit pos to start bisecting from. This
65 is prefilled by the dashboard to the start of the revision range for the
66 point you clicked on. You can set it to an earlier commit position to
67 bisect a larger range.
68 * **Later revision**: The chromium commit pos to bisect to. This is prefilled
69 by the dashboard to the end of the revision range for the point you clicked
70 on. You can set it to a later commit pos to bisect a larger range.
71 * **Launch on staging bots**: This is an internal feature, which allows the
72 bisect team to launch a bisect on a test configuration. You likely don't
73 want to check this box unless instructed by the bisect team.
74 * **Bisect mode**: use "mean" to bisect the mean value of the performance
75 test. See below for "return_code".
76
77 ## Bisecting test failures
78
79 The perf bisect bots can also be used to bisect performance test failures.
80 See details in [Triaging Data Stoppage Alerts](triaging_data_stoppage_alerts.md) .
81
82 ## Interpreting the results
83
84 The bisect bot will output a comment on the bug you input into the dialog when
85 bisection is complete. See the
86 [Understanding the Bisect Results](addressing_performance_regressions.md#Underst anding-the-bisect-results)
87 section of the Addressing Performance Regressions doc for details on how to
88 interpret the results.
89
90 ## Getting more debugging data
sullivan 2017/06/17 00:48:39 Simon, as a follow up could you add docs on how to
91
92 The bisect outputs some additional data which might be useful for really tough
93 regressions or confusing results.
94
95 ### Traces
96
97 Chrome traces are generated by most bisects and uploaded to cloud storage, but
98 they're not very visible in the UI. We plan to address this in
99 [pinpoint](https://docs.google.com/document/d/1FKPRNU2kbPJ15p6XHO0itCjYtfvCpGt2I HblriTX1tg/edit),
100 but in the short term here are the steps to get the traces from a bisect:
101
102 1. The bisect comment should have a "Debug Info" link that looks like this:
103 `https://chromeperf.appspot.com/buildbucket_job_status/8980436717323504240`
104 Click it.
105 2. In the debug info, you should see a "Buildbot link" that looks like this:
106 `https://build.chromium.org/p/tryserver.chromium.perf/builders/android_nexu s7_perf_bisect/builds/4097`
107 Click it.
108 3. There will be several steps on the buildbot status page named "Bisecting
109 Revision". Each has an annotation like "Revision: chromium@474894" so you
110 can tell which revision it ran. Pick the commit position you want the
111 trace from (usually the one at your CL and the one immediately before).
112 Click the arrow by "> Nested step(s) for: Bisecting revision..." on those
113 steps.
114 4. In the nested steps, you'll see several steps titled "Bisecting
115 revision.Performance Test X of Y". These are the actual perf test runs.
116 Click the "stdout" link for one of these steps.
117 5. In the output, do a text search for "View generated trace files online"
118 and you'll see a link to a trace that looks like this:
119 `https://console.developers.google.com/m/cloudstorage/b/chrome-telemetry-ou tput/o/trace-file-id_0-2017-05-05_05-41-49-83206.html`
120
121 Here are some screenshots showing what to click on:
122
123 ![Finding the Bisecting Revision Step](images/bisecting_revision_step.png)
124 ![Getting to the stdout](images/bisect_stdout.png)
OLDNEW
« no previous file with comments | « no previous file | docs/speed/images/bisect_dialog.png » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698