Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
226 changes: 113 additions & 113 deletions documentation/en/src/benchmarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,28 @@ by `pgbench` against the same PostgreSQL backend on identical
hardware. Numbers below are relative throughput against each
competitor and absolute per-transaction latency.

_Last updated: 2026-04-27 12:00 UTC._
_Last updated: 2026-05-07 13:25 UTC._

## TL;DR

- **vs pgbouncer** — pg_doorman peaks at **x12.0** TPS on prepared protocol, 120 clients.
- **vs odyssey** — pg_doorman wins by **+40%** at most (extended protocol, 120 clients).
- **Tail spread at 10 000 simple-protocol clients** (`p99/p50`, lower = more predictable) — pg_doorman 1.1× (59.9→64.5ms), pgbouncer 1.4× (276→387ms), odyssey 11× (17.9→204ms).
- **vs pgbouncer** — pg_doorman peaks at **x9.7** TPS on prepared protocol, 500 clients.
- **vs odyssey** — pg_doorman peaks at **x1.5** TPS on extended protocol, 10,000 clients.
- **Tail spread at 10 000 simple-protocol clients** (`p99/p50`, lower = more predictable) — pg_doorman 1.3× (39.2→51.6ms), pgbouncer 1.3× (278→367ms), odyssey 116× (2.60→301ms).

![Tail spread at 10,000 simple-protocol clients](images/benchmarks/tldr_tail_spread.svg)

### Environment

- **Provider**: Ubicloud `standard-60` (eu-central-h1)
- **Resources**: 60 vCPU / 235.9 GB
- **Provider**: Ubicloud `standard-30` (eu-central-h1)
- **Resources**: 30 vCPU / 117.9 GB
- **Kernel**: `Linux 5.15.0-139-generic x86_64`
- **Versions**: PostgreSQL 14.22, pg_doorman 3.6.1, pgbouncer 1.25.1, odyssey 1.4.1
- **Workers**: pg_doorman: 30, odyssey: 30
- **Duration per pgbench run**: 60s
- **Started**: 2026-04-27 08:06 UTC
- **Finished**: 2026-04-27 11:03 UTC
- **Total wall-clock**: 2h 57m 08s
- **Commit**: [`c9dd765c`](https://github.com/ozontech/pg_doorman/commit/c9dd765c60605e453d203f93e2d5cfadf2734716)
- **Versions**: PostgreSQL 14.22, pg_doorman 3.8.0, pgbouncer 1.25.1, odyssey 1.4.1
- **Workers**: pg_doorman: 15, odyssey: 15
- **Duration per pgbench run**: 30s
- **Started**: 2026-05-07 11:39 UTC
- **Finished**: 2026-05-07 13:21 UTC
- **Total wall-clock**: 1h 42m 14s
- **Commit**: [`955a7402`](https://github.com/ozontech/pg_doorman/commit/955a7402701cb061123368e3afde09688ff6390f)

### Methodology

Expand Down Expand Up @@ -83,51 +83,51 @@ the client count grows. Full p95 series ships in the raw

| Test | vs pgbouncer | vs odyssey |
|------|--------------|------------|
| 1 client | ≈0% | ≈0% |
| 40 clients | x2.9 | -46% |
| 120 clients | x9.9 | ≈0% |
| 500 clients | x6.6 | -32% |
| 10,000 clients | x4.7 | -34% |
| 1 client + Reconnect | -14% | x2.0 |
| 40 clients + Reconnect | x1.6 | N/A |
| 120 clients + Reconnect | x1.7 | N/A |
| 500 clients + Reconnect | x1.7 | N/A |
| 10,000 clients + Reconnect | +41% | N/A |
| 1 client + SSL | ≈0% | ≈0% |
| 40 clients + SSL | x3.1 | -38% |
| 120 clients + SSL | x8.5 | -5% |
| 500 clients + SSL | x10.6 | +18% |
| 10,000 clients + SSL | x7.1 | +12% |
| 1 client + SSL + Reconnect | -6% | x1.6 |
| 40 clients + SSL + Reconnect | ≈0% | -35% |
| 120 clients + SSL + Reconnect | +5% | -39% |
| 500 clients + SSL + Reconnect | +17% | -28% |
| 10,000 clients + SSL + Reconnect | -8% | -16% |
| 1 client | -3% | -9% |
| 40 clients | x2.9 | -42% |
| 120 clients | x6.0 | -24% |
| 500 clients | x6.7 | -11% |
| 10,000 clients | x6.9 | +10% |
| 1 client + Reconnect | ≈0% | x2.3 |
| 40 clients + Reconnect | x2.1 | x1.7 |
| 120 clients + Reconnect | x2.2 | N/A |
| 500 clients + Reconnect | x2.3 | N/A |
| 10,000 clients + Reconnect | x1.9 | N/A |
| 1 client + SSL | -7% | -6% |
| 40 clients + SSL | x3.0 | -39% |
| 120 clients + SSL | x7.1 | -29% |
| 500 clients + SSL | x7.7 | -20% |
| 10,000 clients + SSL | x8.3 | +19% |
| 1 client + SSL + Reconnect | -52% | +11% |
| 40 clients + SSL + Reconnect | ≈0% | -15% |
| 120 clients + SSL + Reconnect | +13% | -15% |
| 500 clients + SSL + Reconnect | +10% | -7% |
| 10,000 clients + SSL + Reconnect | +10% | ≈0% |

### Latency (ms; spread = p99 / p50)

| Test | pg_doorman p50/p99 | spread | pgbouncer p50/p99 | spread | odyssey p50/p99 | spread |
|------|-------------------:|-------:|------------------:|-------:|----------------:|-------:|
| 1 client | 0.08 / 0.10 | 1.4× | 0.07 / 0.10 | 1.4× | 0.07 / 0.12 | 1.7× |
| 40 clients | 0.27 / 0.50 | 1.8× | 0.74 / 1.90 | 2.6× | 0.12 / 0.30 | 2.5× |
| 120 clients | 0.29 / 0.91 | 3.2× | 2.86 / 6.77 | 2.4× | 0.24 / 2.07 | 8.8× |
| 500 clients | 2.30 / 4.38 | 1.9× | 12.6 / 27.6 | 2.2× | 0.82 / 7.87 | 9.5× |
| 10,000 clients | 59.9 / 64.5 | 1.1× | 276 / 387 | 1.4× | 17.9 / 204 | 11× |
| 1 client + Reconnect | 0.14 / 0.23 | 1.6× | 0.11 / 0.21 | 1.9× | 0.18 / 0.31 | 1.7× |
| 40 clients + Reconnect | 1.26 / 4.10 | 3.2× | 1.91 / 6.26 | 3.3× | 1.85 / 5.35 | 2.9× |
| 120 clients + Reconnect | 3.83 / 11.1 | 2.9× | 5.89 / 18.1 | 3.1× | 5.95 / 16.7 | 2.8× |
| 500 clients + Reconnect | 16.3 / 42.9 | 2.6× | 26.2 / 71.1 | 2.7× | 25.3 / 65.4 | 2.6× |
| 10,000 clients + Reconnect | 369 / 763 | 2.1× | 524 / 1106 | 2.1× | 744 / 1519 | 2.0× |
| 1 client + SSL | 0.08 / 0.11 | 1.4× | 0.08 / 0.11 | 1.4× | 0.08 / 0.12 | 1.6× |
| 40 clients + SSL | 0.27 / 0.50 | 1.8× | 0.87 / 2.16 | 2.5× | 0.15 / 0.28 | 1.9× |
| 120 clients + SSL | 0.42 / 1.16 | 2.7× | 3.71 / 8.61 | 2.3× | 0.30 / 2.07 | 7.0× |
| 500 clients + SSL | 1.09 / 2.54 | 2.3× | 17.0 / 34.7 | 2.0× | 1.04 / 5.42 | 5.2× |
| 10,000 clients + SSL | 26.9 / 64.0 | 2.4× | 369 / 511 | 1.4× | 29.7 / 82.4 | 2.8× |
| 1 client + SSL + Reconnect | 0.23 / 0.36 | 1.6× | 0.19 / 0.35 | 1.9× | 0.28 / 0.43 | 1.5× |
| 40 clients + SSL + Reconnect | 17.6 / 42.2 | 2.4× | 16.3 / 53.1 | 3.3× | 11.4 / 31.7 | 2.8× |
| 120 clients + SSL + Reconnect | 57.0 / 130 | 2.3× | 55.6 / 166 | 3.0× | 33.9 / 95.7 | 2.8× |
| 500 clients + SSL + Reconnect | 212 / 483 | 2.3× | 237 / 619 | 2.6× | 150 / 392 | 2.6× |
| 10,000 clients + SSL + Reconnect | 5033 / 10055 | 2.0× | 4052 / 10245 | 2.5× | 4361 / 8612 | 2.0× |
| 1 client | 0.07 / 0.10 | 1.3× | 0.07 / 0.10 | 1.4× | 0.07 / 0.10 | 1.5× |
| 40 clients | 0.26 / 0.49 | 1.9× | 0.71 / 1.73 | 2.4× | 0.12 / 0.40 | 3.2× |
| 120 clients | 0.43 / 1.59 | 3.7× | 2.65 / 6.11 | 2.3× | 0.25 / 2.66 | 11× |
| 500 clients | 2.07 / 6.26 | 3.0× | 11.3 / 24.8 | 2.2× | 0.67 / 12.6 | 19× |
| 10,000 clients | 39.2 / 51.6 | 1.3× | 278 / 367 | 1.3× | 2.60 / 301 | 116× |
| 1 client + Reconnect | 0.08 / 0.14 | 1.7× | 0.11 / 0.19 | 1.6× | 0.18 / 0.35 | 1.9× |
| 40 clients + Reconnect | 1.03 / 2.78 | 2.7× | 2.05 / 5.96 | 2.9× | 1.70 / 5.24 | 3.1× |
| 120 clients + Reconnect | 3.16 / 7.71 | 2.4× | 6.55 / 17.6 | 2.7× | 5.30 / 13.6 | 2.6× |
| 500 clients + Reconnect | 13.5 / 31.2 | 2.3× | 29.8 / 68.0 | 2.3× | 24.3 / 64.5 | 2.7× |
| 10,000 clients + Reconnect | 291 / 568 | 2.0× | 551 / 1169 | 2.1× | 859 / 1652 | 1.9× |
| 1 client + SSL | 0.08 / 0.11 | 1.3× | 0.08 / 0.12 | 1.5× | 0.07 / 0.12 | 1.7× |
| 40 clients + SSL | 0.28 / 0.62 | 2.2× | 0.84 / 1.94 | 2.3× | 0.13 / 0.60 | 4.5× |
| 120 clients + SSL | 0.47 / 1.93 | 4.1× | 3.37 / 7.77 | 2.3× | 0.26 / 3.79 | 15× |
| 500 clients + SSL | 1.69 / 10.7 | 6.3× | 15.7 / 31.5 | 2.0× | 0.68 / 13.7 | 20× |
| 10,000 clients + SSL | 35.8 / 64.2 | 1.8× | 373 / 526 | 1.4× | 7.26 / 351 | 48× |
| 1 client + SSL + Reconnect | 0.33 / 0.40 | 1.2× | 0.14 / 0.37 | 2.7× | 0.29 / 0.45 | 1.6× |
| 40 clients + SSL + Reconnect | 19.0 / 40.3 | 2.1× | 18.2 / 54.3 | 3.0× | 15.6 / 36.4 | 2.3× |
| 120 clients + SSL + Reconnect | 57.6 / 123 | 2.1× | 63.6 / 153 | 2.4× | 48.3 / 110 | 2.3× |
| 500 clients + SSL + Reconnect | 231 / 483 | 2.1× | 250 / 557 | 2.2× | 218 / 454 | 2.1× |
| 10,000 clients + SSL + Reconnect | 4277 / 9052 | 2.1× | 4938 / 9878 | 2.0× | 4254 / 8958 | 2.1× |

---

Expand All @@ -139,41 +139,41 @@ the client count grows. Full p95 series ships in the raw

| Test | vs pgbouncer | vs odyssey |
|------|--------------|------------|
| 1 client | ≈0% | x1.6 |
| 40 clients | x3.0 | -21% |
| 120 clients | x10.4 | +40% |
| 500 clients | x7.4 | +7% |
| 10,000 clients | x5.2 | ≈0% |
| 1 client + Reconnect | -16% | x1.9 |
| 40 clients + Reconnect | x1.7 | N/A |
| 120 clients + Reconnect | x1.6 | x1.5 |
| 500 clients + Reconnect | x1.7 | N/A |
| 10,000 clients + Reconnect | +41% | x2.2 |
| 1 client + SSL | ≈0% | +49% |
| 40 clients + SSL | x3.3 | -13% |
| 120 clients + SSL | x9.4 | +50% |
| 500 clients + SSL | x10.4 | x1.7 |
| 10,000 clients + SSL | x7.1 | +25% |
| 1 client | +7% | x1.6 |
| 40 clients | x3.0 | -4% |
| 120 clients | x6.1 | -9% |
| 500 clients | x7.1 | +31% |
| 10,000 clients | x6.9 | x1.5 |
| 1 client + Reconnect | -13% | x2.4 |
| 40 clients + Reconnect | x2.2 | N/A |
| 120 clients + Reconnect | x2.4 | N/A |
| 500 clients + Reconnect | x2.2 | N/A |
| 10,000 clients + Reconnect | x2.0 | x3.0 |
| 1 client + SSL | +5% | +46% |
| 40 clients + SSL | x2.9 | -17% |
| 120 clients + SSL | x6.3 | ≈0% |
| 500 clients + SSL | x7.7 | +29% |
| 10,000 clients + SSL | x8.0 | x1.8 |

### Latency (ms; spread = p99 / p50)

| Test | pg_doorman p50/p99 | spread | pgbouncer p50/p99 | spread | odyssey p50/p99 | spread |
|------|-------------------:|-------:|------------------:|-------:|----------------:|-------:|
| 1 client | 0.07 / 0.11 | 1.4× | 0.07 / 0.10 | 1.4× | 0.11 / 0.18 | 1.6× |
| 40 clients | 0.27 / 0.48 | 1.8× | 0.76 / 1.90 | 2.5× | 0.18 / 0.48 | 2.7× |
| 120 clients | 0.28 / 0.89 | 3.2× | 3.06 / 6.87 | 2.2× | 0.35 / 3.52 | 10× |
| 500 clients | 2.08 / 3.98 | 1.9× | 12.8 / 27.7 | 2.2× | 1.55 / 13.2 | 8.5× |
| 10,000 clients | 55.4 / 60.3 | 1.1× | 288 / 387 | 1.3× | 52.2 / 326 | 6.2× |
| 1 client + Reconnect | 0.14 / 0.22 | 1.6× | 0.12 / 0.22 | 1.8× | 0.24 / 0.41 | 1.7× |
| 40 clients + Reconnect | 1.25 / 4.02 | 3.2× | 1.96 / 6.44 | 3.3× | 1.85 / 5.48 | 3.0× |
| 120 clients + Reconnect | 3.81 / 11.1 | 2.9× | 5.62 / 17.8 | 3.2× | 5.74 / 15.7 | 2.7× |
| 500 clients + Reconnect | 16.5 / 44.6 | 2.7× | 26.5 / 72.3 | 2.7× | 27.1 / 72.2 | 2.7× |
| 10,000 clients + Reconnect | 368 / 764 | 2.1× | 511 / 1139 | 2.2× | 816 / 1657 | 2.0× |
| 1 client + SSL | 0.09 / 0.11 | 1.2× | 0.08 / 0.12 | 1.5× | 0.12 / 0.20 | 1.7× |
| 40 clients + SSL | 0.27 / 0.49 | 1.8× | 0.91 / 2.20 | 2.4× | 0.23 / 0.37 | 1.6× |
| 120 clients + SSL | 0.38 / 1.05 | 2.8× | 3.68 / 8.69 | 2.4× | 0.57 / 2.62 | 4.6× |
| 500 clients + SSL | 1.01 / 2.65 | 2.6× | 17.6 / 36.1 | 2.1× | 2.29 / 7.34 | 3.2× |
| 10,000 clients + SSL | 27.7 / 65.9 | 2.4× | 384 / 521 | 1.4× | 49.2 / 152 | 3.1× |
| 1 client | 0.07 / 0.09 | 1.3× | 0.07 / 0.10 | 1.4× | 0.11 / 0.17 | 1.6× |
| 40 clients | 0.26 / 0.51 | 1.9× | 0.73 / 1.80 | 2.5× | 0.21 / 0.69 | 3.3× |
| 120 clients | 0.44 / 1.65 | 3.8× | 2.75 / 6.35 | 2.3× | 0.41 / 1.77 | 4.3× |
| 500 clients | 2.13 / 6.05 | 2.8× | 11.9 / 25.5 | 2.1× | 0.81 / 19.3 | 24× |
| 10,000 clients | 39.7 / 58.4 | 1.5× | 285 / 404 | 1.4× | 5.35 / 432 | 81× |
| 1 client + Reconnect | 0.14 / 0.21 | 1.5× | 0.13 / 0.20 | 1.5× | 0.32 / 0.48 | 1.5× |
| 40 clients + Reconnect | 1.04 / 2.69 | 2.6× | 2.16 / 5.97 | 2.8× | 1.68 / 5.25 | 3.1× |
| 120 clients + Reconnect | 3.17 / 7.70 | 2.4× | 7.32 / 18.3 | 2.5× | 5.43 / 16.0 | 2.9× |
| 500 clients + Reconnect | 13.5 / 31.6 | 2.3× | 27.8 / 67.7 | 2.4× | 25.3 / 69.1 | 2.7× |
| 10,000 clients + Reconnect | 291 / 569 | 2.0× | 571 / 1212 | 2.1× | 871 / 1692 | 1.9× |
| 1 client + SSL | 0.08 / 0.10 | 1.2× | 0.08 / 0.12 | 1.5× | 0.12 / 0.19 | 1.6× |
| 40 clients + SSL | 0.28 / 0.65 | 2.3× | 0.85 / 1.75 | 2.1× | 0.20 / 0.73 | 3.6× |
| 120 clients + SSL | 0.52 / 2.07 | 4.0× | 3.32 / 7.75 | 2.3× | 0.45 / 4.17 | 9.3× |
| 500 clients + SSL | 1.70 / 11.4 | 6.7× | 17.0 / 32.8 | 1.9× | 0.99 / 22.9 | 23× |
| 10,000 clients + SSL | 39.2 / 66.7 | 1.7× | 372 / 615 | 1.7× | 78.1 / 498 | 6.4× |

---

Expand All @@ -185,41 +185,41 @@ the client count grows. Full p95 series ships in the raw

| Test | vs pgbouncer | vs odyssey |
|------|--------------|------------|
| 1 client | ≈0% | ≈0% |
| 40 clients | x3.4 | -49% |
| 120 clients | x12.0 | ≈0% |
| 500 clients | x8.5 | -29% |
| 10,000 clients | x6.2 | -32% |
| 1 client + Reconnect | -9% | x2.1 |
| 40 clients + Reconnect | x1.6 | +48% |
| 120 clients + Reconnect | x1.7 | N/A |
| 500 clients + Reconnect | x1.8 | N/A |
| 10,000 clients + Reconnect | +40% | x2.1 |
| 1 client + SSL | +3% | ≈0% |
| 40 clients + SSL | x3.8 | -36% |
| 120 clients + SSL | x10.0 | ≈0% |
| 500 clients + SSL | x12.7 | +19% |
| 10,000 clients + SSL | x8.6 | +12% |
| 1 client | ≈0% | -13% |
| 40 clients | x3.5 | -40% |
| 120 clients | x8.0 | -35% |
| 500 clients | x9.7 | -13% |
| 10,000 clients | x8.8 | +7% |
| 1 client + Reconnect | -8% | x2.1 |
| 40 clients + Reconnect | x1.9 | N/A |
| 120 clients + Reconnect | x2.0 | x1.6 |
| 500 clients + Reconnect | x2.2 | N/A |
| 10,000 clients + Reconnect | x2.0 | x2.9 |
| 1 client + SSL | -3% | ≈0% |
| 40 clients + SSL | x3.6 | -44% |
| 120 clients + SSL | x8.3 | -31% |
| 500 clients + SSL | x9.3 | -19% |
| 10,000 clients + SSL | x10.2 | +19% |

### Latency (ms; spread = p99 / p50)

| Test | pg_doorman p50/p99 | spread | pgbouncer p50/p99 | spread | odyssey p50/p99 | spread |
|------|-------------------:|-------:|------------------:|-------:|----------------:|-------:|
| 1 client | 0.07 / 0.10 | 1.4× | 0.07 / 0.10 | 1.4× | 0.07 / 0.11 | 1.6× |
| 40 clients | 0.27 / 0.49 | 1.8× | 0.90 / 2.23 | 2.5× | 0.12 / 0.26 | 2.2× |
| 120 clients | 0.30 / 0.94 | 3.2× | 3.82 / 8.20 | 2.1× | 0.23 / 1.48 | 6.3× |
| 500 clients | 2.21 / 4.23 | 1.9× | 16.5 / 33.0 | 2.0× | 0.81 / 6.93 | 8.6× |
| 10,000 clients | 57.5 / 62.9 | 1.1× | 353 / 465 | 1.3× | 17.5 / 205 | 12× |
| 1 client + Reconnect | 0.20 / 0.33 | 1.6× | 0.20 / 0.33 | 1.7× | 0.37 / 0.61 | 1.6× |
| 40 clients + Reconnect | 1.84 / 5.20 | 2.8× | 2.67 / 8.54 | 3.2× | 2.73 / 7.35 | 2.7× |
| 120 clients + Reconnect | 5.25 / 14.6 | 2.8× | 8.11 / 25.0 | 3.1× | 7.72 / 21.6 | 2.8× |
| 500 clients + Reconnect | 21.6 / 58.4 | 2.7× | 38.0 / 101 | 2.7× | 33.3 / 82.8 | 2.5× |
| 10,000 clients + Reconnect | 485 / 1031 | 2.1× | 672 / 1421 | 2.1× | 1026 / 2214 | 2.2× |
| 1 client + SSL | 0.08 / 0.12 | 1.4× | 0.08 / 0.12 | 1.5× | 0.08 / 0.13 | 1.7× |
| 40 clients + SSL | 0.26 / 0.48 | 1.8× | 1.02 / 2.59 | 2.5× | 0.15 / 0.27 | 1.8× |
| 120 clients + SSL | 0.42 / 1.16 | 2.8× | 4.44 / 9.74 | 2.2× | 0.28 / 1.15 | 4.0× |
| 500 clients + SSL | 1.08 / 2.60 | 2.4× | 21.5 / 41.0 | 1.9× | 1.06 / 5.35 | 5.0× |
| 10,000 clients + SSL | 27.1 / 58.3 | 2.1× | 463 / 609 | 1.3× | 29.8 / 86.2 | 2.9× |
| 1 client | 0.07 / 0.09 | 1.3× | 0.07 / 0.11 | 1.5× | 0.07 / 0.10 | 1.5× |
| 40 clients | 0.26 / 0.51 | 2.0× | 0.86 / 2.11 | 2.4× | 0.13 / 0.45 | 3.5× |
| 120 clients | 0.44 / 1.58 | 3.6× | 3.37 / 7.59 | 2.2× | 0.25 / 1.59 | 6.5× |
| 500 clients | 2.06 / 6.54 | 3.2× | 19.8 / 31.0 | 1.6× | 0.64 / 12.2 | 19× |
| 10,000 clients | 39.3 / 55.2 | 1.4× | 347 / 562 | 1.6× | 2.67 / 294 | 110× |
| 1 client + Reconnect | 0.21 / 0.32 | 1.5× | 0.20 / 0.34 | 1.7× | 0.39 / 0.61 | 1.6× |
| 40 clients + Reconnect | 1.77 / 4.75 | 2.7× | 3.16 / 8.56 | 2.7× | 2.73 / 7.73 | 2.8× |
| 120 clients + Reconnect | 4.88 / 12.1 | 2.5× | 9.17 / 25.2 | 2.8× | 7.80 / 20.0 | 2.6× |
| 500 clients + Reconnect | 18.9 / 41.8 | 2.2× | 40.3 / 96.7 | 2.4× | 38.3 / 91.9 | 2.4× |
| 10,000 clients + Reconnect | 391 / 780 | 2.0× | 768 / 1654 | 2.2× | 1128 / 2282 | 2.0× |
| 1 client + SSL | 0.08 / 0.10 | 1.3× | 0.07 / 0.10 | 1.4× | 0.07 / 0.12 | 1.7× |
| 40 clients + SSL | 0.28 / 0.63 | 2.3× | 0.97 / 2.45 | 2.5× | 0.12 / 0.53 | 4.2× |
| 120 clients + SSL | 0.47 / 1.91 | 4.1× | 3.95 / 9.11 | 2.3× | 0.27 / 3.64 | 14× |
| 500 clients + SSL | 1.75 / 10.6 | 6.0× | 19.5 / 37.4 | 1.9× | 0.75 / 13.2 | 18× |
| 10,000 clients + SSL | 35.9 / 67.2 | 1.9× | 439 / 878 | 2.0× | 8.81 / 348 | 40× |

---

Expand Down
Loading
Loading