Load Test Report
Generated by the Load Test workflow on a CCX33 server (Hetzner, 8 dedicated vCPU), 1,000,000 accounts, deposit operations, release build with WAL persistence enabled.
- Throughput — sustained tx/s with submit-side latency (
load). - Latency under load — end-to-end latency to each pipeline stage (
load_latency --wait-level). - WASM deposit throughput — the same deposit driven through a registered WASM function (
load_wasm).
Throughput
backlog seq>cmp/cmp>cmt/cmt>snp = txs waiting before transactor / WAL / snapshot
+-----+--------+------------+------------+----------+----------+------------+--------------------------+
| # | time | TPS | TPC | P50 | P99 | in-flight | seq>cmp/cmp>cmt/cmt>snp |
+-----+--------+------------+------------+----------+----------+------------+--------------------------+
| 1 | 1s | 5463224 | 5465533 | 50ns | 180ns | 34468 | 1.4k/33.1k/4.6k |
| 2 | 2s | 5814949 | 11283071 | 50ns | 170ns | 26930 | 1.2k/25.7k/580 |
| 3 | 3s | 5772757 | 17057020 | 50ns | 80ns | 22981 | 2.0k/21.0k/13.6k |
| 4 | 4s | 5972568 | 23034601 | 50ns | 130ns | 35400 | 1.6k/33.8k/0 |
| 5 | 5s | 5950633 | 28986992 | 50ns | 110ns | 23009 | 1.4k/21.6k/21.0k |
| 6 | 6s | 5948182 | 34943844 | 50ns | 90ns | 26157 | 1.7k/24.5k/7.5k |
| 7 | 7s | 5855536 | 40809676 | 50ns | 90ns | 20325 | 1.4k/19.0k/12.4k |
| 8 | 8s | 5662418 | 46474347 | 50ns | 150ns | 25654 | 1.5k/24.2k/9.6k |
| 9 | 9s | 5751787 | 52232937 | 50ns | 120ns | 27064 | 1.5k/25.6k/4.0k |
| 10 | 10s | 5678696 | 57918017 | 50ns | 80ns | 21984 | 1.3k/20.6k/19.0k |
| 11 | 11s | 5865205 | 63785450 | 50ns | 120ns | 14551 | 2.0k/12.5k/20.0k |
| 12 | 12s | 5616781 | 69411862 | 50ns | 90ns | 18139 | 1.0k/17.1k/5.9k |
| 13 | 13s | 5543264 | 74961838 | 60ns | 110ns | 28163 | 1.7k/26.4k/0 |
| 14 | 14s | 5636401 | 80604530 | 60ns | 90ns | 25471 | 1.5k/23.9k/2.8k |
| 15 | 15s | 5994236 | 86599972 | 50ns | 90ns | 30029 | 1.9k/28.1k/16.3k |
| 16 | 16s | 5625982 | 92234100 | 50ns | 90ns | 25901 | 2.0k/23.9k/4.7k |
| 17 | 17s | 5760654 | 97998172 | 50ns | 90ns | 31829 | 1.7k/30.1k/0 |
| 18 | 18s | 5319210 | 103327933 | 50ns | 80ns | 22068 | 1.0k/21.0k/0 |
| 19 | 19s | 5224668 | 108562153 | 50ns | 80ns | 27848 | 1.2k/26.6k/2.6k |
| 20 | 20s | 4942713 | 113513667 | 50ns | 100ns | 26334 | 1.2k/25.1k/0 |
| 21 | 21s | 5283754 | 118800235 | 50ns | 80ns | 29766 | 1.2k/28.5k/0 |
| 22 | 22s | 5400792 | 124204777 | 50ns | 80ns | 25224 | 1.7k/23.6k/5.1k |
| 23 | 23s | 5501954 | 129713837 | 50ns | 80ns | 36164 | 1.3k/34.9k/4.4k |
| 24 | 24s | 5663565 | 135380518 | 60ns | 90ns | 29483 | 1.6k/27.8k/10.3k |
| 25 | 25s | 5887831 | 141276169 | 50ns | 90ns | 23832 | 1.6k/22.2k/21.2k |
| 26 | 26s | 5834397 | 147116469 | 50ns | 100ns | 13532 | 2.0k/11.6k/11.5k |
| 27 | 27s | 5513843 | 152633907 | 50ns | 80ns | 36094 | 1.1k/35.0k/84 |
| 28 | 28s | 6061387 | 158700409 | 60ns | 90ns | 29592 | 1.1k/28.5k/7.1k |
| 29 | 29s | 6047687 | 164757515 | 50ns | 90ns | 22486 | 1.3k/21.2k/19.3k |
| 30 | 30s | 5742092 | 170506496 | 50ns | 90ns | 23505 | 1.5k/22.0k/6.2k |
| 31 | 31s | 5758640 | 176273012 | 50ns | 110ns | 26989 | 1.3k/25.7k/14.5k |
| 32 | 32s | 5814866 | 182093153 | 50ns | 80ns | 36848 | 1.6k/35.2k/2.8k |
| 33 | 33s | 5837653 | 187931634 | 50ns | 100ns | 28367 | 2.0k/26.4k/12.4k |
| 34 | 34s | 5520128 | 193460329 | 50ns | 120ns | 19672 | 1.6k/18.0k/14.4k |
| 35 | 35s | 5848399 | 199313599 | 50ns | 80ns | 36402 | 1.0k/35.4k/11.8k |
| 36 | 36s | 5677018 | 205001043 | 50ns | 80ns | 18958 | 1.1k/17.8k/0 |
| 37 | 37s | 5546804 | 210552615 | 50ns | 80ns | 17386 | 1.1k/16.3k/7.7k |
| 38 | 38s | 5598484 | 216153991 | 50ns | 140ns | 36010 | 1.4k/34.7k/4.6k |
| 39 | 39s | 5896890 | 222055281 | 50ns | 90ns | 34720 | 1.1k/33.7k/9.7k |
| 40 | 40s | 5822545 | 227882729 | 50ns | 120ns | 47272 | 1.2k/46.1k/0 |
| 41 | 41s | 5826042 | 233709677 | 50ns | 80ns | 30324 | 2.0k/28.3k/9.5k |
| 42 | 42s | 6008616 | 239718376 | 50ns | 80ns | 21625 | 1.4k/20.2k/14.8k |
| 43 | 43s | 5700633 | 245427490 | 60ns | 90ns | 22511 | 1.6k/20.9k/9.0k |
| 44 | 44s | 5535999 | 250966840 | 50ns | 100ns | 23161 | 1.7k/21.4k/4.5k |
| 45 | 45s | 5389133 | 256363365 | 60ns | 90ns | 46636 | 1.7k/44.9k/3.9k |
| 46 | 46s | 5766583 | 262130911 | 60ns | 90ns | 29090 | 1.9k/27.1k/0 |
| 47 | 47s | 5406387 | 267545967 | 60ns | 90ns | 34034 | 1.9k/32.1k/10.9k |
| 48 | 48s | 5951848 | 273508073 | 50ns | 110ns | 21928 | 1.4k/20.5k/6.8k |
| 49 | 49s | 5627332 | 279144169 | 60ns | 90ns | 55832 | 1.6k/54.3k/0 |
| 50 | 50s | 5726611 | 284878573 | 50ns | 100ns | 41428 | 1.5k/39.9k/0 |
| 51 | 51s | 5752839 | 290635800 | 50ns | 100ns | 24201 | 2.0k/22.2k/6.4k |
| 52 | 52s | 5799717 | 296438901 | 50ns | 90ns | 21100 | 2.0k/19.1k/17.7k |
| 53 | 53s | 5697888 | 302142026 | 50ns | 90ns | 47975 | 1.7k/46.2k/39.9k |
| 54 | 54s | 5897563 | 308041583 | 50ns | 90ns | 28418 | 1.9k/26.5k/28.7k |
| 55 | 55s | 5929769 | 313975938 | 50ns | 90ns | 24063 | 1.9k/22.1k/18.7k |
| 56 | 56s | 5897507 | 319877724 | 50ns | 120ns | 42277 | 1.2k/41.1k/169 |
| 57 | 57s | 5934438 | 325820044 | 60ns | 100ns | 29957 | 1.2k/28.8k/10.7k |
| 58 | 58s | 5446729 | 331271405 | 60ns | 80ns | 28596 | 1.5k/27.1k/6.6k |
| 59 | 59s | 5581038 | 336858745 | 60ns | 90ns | 31256 | 1.4k/29.8k/1.7k |
+-----+--------+------------+------------+----------+----------+------------+--------------------------+
╔══════════════════════════════════════════════╗
║ LOAD TEST SUMMARY ║
╠══════════════════════════════════════════════╣
║ Duration : 60.00s ║
║ Submitted : 341880001 ║
║ Avg TPS : 5697963 ║
║ Mode : async ║
╠══════════════════════════════════════════════╣
║ P50 Latency : 50ns ║
║ P99 Latency : 90ns ║
║ P999 Latency : 220ns ║
║ Min Latency : 30ns ║
║ Max Latency : 11.2µs ║
║ Samples : 34189 ║
╚══════════════════════════════════════════════╝
Latency Under Load
Each probe submits one deposit and times it until the selected pipeline index reaches it, repeated 1000x per scenario across five load levels. --wait-level picks the stage:
| Level | Stage |
|---|---|
| compute | executed by the transactor (in-memory) |
| write | written to the WAL page cache (buffered, pre-fsync) |
| commit | fdatasync’d to disk — durable |
| snapshot | applied to the snapshot/indexer — readable |
wait-level: compute
latency under load | accounts=1000000 samples=1000 probe=deposit→compute (executed)
+---------------+--------+--------------+----------+----------+----------+----------+
| Scenario | Target | Achieved TPS | P50 | P99 | P999 | Max |
+---------------+--------+--------------+----------+----------+----------+----------+
| No Load | - | 1.03M | 820ns | 1.6µs | 23.8µs | 32.0µs |
| Sustain 10k | 10.0k | 1.54M | 570ns | 790ns | 5.2µs | 6.9µs |
| Sustain 100k | 100.0k | 1.65M | 550ns | 930ns | 9.1µs | 13.0µs |
| Sustain 1M | 1.00M | 2.37M | 620ns | 1.0µs | 2.5µs | 16.5µs |
| Full (Spike) | max | 5.67M | 292.4µs | 788.0µs | 967.2µs | 1.2ms |
+---------------+--------+--------------+----------+----------+----------+----------+
[2026-06-08 07:08:36.139] [info] Cleaning up temporary storage...
wait-level: write
latency under load | accounts=1000000 samples=1000 probe=deposit→write (page cache, pre-fsync)
+---------------+--------+--------------+----------+----------+----------+----------+
| Scenario | Target | Achieved TPS | P50 | P99 | P999 | Max |
+---------------+--------+--------------+----------+----------+----------+----------+
| No Load | - | 151.1k | 3.7µs | 31.9µs | 84.1µs | 351.5µs |
| Sustain 10k | 10.0k | 240.2k | 2.8µs | 16.8µs | 80.2µs | 145.8µs |
| Sustain 100k | 100.0k | 432.0k | 2.8µs | 9.0µs | 26.4µs | 31.2µs |
| Sustain 1M | 1.00M | 1.29M | 2.4µs | 12.3µs | 79.9µs | 131.1µs |
| Full (Spike) | max | 4.43M | 403.2µs | 776.7µs | 1.3ms | 3.2ms |
+---------------+--------+--------------+----------+----------+----------+----------+
[2026-06-08 07:08:39.757] [info] Cleaning up temporary storage...
wait-level: commit
latency under load | accounts=1000000 samples=1000 probe=deposit→commit (durable, fsync)
+---------------+--------+--------------+----------+----------+----------+----------+
| Scenario | Target | Achieved TPS | P50 | P99 | P999 | Max |
+---------------+--------+--------------+----------+----------+----------+----------+
| No Load | - | 1.5k | 597.0µs | 1.6ms | 3.2ms | 4.4ms |
| Sustain 10k | 10.0k | 10.8k | 1.3ms | 2.1ms | 3.0ms | 5.1ms |
| Sustain 100k | 100.0k | 100.7k | 1.4ms | 2.2ms | 2.6ms | 2.7ms |
| Sustain 1M | 1.00M | 1.00M | 2.5ms | 4.0ms | 5.2ms | 5.4ms |
| Full (Spike) | max | 5.64M | 5.8ms | 9.4ms | 13.4ms | 13.9ms |
+---------------+--------+--------------+----------+----------+----------+----------+
wait-level: snapshot
latency under load | accounts=1000000 samples=1000 probe=deposit→snapshot (readable)
+---------------+--------+--------------+----------+----------+----------+----------+
| Scenario | Target | Achieved TPS | P50 | P99 | P999 | Max |
+---------------+--------+--------------+----------+----------+----------+----------+
| No Load | - | 1.5k | 599.0µs | 1.2ms | 1.3ms | 1.4ms |
| Sustain 10k | 10.0k | 10.8k | 1.2ms | 1.9ms | 3.2ms | 5.2ms |
| Sustain 100k | 100.0k | 100.8k | 1.3ms | 1.6ms | 2.9ms | 3.5ms |
| Sustain 1M | 1.00M | 1.00M | 2.5ms | 4.2ms | 6.9ms | 7.1ms |
| Full (Spike) | max | 4.44M | 4.5ms | 7.6ms | 11.3ms | 15.8ms |
+---------------+--------+--------------+----------+----------+----------+----------+
[2026-06-08 07:09:09.274] [info] Cleaning up temporary storage...
WASM Deposit Throughput
The deposit executed as a registered WASM Operation::Function instead of the built-in op; the gap vs Throughput above is the WASM invocation cost.
wasm deposit load | accounts=1000000 fn=wasm_deposit mode=async
backlog seq>cmp/cmp>cmt/cmt>snp = txs waiting before transactor / WAL / snapshot
+-----+--------+------------+------------+----------+----------+------------+--------------------------+
| # | time | TPS | TPC | P50 | P99 | in-flight | seq>cmp/cmp>cmt/cmt>snp |
+-----+--------+------------+------------+----------+----------+------------+--------------------------+
| 1 | 1s | 3058061 | 3065345 | 60ns | 228.7µs | 4656 | 1.1k/3.6k/1.5k |
| 2 | 2s | 3127276 | 6202275 | 60ns | 262.9µs | 7726 | 1.5k/6.2k/858 |
| 3 | 3s | 3070127 | 9280377 | 60ns | 268.8µs | 9624 | 1.3k/8.3k/2.9k |
| 4 | 4s | 3190317 | 12473951 | 60ns | 258.7µs | 6050 | 1.5k/4.5k/4.0k |
| 5 | 5s | 3170902 | 15649991 | 60ns | 257.5µs | 10010 | 2.0k/8.0k/0 |
| 6 | 6s | 3094147 | 18749333 | 60ns | 264.2µs | 10668 | 1.3k/9.3k/0 |
| 7 | 7s | 3243125 | 21999809 | 60ns | 240.9µs | 10192 | 1.2k/9.0k/0 |
| 8 | 8s | 3167886 | 25170129 | 60ns | 248.3µs | 9872 | 1.9k/8.0k/1.2k |
| 9 | 9s | 3193883 | 28370812 | 60ns | 262.0µs | 9189 | 1.9k/7.3k/6.0k |
| 10 | 10s | 3110298 | 31491073 | 60ns | 261.2µs | 8928 | 1.8k/7.2k/2.7k |
| 11 | 11s | 3066702 | 34561596 | 60ns | 265.2µs | 8405 | 1.8k/6.6k/0 |
| 12 | 12s | 3015670 | 37578787 | 60ns | 266.2µs | 21214 | 1.8k/19.4k/0 |
| 13 | 13s | 3189255 | 40772304 | 60ns | 256.3µs | 7697 | 1.2k/6.4k/6.3k |
| 14 | 14s | 3082180 | 43857255 | 60ns | 250.9µs | 12746 | 1.8k/10.9k/0 |
| 15 | 15s | 3005812 | 46866270 | 50ns | 280.3µs | 13731 | 1.3k/12.5k/0 |
| 16 | 16s | 3011165 | 49882080 | 70ns | 259.2µs | 7921 | 1.7k/6.2k/2.7k |
| 17 | 17s | 2950472 | 52839962 | 60ns | 279.3µs | 10039 | 1.4k/8.7k/0 |
| 18 | 18s | 3042705 | 55887956 | 60ns | 257.0µs | 12045 | 1.9k/10.2k/0 |
| 19 | 19s | 3156148 | 59049365 | 60ns | 258.6µs | 10636 | 1.8k/8.8k/0 |
| 20 | 20s | 3075858 | 62128626 | 60ns | 268.5µs | 11375 | 1.6k/9.7k/0 |
| 21 | 21s | 3174224 | 65308673 | 60ns | 255.9µs | 11328 | 1.1k/10.2k/3.1k |
| 22 | 22s | 3116242 | 68433293 | 60ns | 256.0µs | 6708 | 2.0k/4.7k/4.7k |
| 23 | 23s | 3046152 | 71487411 | 60ns | 280.3µs | 12590 | 1.2k/11.3k/0 |
| 24 | 24s | 2885426 | 74377159 | 60ns | 314.1µs | 12842 | 1.5k/11.3k/0 |
| 25 | 25s | 2899715 | 77279720 | 60ns | 282.9µs | 10281 | 1.6k/8.7k/0 |
| 26 | 26s | 3051189 | 80331774 | 60ns | 269.3µs | 8227 | 1.1k/7.2k/0 |
| 27 | 27s | 3144253 | 83481194 | 60ns | 253.8µs | 8807 | 1.2k/7.6k/2.8k |
| 28 | 28s | 3265458 | 86750010 | 60ns | 241.4µs | 9991 | 1.6k/8.4k/3.3k |
| 29 | 29s | 3150766 | 89908301 | 60ns | 246.0µs | 11700 | 1.5k/10.2k/0 |
| 30 | 30s | 3038921 | 92949790 | 60ns | 253.2µs | 10211 | 1.3k/8.9k/0 |
| 31 | 31s | 3011219 | 95968421 | 60ns | 270.3µs | 11580 | 1.5k/10.1k/0 |
| 32 | 32s | 3024085 | 98998529 | 60ns | 284.4µs | 11472 | 1.5k/10.0k/0 |
| 33 | 33s | 3019366 | 102022125 | 60ns | 209.0µs | 7876 | 1.7k/6.2k/5.1k |
| 34 | 34s | 2997864 | 105021962 | 60ns | 260.2µs | 8039 | 1.4k/6.6k/0 |
| 35 | 35s | 3049249 | 108076331 | 60ns | 264.4µs | 13670 | 1.7k/12.0k/0 |
| 36 | 36s | 3204308 | 111282386 | 60ns | 253.7µs | 7615 | 1.7k/5.9k/2.6k |
| 37 | 37s | 3204331 | 114495315 | 60ns | 252.2µs | 14686 | 1.2k/13.5k/0 |
| 38 | 38s | 3080555 | 117581358 | 60ns | 254.8µs | 8643 | 2.0k/6.6k/0 |
| 39 | 39s | 2963014 | 120549658 | 60ns | 266.8µs | 10343 | 1.4k/8.9k/0 |
| 40 | 40s | 3124954 | 123682305 | 60ns | 256.5µs | 7696 | 1.0k/6.7k/6.0k |
| 41 | 41s | 3076104 | 126759734 | 60ns | 264.4µs | 10267 | 1.9k/8.4k/0 |
| 42 | 42s | 3170380 | 129938671 | 60ns | 252.7µs | 11330 | 1.3k/10.0k/0 |
| 43 | 43s | 3169783 | 133109761 | 60ns | 269.6µs | 10240 | 1.0k/9.2k/2.0k |
| 44 | 44s | 3146964 | 136260669 | 60ns | 266.5µs | 9332 | 1.2k/8.1k/7.7k |
| 45 | 45s | 3201220 | 139469031 | 60ns | 257.8µs | 10970 | 2.0k/9.0k/6.6k |
| 46 | 46s | 3040801 | 142510399 | 60ns | 258.0µs | 9602 | 1.7k/7.9k/3.5k |
| 47 | 47s | 3105154 | 145621139 | 60ns | 256.4µs | 8862 | 1.8k/7.0k/3.6k |
| 48 | 48s | 3050428 | 148672513 | 60ns | 252.9µs | 7488 | 1.3k/6.1k/2.8k |
| 49 | 49s | 3115016 | 151789915 | 60ns | 266.0µs | 10086 | 1.2k/8.9k/0 |
| 50 | 50s | 3060645 | 154852671 | 60ns | 270.8µs | 7330 | 1.5k/5.8k/5.4k |
| 51 | 51s | 3117129 | 157974052 | 60ns | 262.7µs | 15949 | 1.1k/14.8k/0 |
| 52 | 52s | 3028376 | 161002713 | 60ns | 256.0µs | 7288 | 1.4k/5.9k/0 |
| 53 | 53s | 2965837 | 163972436 | 60ns | 284.2µs | 7565 | 1.8k/5.8k/1.4k |
| 54 | 54s | 3005336 | 166980651 | 70ns | 273.7µs | 9350 | 1.2k/8.2k/0 |
| 55 | 55s | 3044718 | 170030443 | 60ns | 258.3µs | 9558 | 1.7k/7.8k/0 |
| 56 | 56s | 3050977 | 173081922 | 60ns | 267.0µs | 8079 | 1.2k/6.8k/0 |
| 57 | 57s | 3055107 | 176137507 | 60ns | 270.3µs | 12494 | 1.5k/11.0k/0 |
| 58 | 58s | 3069220 | 179208800 | 60ns | 264.7µs | 11201 | 1.6k/9.6k/330 |
| 59 | 59s | 3158371 | 182367233 | 60ns | 260.2µs | 12768 | 1.5k/11.3k/0 |
+-----+--------+------------+------------+----------+----------+------------+--------------------------+
╔══════════════════════════════════════════════╗
║ WASM DEPOSIT LOAD SUMMARY ║
╠══════════════════════════════════════════════╣
║ Duration : 60.00s ║
║ Submitted : 185360001 ║
║ Avg TPS : 3089220 ║
║ Mode : async ║
╠══════════════════════════════════════════════╣
║ P50 Latency : 60ns ║
║ P99 Latency : 263.2µs ║
║ P999 Latency : 310.0µs ║
║ Min Latency : 30ns ║
║ Max Latency : 357.6µs ║
║ Samples : 18537 ║
╚══════════════════════════════════════════════╝