Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

LevelStage
computeexecuted by the transactor (in-memory)
writewritten to the WAL page cache (buffered, pre-fsync)
commitfdatasync’d to disk — durable
snapshotapplied 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                  ║
  ╚══════════════════════════════════════════════╝