Streaming Throughput
September 2026
This article examines the "durable" streaming performance of TimeBase, specifically how overall throughput behaves as number of producer and consumer pairs grow.
Summary
In a 2026 AWS benchmark, a single TimeBase instance sustained 26.5 million market-data messages per second.
The test was performed on a 64-vCPU m7i.16xlarge EC2 instance using standard gp3 EBS storage.
Throughput scaled with additional concurrent data flows until reaching approximately 26 million messages per second, where the benchmark became limited by storage I/O rather than TimeBase processing capacity.
Environment
- CPU: Intel(R) Xeon(R) Platinum 8488C, 64 vCPUs (m7i.16xlarge)
- RAM: 256G
- Disk: GP3 EBS (3000 IOPS), ~125MB/s write throughput
- Network: 25 Gigabit
- OS: Amazon Linux 2023
- OpenJDK 17.0.16
- TimeBase 5.6.211:
- TimeBase.storage.writers=16
- TimeBase.network.socket.receiveBufferSize=4194304
- TimeBase.ramCacheSize=10737 418 240 (10G)
- Storage format: 5.0
- The benchmark implementation is available in:
deltix.qsrv.hf.tickdb.tool.perf.thr.Benchmark_LiveThroughput
The following diagram illustrate this test setup:
Server:
java -Xms60G -Xmx60G -XX:+AlwaysPreTouch -DTimeBase.storage.writers=16 -DTimeBase.network.socket.bufferSize=4194304 $ADD_OPENS -cp "/home/ec2-user/timebase-home/lib/*" deltix.qsrv.comm.cat.TBServerCmd -tb -home /home/ec2-user/QSHome -port 8011
Client:
java -DTimeBase.network.socket.bufferSize=4194304 $ADD_OPENS -cp "/home/ec2-user/jars-bench/*" deltix.qsrv.hf.tickdb.tool.perf.thr.Benchmark_LiveThroughput -url dxtick://172.31.17.217:8011 -duration 60 -cooldown 60 -channelType streams -producers 16 -consumers 1 -stream thr -symbols 10
Data
In this test we were streaming trades (average payload size encoded in 36 bytes).
Results
-
The results show that total throughput scales well as the number of producer-consumer pairs increases, but the gains taper off after about 16 pairs, where throughput begins to saturate around 26 million messages per second, peaking at 26.5M msg/s with 24 pairs.
-
At the same time, the per-consumer throughput declines steadily, dropping from ~2.72M msg/s for a single pair to 0.78M msg/s with 32 pairs.
-
Plato about 26M msg/s reached because of SSD I/O limits.
Appendix: Raw results
Producer/Consumer Pairs Performance Raw Results:
| P/C Pairs | Total msg/s (Millions) | Per Producer msg/s (Millions) |
|---|---|---|
| 1 | 2.7 | 2.72 |
| 2 | 5.4 | 2.70 |
| 3 | 7.5 | 2.50 |
| 4 | 10.3 | 2.56 |
| 5 | 12.7 | 2.54 |
| 6 | 15.0 | 2.50 |
| 8 | 18.1 | 2.26 |
| 12 | 21.5 | 1.79 |
| 16 | 25.5 | 1.59 |
| 20 | 26.2 | 1.31 |
| 24 | 26.5 | 1.10 |
| 32 | 25.0 | 0.78 |