Elixir load test results

View Source

35,812 records per second at saturation, batch 10 x 256B (2.5KB of values per request, group commit off, segment preallocation 64MB), over 15s with 0 errors, scenario produce, peaking at 64 connections (server at 1.17 of 3 cores, generator at 0.33 of 1 cores).

Measured with mix malachi.loadtest, the multi-core BEAM generator. Every number here comes from the recorded run described under Reproduce; none of it is maintained by hand. See Running the Elixir load test for the other ways to drive it.

Throughput

MeasureValue
Records per second35,812
Operations per second3,581
Data rate8.74 MB/s
Records537,180
Operations53,718
Peak connections64
Server CPU (cores)1.17 of 3
Generator CPU (cores)0.33 of 1
Duration15s
Errors0

Throughput by batch size

Each batch size ran over its own connection ladder, 1 repetition per point, with the points interleaved across batch sizes. Repeating the headline peak moved it -3.0% (35,812 then 34,748 records per second), so a difference between batch sizes smaller than that is noise. Compare batch sizes within this run rather than across runs: on a shared CI runner the published ceiling has moved by more than 30% between runs of unchanged code.

BatchValues per requestPeak records/sAt connectionsStatusLower bound because
102.5KB35,81264peakno
10025KB230,64716peakno
512128KB446,3628peakno
1,024256KB506,5398peakno
4,0961MB330,1384peakno

Latency

MeasureValue
P5017.11 ms
P9925.27 ms
P99.960.1 ms
P99.9960.1 ms

Backpressure

MeasureValue
Dropped connections0
Server-shed produces0
Quota-refused produces0
Reconnects0

Reproduce

MeasureValue
Commandmix malachi.loadtest --scenario=produce --connections=64 --duration=15 --warmup=3 --batch=10 --record-size=256 --keys=1000 --pipeline=1 --max=100 --window=100 --prepopulate=0 --topics=1 --topic=loadtest_1793753008319 --host=127.0.0.1 --port=4040 --connect-strategy=bounded --connect-concurrency=32 --user=admin --json
Run at2026-11-04T00:43:51.426572Z
Version0.22.6
Commit2b16e81 (2026-11-03T21:38:15-03:00)
CPUx86_64-pc-linux-gnu
Cores1
Schedulers1
OSlinux 7.0.0
Batch sizes10 100 512 1024 4096
Connection laddersbatch 10: 32 64 128 256 512; batch 100: 16 32 64 128 256; batch 512: 8 16 32 64 128; batch 1024: 8 16 32 64 128; batch 4096: 4 8 16 32 64
Repetitions per point1
Record size256B
Group commitoff
Segment preallocation64MB