Skip to main content

Benchmark

Write

Benchmark on Append operations.

Platform

i4i.2xlarge

Approach

  1. Launch the Placement Driver and a Range Server.
  2. Use the SDK to send Append requests to the Range Server, with a record batch size of 64 MB (65536 Bytes) per request, and randomly send each request to 1, 100, or 2000 streams.
  3. Adjust the number of concurrently running clients and the concurrency level of each client to achieve write rates of 500 MB/s or 1 GB/s on the Range Server. Run the test until the Range Server's resource utilization stabilizes and continue to run for some time.
  4. Record the CPU and memory usage of the Range Server, the SDK request latency, and the write latency on the Range Server side during the process.

Result

Elastic Stream

Batch size (KB)Throughput (MB/s)StreamCPU UsageMemory Usage (MB)Average* (ms)P95* (ms)P99* (ms)P99.9* (ms)Average** (us)P95** (us)P99** (us)P99.9** (us)
645001185%10600.8741.0022.0757.3811892963991803
64500100180%10620.8771.0061.9767.1521882973941694
645002000182%10690.8791.0111.9277.1761912993991781
6410001275%10551.3801.7984.0517.5373275348643870
641000100286%10991.3221.6753.9497.7993645929774345
6410002000282%10651.3161.6693.6546.69335958910193888

*: E2E Latency

**: Server Side Latency

Kafka

Batch size (KB)Throughput (MB/s)PartitionCPU UsageAverage* (ms)P95* (ms)P99* (ms)P99.9* (ms)
643841115%4.61151937
6431010084%2.41112778
64250200073%1.6321653

*: E2E Latency

Note that for comparison, Kafka is tested with only one single broker. In that case, Kafka can not offer enough throughput with P99 latency as low as about 20 ms. Threrefore, more brokers are needed to achieve the same throughput.

Compare

WorkloadStream / PartitionTarget P99 LatencyElastic Stream
Nodes
Elastic Stream
Latency
Kafka
Nodes
Kafka
Latency
500 MB/s1< 20 ms1 (is4gen.2xlarge)2.075 ms2 (is4gen.2xlarge)19 ms
500 MB/s100< 20 ms1 (is4gen.2xlarge)1.976 ms2 (is4gen.2xlarge)27 ms
500 MB/s2000< 20 ms1 (is4gen.2xlarge)1.927 ms2 (is4gen.2xlarge)16 ms
1000 MB/s1< 20 ms1 (is4gen.4xlarge)4.051 ms3 (is4gen.4xlarge)19 ms
1000 MB/s100< 20 ms1 (is4gen.4xlarge)3.949 ms3 (is4gen.4xlarge)27 ms
1000 MB/s2000< 20 ms1 (is4gen.4xlarge)3.654 ms4 (is4gen.4xlarge)16 ms