Storage Benchmark Kit Version 0.6
This version 0.6 is a major release in terms of
- Inclusion of Apache Pulsar distributed streaming storage driver for performance bench-marking
- Publishing the SBK APIs
- Using SBK APIs , developer can add their storage device (driver or client) for performance bench-marking.
How to Use:
-
unzip (untar) the file sbk.tar
For example : tar -xvf sbk.tar -C ./ -
For performance bench-marking use this extracted binary file : "</SBK diectory/> /bin/sbk"
below is the help output:
<SBK diectory>$ ./bin/sbk -help
usage: sbk
-class <arg> Benchmark Driver Class,
Available Drivers [Kafka, Pravega, Pulsar]
-csv <arg> CSV file to record write/read latencies
-flush <arg> Each Writer calls flush after writing <arg> number of
of events(records); Not applicable, if both writers
and readers are specified
-help Help message
-readers <arg> Number of readers
-records <arg> Number of records(events) if 'time' not specified;
otherwise, Maximum records per second by writer(s)
and/or Number of records per reader
-size <arg> Size of each message (event or record)
-throughput <arg> if > 0 , throughput in MB/s
if 0 , writes 'events'
if -1, get the maximum throughput
-time <arg> Number of seconds this SBK runs (24hrs by default)
-version Version
-writers <arg> Number of writers
- Apache pulsar performance bench-marking
you can check the Apache pulsar bench-marking command line arguments with the -help output as follows
<SBK directory>/run/sbk/bin/sbk -class Pulsar -help
usage: sbk -class Pulsar
-ackQuorum <arg> AckQuorum (default: 1)
-admin <arg> Admin URI, required to create the partitioned
topic
-broker <arg> Broker URI
-class <arg> Benchmark Driver Class,
Available Drivers [Kafka, Pravega, Pulsar]
-cluster <arg> Cluster name (optional parameter)
-csv <arg> CSV file to record write/read latencies
-deduplication <arg> Enable or Disable Deduplication; by default
disabled
-ensembleSize <arg> EnsembleSize (default: 1)
-flush <arg> Each Writer calls flush after writing <arg> number
of of events(records); Not applicable, if both
writers and readers are specified
-help Help message
-partitions <arg> Number of partitions of the topic (default: 1)
-readers <arg> Number of readers
-records <arg> Number of records(events) if 'time' not specified;
otherwise, Maximum records per second by writer(s)
and/or Number of records per reader
-size <arg> Size of each message (event or record)
-threads <arg> io threads per Topic; by default (writers +
readers)
-throughput <arg> if > 0 , throughput in MB/s
if 0 , writes 'events'
if -1, get the maximum throughput
-time <arg> Number of seconds this SBK runs (24hrs by default)
-topic <arg> Topic name
-version Version
-writeQuorum <arg> WriteQuorum (default: 1)
-writers <arg> Number of writers
Apache Pulsar performance bench-marking examples
NOTE : Below example on executed with Apache pulsar standalone cluster
- Writers Bench-marking (Burst mode f)
./bin/sbk -class Pulsar -admin http://localhost:8080 -broker tcp://localhost:6650 -topic topic-km-1 -partitions 5 -writers 1 -size 100 -time 60
Writing 657454 records, 131464.5 records/sec, 12.54 MB/sec, 9.4 ms avg latency, 186.0 ms max latency
Writing 739374 records, 147815.7 records/sec, 14.10 MB/sec, 7.1 ms avg latency, 114.0 ms max latency
Writing 778979 records, 155764.6 records/sec, 14.85 MB/sec, 6.4 ms avg latency, 81.0 ms max latency
Writing 772386 records, 154446.3 records/sec, 14.73 MB/sec, 6.8 ms avg latency, 118.0 ms max latency
Writing 761702 records, 152309.9 records/sec, 14.53 MB/sec, 6.9 ms avg latency, 118.0 ms max latency
Writing 701513 records, 140274.5 records/sec, 13.38 MB/sec, 9.9 ms avg latency, 410.0 ms max latency
Writing 775071 records, 154983.2 records/sec, 14.78 MB/sec, 6.7 ms avg latency, 116.0 ms max latency
Writing 792580 records, 158484.3 records/sec, 15.11 MB/sec, 6.3 ms avg latency, 83.0 ms max latency
Writing 772949 records, 154558.9 records/sec, 14.74 MB/sec, 6.7 ms avg latency, 83.0 ms max latency
Writing 778950 records, 155758.8 records/sec, 14.85 MB/sec, 6.5 ms avg latency, 97.0 ms max latency
Writing (Total) 8133358 records, 148410.8 records/sec, 14.15 MB/sec, 7.1 ms avg latency, 410.0 ms max latency
Writing Latencies 5 ms 50th, 6 ms 75th, 11 ms 95th, 71 ms 99th, 114 ms 99.9th, 402 ms 99.99th.
- Readers Bench marking
./bin/sbk -class Pulsar -admin http://localhost:8080 -broker tcp://localhost:6650 -topic topic-km-1 -partitions 5 -readers 1 -size 100 -time 60
Reading 113725 records, 22740.5 records/sec, 2.17 MB/sec, 0.0 ms avg latency, 186.0 ms max latency
Reading 132604 records, 26515.5 records/sec, 2.53 MB/sec, 0.0 ms avg latency, 7.0 ms max latency
Reading 135958 records, 27186.2 records/sec, 2.59 MB/sec, 0.0 ms avg latency, 10.0 ms max latency
Reading 137325 records, 27459.5 records/sec, 2.62 MB/sec, 0.0 ms avg latency, 1.0 ms max latency
Reading 134015 records, 26797.6 records/sec, 2.56 MB/sec, 0.0 ms avg latency, 3.0 ms max latency
Reading 135575 records, 27109.6 records/sec, 2.59 MB/sec, 0.0 ms avg latency, 3.0 ms max latency
Reading 136086 records, 27211.8 records/sec, 2.60 MB/sec, 0.0 ms avg latency, 7.0 ms max latency
Reading 137191 records, 27432.7 records/sec, 2.62 MB/sec, 0.0 ms avg latency, 9.0 ms max latency
Reading 137605 records, 27515.5 records/sec, 2.62 MB/sec, 0.0 ms avg latency, 1.0 ms max latency
Reading 137094 records, 27413.3 records/sec, 2.61 MB/sec, 0.0 ms avg latency, 6.0 ms max latency
Reading 137122 records, 27418.9 records/sec, 2.61 MB/sec, 0.0 ms avg latency, 15.0 ms max latency
Reading (Total) 1509579 records, 26286.0 records/sec, 2.51 MB/sec, 0.0 ms avg latency, 186.0 ms max latency
Reading Latencies 0 ms 50th, 0 ms 75th, 0 ms 95th, 1 ms 99th, 1 ms 99.9th, 1 ms 99.99th.