Shared CPU
WebSocket benchmarks · All results · API Maker 4.0.0 · 14 October 2026
Every WebSocket result, side by side.
7 Linode servers, from 1 to 8 vCPUs, shared and dedicated CPU, API Maker with its MongoDB and Redis on the same machine, and 3 clusters of API servers which share one Redis. 50,167,783 clients let in, 214,875,630 notifications delivered, 28,019,607 HTTP calls, 0 failures. Each number links to its run, with the output.
Most clients on one server
3,662,564
8 shared vCPUs, 32 GB
Memory per client
8.5 to 8.8KB
118,483 to 123,507 clients per GB
New clients / second
2,602 to 10,939
both tokens and a subscription
Delivery p50
0.83 to 2.51ms
a notification for one person
Clients connected at once¶
1 vCPU · 1 GBshared · $5 / month
2 vCPU · 4 GBshared · $24 / month
4 vCPU · 8 GBshared · $48 / month
8 vCPU · 32 GBshared · $192 / month
2 vCPU · 4 GBdedicated · $36 / month
4 vCPU · 8 GBdedicated · $72 / month
8 vCPU · 16 GBdedicated · $144 / month
| Server | CPU · price / month | Clients connected | What ended first | API Maker | Whole server, used | Per client | Clients per $ a month |
|---|---|---|---|---|---|---|---|
| 1 vCPU · 1 GB | Shared · $5 | 26,484 | memory | 126 MB | 813 MB of 961 MB | 8.6 KB | 5,297 |
| 2 vCPU · 4 GB | Shared · $24 | 338,016 | memory | 1,110 MB | 3,417 MB of 3,916 MB | 8.5 KB | 14,084 |
| 4 vCPU · 8 GB | Shared · $48 | 801,972 | memory | 2,495 MB | 6,937 MB of 7,941 MB | 8.7 KB | 16,708 |
| 8 vCPU · 32 GB | Shared · $192 | 3,662,564 | memory | 10,196 MB | 27,618 MB of 32,096 MB | 8.8 KB | 19,076 |
| 2 vCPU · 4 GB | Dedicated · $36 | 338,006 | memory | 1,108 MB | 3,465 MB of 3,916 MB | 8.5 KB | 9,389 |
| 4 vCPU · 8 GB | Dedicated · $72 | 795,888 | memory | 2,474 MB | 6,917 MB of 7,941 MB | 8.7 KB | 11,054 |
| 8 vCPU · 16 GB | Dedicated · $144 | 1,732,035 | memory | 5,179 MB | 13,942 MB of 15,992 MB | 8.8 KB | 12,028 |
Memory¶
| With every client connected | 1 vCPU shared · 1 GB |
2 vCPU shared · 4 GB |
4 vCPU shared · 8 GB |
8 vCPU shared · 32 GB |
2 vCPU dedicated · 4 GB |
4 vCPU dedicated · 8 GB |
8 vCPU dedicated · 16 GB |
|---|---|---|---|---|---|---|---|
| Clients | 26,484 | 338,016 | 801,972 | 3,662,564 | 338,006 | 795,888 | 1,732,035 |
| API Maker (process) | 126 MB | 1,110 MB | 2,495 MB | 10,196 MB | 1,108 MB | 2,474 MB | 5,179 MB |
| Redis | 30 MB | 356 MB | 808 MB | 3,533 MB | 356 MB | 802 MB | 1,633 MB |
| Linux kernel (slab) | 200 MB | 1,635 MB | 3,715 MB | 16,443 MB | 1,627 MB | 3,691 MB | 7,839 MB |
| MongoDB of API Maker | 110 MB | 117 MB | 64 MB | 61 MB | 125 MB | 66 MB | 52 MB |
| Sandboxes | 143 MB | 91 MB | 206 MB | 245 MB | 99 MB | 203 MB | 334 MB |
| Whole server, used | 813 MB | 3,417 MB | 6,937 MB | 27,618 MB | 3,465 MB | 6,917 MB | 13,942 MB |
| Available | 149 MB | 499 MB | 1,005 MB | 4,478 MB | 451 MB | 1,024 MB | 2,050 MB |
| Swap used | 176 MB | 310 MB | 609 MB | 2,691 MB | 270 MB | 594 MB | 1,525 MB |
| API Maker at rest, no client | 103 MB | 110 MB | 118 MB | 121 MB | 109 MB | 118 MB | 117 MB |
| Per client : API Maker | 3.3 KB | 3.1 KB | 3.3 KB | 3.2 KB | 3.1 KB | 3.3 KB | 3.2 KB |
| Per client : Linux kernel | 4.3 KB | 4.3 KB | 4.4 KB | 4.5 KB | 4.3 KB | 4.4 KB | 4.5 KB |
| Per client : Redis | 1.0 KB | 1.0 KB | 1.1 KB | 1.1 KB | 1.0 KB | 1.1 KB | 1.1 KB |
| Per client : in all | 8.6 KB | 8.5 KB | 8.7 KB | 8.8 KB | 8.5 KB | 8.7 KB | 8.8 KB |
| Clients per GB | 121,927 | 123,507 | 120,250 | 118,483 | 123,507 | 120,250 | 118,886 |
New clients per second¶
| 100 clients at a time | 1 vCPU shared · 1 GB |
2 vCPU shared · 4 GB |
4 vCPU shared · 8 GB |
8 vCPU shared · 32 GB |
2 vCPU dedicated · 4 GB |
4 vCPU dedicated · 8 GB |
8 vCPU dedicated · 16 GB |
|---|---|---|---|---|---|---|---|
| Connect : the token of the API user | 5,905 | 9,799 | 15,228 | 24,511 | 7,417 | 13,849 | 21,780 |
| Connect : both tokens | 5,302 | 9,504 | 12,826 | 24,719 | 7,077 | 12,535 | 19,391 |
| Connect with both tokens and subscribe | 2,602 | 4,041 | 7,009 | 10,939 | 3,464 | 6,627 | 10,093 |
| Subscribe to an event with a can user connect code | 2,097 | 3,438 | 5,916 | 9,280 | 2,891 | 5,533 | 8,963 |
| Subscribe : the code reads the database | 959 | 1,605 | 2,735 | 4,381 | 1,368 | 2,046 | 3,919 |
| Subscribe : the code reads the clock | 1,960 | 3,031 | 5,243 | 7,741 | 2,550 | 4,505 | 7,543 |
| Subscribed after, p50 | 33.2 ms | 21.5 ms | 12.5 ms | 7.91 ms | 25.1 ms | 13.4 ms | 8.85 ms |
| Subscribed after, p99 | 47.5 ms | 31.2 ms | 18.9 ms | 13.4 ms | 35.0 ms | 19.3 ms | 12.8 ms |
Notifications¶
| How late : at a pace | 1 vCPU shared · 1 GB |
2 vCPU shared · 4 GB |
4 vCPU shared · 8 GB |
8 vCPU shared · 32 GB |
2 vCPU dedicated · 4 GB |
4 vCPU dedicated · 8 GB |
8 vCPU dedicated · 16 GB |
|---|---|---|---|---|---|---|---|
| A notification for one person : delivery p50 | 2.51 ms | 1.45 ms | 1.06 ms | 0.94 ms | 1.74 ms | 1.04 ms | 0.83 ms |
| … p99 | 3.82 ms | 3.15 ms | 2.03 ms | 6.54 ms | 3.70 ms | 2.03 ms | 1.27 ms |
| A broadcast : delivery p50 | 10.3 ms | 8.82 ms | 7.56 ms | 8.70 ms | 10.3 ms | 8.00 ms | 6.53 ms |
| … p99 | 21.6 ms | 18.0 ms | 16.4 ms | 19.9 ms | 18.3 ms | 17.3 ms | 14.0 ms |
| Rows inserted in a table : delivery p50 | 51.3 ms | 25.3 ms | 18.1 ms | 13.4 ms | 35.1 ms | 20.7 ms | 12.9 ms |
| … p99 | 103 ms | 44.4 ms | 30.0 ms | 35.5 ms | 54.8 ms | 34.5 ms | 19.8 ms |
| How many : notifications a second | 1 vCPU shared · 1 GB |
2 vCPU shared · 4 GB |
4 vCPU shared · 8 GB |
8 vCPU shared · 32 GB |
2 vCPU dedicated · 4 GB |
4 vCPU dedicated · 8 GB |
8 vCPU dedicated · 16 GB |
|---|---|---|---|---|---|---|---|
| A notification for one person | 5,216 | 7,562 | 13,441 | 21,208 | 6,618 | 12,791 | 21,001 |
| … HTTP calls a second | 5,285 | 7,657 | 13,711 | 21,628 | 6,757 | 13,049 | 21,252 |
| A broadcast | 72,245 | 103,387 | 147,974 | 196,995 | 69,874 | 117,698 | 206,570 |
| … HTTP calls a second | 73 | 105 | 150 | 199 | 71 | 120 | 209 |
| Rows inserted in a table | 40,498 | 59,275 | 92,279 | 136,942 | 49,312 | 76,505 | 132,499 |
| … HTTP calls a second | 416 | 604 | 932 | 1,396 | 506 | 779 | 1,350 |
With every client connected¶
| 1 vCPU shared · 1 GB |
2 vCPU shared · 4 GB |
4 vCPU shared · 8 GB |
8 vCPU shared · 32 GB |
2 vCPU dedicated · 4 GB |
4 vCPU dedicated · 8 GB |
8 vCPU dedicated · 16 GB |
|
|---|---|---|---|---|---|---|---|
| Clients connected | 26,484 | 338,016 | 801,972 | 3,662,564 | 338,006 | 795,888 | 1,732,035 |
| A notification for one person : delivery p50 | 2.49 ms | 1.47 ms | 1.22 ms | 1.28 ms | 1.76 ms | 1.03 ms | 0.87 ms |
| … p99 | 7.48 ms | 3.27 ms | 2.44 ms | 121 ms | 3.03 ms | 1.99 ms | 1.47 ms |
| Notifications a second, one person each | 5,226 | 6,967 | 10,799 | 8,384 | 5,705 | 9,745 | 15,938 |
| Get all with both tokens, no client : req/s | 2,095 | 3,379 | 6,072 | 9,529 | 3,058 | 5,268 | 9,672 |
| Get all with both tokens, every client connected : req/s | 1,983 | 3,006 | 4,767 | 3,997 | 2,614 | 4,185 | 7,305 |
A restart¶
| API Maker restarts | 1 vCPU shared · 1 GB |
2 vCPU shared · 4 GB |
4 vCPU shared · 8 GB |
8 vCPU shared · 32 GB |
2 vCPU dedicated · 4 GB |
4 vCPU dedicated · 8 GB |
8 vCPU dedicated · 16 GB |
|---|---|---|---|---|---|---|---|
| Clients connected | 19,863 | 253,512 | 601,479 | – | 253,504 | 596,916 | – |
| All back after | 10.0 s | 90.0 s | 189 s | – | 159 s | 189 s | – |
| A client was away, p50 | 7.4 s | 48.9 s | 76.7 s | – | 68.7 s | 79.1 s | – |
| A client was away, p99 | 9.1 s | 78.2 s | 173 s | – | 96.5 s | 172 s | – |
| Every client leaves at once : sockets closed after | 1.5 s | 10.1 s | 18.0 s | – | 15.1 s | 23.4 s | – |
| … Redis forgot them after | 2.6 s | 13.8 s | 26.9 s | – | 16.1 s | 29.1 s | – |
Several servers¶
The same 8 dedicated vCPUs and 16 GB for API Maker, as one server, two, and four, with MongoDB and Redis on a server of their own : Scale to N users.
| 1 × 8 vCPU · 16 GB | 2 × 4 vCPU · 8 GB | 4 × 2 vCPU · 4 GB | |
|---|---|---|---|
| Clients connected at once | 2,022,026 | 1,915,960 | 1,619,372 |
| … on each server | 2,022,026 | 957,980 | 404,843 |
| Memory per client, in all | 8.8 KB | 8.8 KB | 8.6 KB |
| New clients a second (both tokens, a subscription) | 12,412 | 12,696 | 10,297 |
| … connect only, both tokens | 19,917 | 21,417 | 17,882 |
| A notification for one person : delivery p50 | 1.01 ms | 1.18 ms | 1.37 ms |
| … p99 | 1.72 ms | 1.80 ms | 2.51 ms |
| Notifications a second, one person each | 24,305 | 24,977 | 25,566 |
| Notifications a second, broadcast | 217,711 | 228,910 | 272,609 |
| One server stops : clients dropped | 1,516,519 of 1,516,519 (100 %) | 383,192 of 766,384 (50 %) | 242,906 of 971,623 (25 %) |
| … all back after | 221 s | 68.0 s | 38.0 s |
The servers¶
| 1 vCPU | 2 vCPU | 4 vCPU | 8 vCPU | 2 vCPU | 4 vCPU | 8 vCPU | |
|---|---|---|---|---|---|---|---|
| Plan | Nanode 1 GB g6-nanode-1 |
Linode 4 GB g6-standard-2 |
Linode 8 GB g6-standard-4 |
Linode 32 GB g6-standard-8 |
Dedicated 4 GB g6-dedicated-2 |
Dedicated 8 GB g6-dedicated-4 |
Dedicated 16 GB g6-dedicated-8 |
| CPU | AMD EPYC 7642 shared cpu |
AMD EPYC 7642 shared cpu |
AMD EPYC 7642 shared cpu |
AMD EPYC 7642 shared cpu |
AMD EPYC 7642 dedicated cpu |
AMD EPYC 7642 dedicated cpu |
AMD EPYC 7642 dedicated cpu |
| Memory | 1 GB | 4 GB | 8 GB | 32 GB | 4 GB | 8 GB | 16 GB |
| Price / month | $5 | $24 | $48 | $192 | $36 | $72 | $144 |
| Load generator | Dedicated 8 GB | Dedicated 8 GB | Dedicated 16 GB | Dedicated 64 GB | Dedicated 8 GB | Dedicated 16 GB | Dedicated 32 GB |
| … busy at most | 66 % | 98 % | 91 % | 85 % | 98 % | 90 % | 84 % |
How every number was taken : How the WebSocket benchmarks are made. The data : benchmark dataset (https://apimaker.dev/json/benchmark_dataset.json).