Skip to content

Commit 4667af2

Browse files
updated JSON and findings/data/images
1 parent 1d722b9 commit 4667af2

7 files changed

Lines changed: 38 additions & 36 deletions

File tree

content/learning-paths/servers-and-cloud-computing/gerrit-on-gcp/benchmarking.md

Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ The script then places the data into a specified JSON file similar to (partially
3535
```json
3636
{
3737
"run": {
38-
"run_id": "20260622T152549Z",
39-
"timestamp_utc": "2026-06-22T15:35:19Z",
40-
"host": "douans01-gerrit-arm-6.c.arm-deveco-stedvsl-prd.internal",
41-
"os": "Debian GNU/Linux 13 (trixie)"
38+
"run_id": "20260630T032002Z",
39+
"timestamp_utc": "2026-06-30T03:29:40Z",
40+
"host": "douans01-gerrit-arm-a.c.arm-deveco-stedvsl-prd.internal",
41+
"os": "Ubuntu 24.04.4 LTS"
4242
},
4343
"software": {
44-
"java_version": "openjdk version \"21.0.11\" 2026-04-21 OpenJDK Runtime Environment (build 21.0.11+10-1-deb13u2-Debian) OpenJDK 64-Bit Server VM (build 21.0.11+10-1-deb13u2-Debian, mixed mode, sharing) ",
44+
"java_version": "openjdk version \"21.0.11\" 2026-04-21 OpenJDK Runtime Environment (build 21.0.11+10-1-24.04.2-Ubuntu) OpenJDK 64-Bit Server VM (build 21.0.11+10-1-24.04.2-Ubuntu, mixed mode, sharing) ",
4545
"gerrit_version": "gerrit version 3.11.2",
4646
"gerrit_base_url": "http://127.0.0.1:8080",
4747
"gerrit_test_http_user": "admin",
@@ -72,44 +72,44 @@ The script then places the data into a specified JSON file similar to (partially
7272
"operation_summary": [
7373
{
7474
"type": "git_clone",
75-
"count": 4301,
76-
"ok_count": 4301,
75+
"count": 4371,
76+
"ok_count": 4371,
7777
"fail_count": 0,
78-
"min_ms": 105,
79-
"avg_ms": 244.42269239711695,
80-
"p50_ms": 220,
81-
"p90_ms": 418,
82-
"p95_ms": 456,
83-
"p99_ms": 521,
84-
"max_ms": 611
78+
"min_ms": 102,
79+
"avg_ms": 239.0315717227179,
80+
"p50_ms": 207,
81+
"p90_ms": 408,
82+
"p95_ms": 448,
83+
"p99_ms": 519,
84+
"max_ms": 673
8585
},
8686
{
8787
"type": "git_push_refs_for",
88-
"count": 570,
89-
"ok_count": 570,
88+
"count": 582,
89+
"ok_count": 582,
9090
"fail_count": 0,
91-
"min_ms": 75,
92-
"avg_ms": 157.13333333333333,
93-
"p50_ms": 155,
94-
"p90_ms": 222,
95-
"p95_ms": 239,
96-
"p99_ms": 288,
97-
"max_ms": 344
91+
"min_ms": 61,
92+
"avg_ms": 135.446735395189,
93+
"p50_ms": 133,
94+
"p90_ms": 192,
95+
"p95_ms": 209,
96+
"p99_ms": 246,
97+
"max_ms": 323
9898
},
9999
{
100100
"type": "rest_change_query",
101-
"count": 42992,
102-
"ok_count": 42992,
101+
"count": 44625,
102+
"ok_count": 44625,
103103
"fail_count": 0,
104-
"min_ms": 12,
105-
"avg_ms": 31.553265723855603,
106-
"p50_ms": 30,
107-
"p90_ms": 50,
108-
"p95_ms": 56,
109-
"p99_ms": 69,
110-
"max_ms": 105
104+
"min_ms": 11,
105+
"avg_ms": 28.711753501400562,
106+
"p50_ms": 26,
107+
"p90_ms": 47,
108+
"p95_ms": 55,
109+
"p99_ms": 70,
110+
"max_ms": 205
111111
}
112-
]
112+
],
113113
// rest of file omitted for brevity...
114114
}
115115
```
@@ -118,17 +118,19 @@ You can process this JSON file to create a summary of the performance of Gerrit
118118

119119
## Performance summary
120120

121-
The benchmark run completed successfully on the production-like profile with Gerrit metrics enabled. It recorded 47,863 measured client operations over four 120-second steps, with 47,863 successes and zero failures.
121+
The benchmark run completed successfully on the production-like profile with Gerrit metrics enabled. It recorded 49,578 measured client operations over four 120-second steps, with 49,578 successes and zero failures.
122122

123123
The benchmark gives a high-quality performance view: client latency, stepwise concurrency behavior, node CPU/memory/disk. Gerrit-side JVM, GC, Jetty, cache, queue, Git, REST, NoteDB, and receive-commits metrics are all present:
124124

125125
![Charts and graphs showing the Gerrit benchmark performance summary including operation counts, success rates, and latency metrics across the four 120-second test steps.#center](images/analysis.png "Gerrit benchmark summary")
126126

127-
All 47,863 measured client-side operations succeeded. REST query latency remains low with a p99 of 69 ms. Clone is the dominant pressure point at a p99 of 521 ms, and push remains sub-second at a p99 of 288 ms:
127+
All 49,578 measured client-side operations succeeded. REST query latency remains low with a p99 of 70 ms. Clone is the dominant pressure point at a p99 of 519 ms, and push remains sub-second at a p99 of 246 ms:
128128

129129
![Performance metrics showing client-side operation summary with statistics for git_clone, git_push_refs_for, and rest_change_query operations, including latency percentiles and success rates.#center](images/client-summary.png "Client-side operation summary")
130130

131-
The useful capacity signal is the flattening throughput curve after step 2. CPU is already near saturation in step 2, then stays around 99% in steps 3 and 4. Latency continues rising: clone p99 increases from 221 ms in step 2 to 550 ms in step 4, while aggregate throughput only rises from 103.3 to 108.4 ops/sec:
131+
The useful capacity signal is the flattening throughput curve after step 2. CPU is already near saturation in step 2 at 96.7%, then
132+
rises to 99.5% in step 4. Latency continues rising: clone p99 increases from 221 ms in step 2 to 559 ms in step 4, while
133+
aggregate throughput only rises from 107.3 to 111.5 ops/sec:
132134

133135
![Graph showing throughput and latency trends across four concurrency steps, demonstrating how performance degrades as concurrency increases and CPU approaches saturation.#center](images/stepwise-summary.png "Stepwise concurrency behavior summary")
134136

53.2 KB
Loading
18.9 KB
Loading
45.3 KB
Loading
53 KB
Loading
27.1 KB
Loading
132 KB
Loading

0 commit comments

Comments
 (0)