Storage Benchmark Kit
The CouchDB driver for SBK supports single/multiple Writer , single/multiple reader performance benchmarking.
To make simple demo/test, you can run the local CouchDB server docker image as follows:
docker run -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=admin -d couchdb
make sure you have redirected the port 5984 from docker to local system
Now, you can run the CouchDB writer benchmarking as follows.
kmg@kmg:~/kmg-linux/SBK$ ./build/install/sbk/bin/sbk -class couchdb -size 100 -writers 1 -seconds 60
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/mnt/d/kmg-linux/SBK/build/install/sbk/lib/slf4j-simple-1.7.14.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/mnt/d/kmg-linux/SBK/build/install/sbk/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/mnt/d/kmg-linux/SBK/build/install/sbk/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
2020-07-30 13:27:36 INFO
_____ ____ _ __
/ ____| | _ \ | | / /
| (___ | |_) | | |/ /
\___ \ | _ < | <
____) | | |_) | | |\ \
|_____/ |____/ |_| \_\
2020-07-30 13:27:36 INFO SBK version: 0.81
2020-07-30 13:27:36 INFO Argument List: [-class, couchdb, -size, 100, -writers, 1, -seconds, 60]
2020-07-30 13:27:37 INFO Reflections took 114 ms to scan 24 urls, producing 31 keys and 126 values
2020-07-30 13:27:38 INFO The data base :demo not found
Writing 267 records, 53.4 records/sec, 0.01 MB/sec, 18.6 ms avg latency, 104 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 14 ms 10th, 16 ms 25th, 17 ms 50th, 19 ms 75th, 26 ms 95th, 68 ms 99th, 104 ms 99.9th, 104 ms 99.99th.
Writing 280 records, 55.9 records/sec, 0.01 MB/sec, 17.9 ms avg latency, 40 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 14 ms 10th, 16 ms 25th, 17 ms 50th, 19 ms 75th, 27 ms 95th, 36 ms 99th, 40 ms 99.9th, 40 ms 99.99th.
Writing 237 records, 47.3 records/sec, 0.00 MB/sec, 21.1 ms avg latency, 123 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 15 ms 10th, 17 ms 25th, 19 ms 50th, 23 ms 75th, 33 ms 95th, 61 ms 99th, 123 ms 99.9th, 123 ms 99.99th.
Writing 222 records, 44.2 records/sec, 0.00 MB/sec, 22.6 ms avg latency, 83 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 15 ms 10th, 17 ms 25th, 20 ms 50th, 25 ms 75th, 42 ms 95th, 64 ms 99th, 83 ms 99.9th, 83 ms 99.99th.
Writing 187 records, 37.0 records/sec, 0.00 MB/sec, 27.0 ms avg latency, 156 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 16 ms 10th, 19 ms 25th, 24 ms 50th, 30 ms 75th, 49 ms 95th, 112 ms 99th, 156 ms 99.9th, 156 ms 99.99th.
Writing 211 records, 42.1 records/sec, 0.00 MB/sec, 23.7 ms avg latency, 186 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 14 ms 10th, 16 ms 25th, 19 ms 50th, 26 ms 75th, 45 ms 95th, 108 ms 99th, 186 ms 99.9th, 186 ms 99.99th.
Writing 276 records, 55.1 records/sec, 0.01 MB/sec, 18.1 ms avg latency, 38 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 13 ms 10th, 15 ms 25th, 17 ms 50th, 20 ms 75th, 28 ms 95th, 36 ms 99th, 38 ms 99.9th, 38 ms 99.99th.
Writing 246 records, 49.1 records/sec, 0.00 MB/sec, 20.3 ms avg latency, 75 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 14 ms 10th, 16 ms 25th, 18 ms 50th, 21 ms 75th, 37 ms 95th, 57 ms 99th, 75 ms 99.9th, 75 ms 99.99th.
Writing 315 records, 62.9 records/sec, 0.01 MB/sec, 15.9 ms avg latency, 36 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 13 ms 10th, 14 ms 25th, 15 ms 50th, 18 ms 75th, 22 ms 95th, 23 ms 99th, 36 ms 99.9th, 36 ms 99.99th.
Writing 271 records, 54.1 records/sec, 0.01 MB/sec, 18.5 ms avg latency, 66 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 14 ms 10th, 15 ms 25th, 17 ms 50th, 19 ms 75th, 32 ms 95th, 49 ms 99th, 66 ms 99.9th, 66 ms 99.99th.
Writing 264 records, 52.7 records/sec, 0.01 MB/sec, 19.0 ms avg latency, 91 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 14 ms 10th, 15 ms 25th, 17 ms 50th, 20 ms 75th, 31 ms 95th, 46 ms 99th, 91 ms 99.9th, 91 ms 99.99th.
Writing(Total) 2900 records, 47.5 records/sec, 0.00 MB/sec, 20.2 ms avg latency, 186 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 14 ms 10th, 15 ms 25th, 17 ms 50th, 21 ms 75th, 35 ms 95th, 63 ms 99th, 127 ms 99.9th, 186 ms 99.99th.
The sample output for the CouchDB read is as follows:
kmg@kmg:~/kmg-linux/SBK$ ./build/install/sbk/bin/sbk -class couchdb -size 100 -readers 1 -seconds 60
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/mnt/d/kmg-linux/SBK/build/install/sbk/lib/slf4j-simple-1.7.14.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/mnt/d/kmg-linux/SBK/build/install/sbk/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/mnt/d/kmg-linux/SBK/build/install/sbk/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
2020-07-30 13:29:37 INFO
_____ ____ _ __
/ ____| | _ \ | | / /
| (___ | |_) | | |/ /
\___ \ | _ < | <
____) | | |_) | | |\ \
|_____/ |____/ |_| \_\
2020-07-30 13:29:37 INFO SBK version: 0.81
2020-07-30 13:29:37 INFO Argument List: [-class, couchdb, -size, 100, -readers, 1, -seconds, 60]
2020-07-30 13:29:37 INFO Reflections took 115 ms to scan 24 urls, producing 31 keys and 126 values
Reading 623 records, 124.6 records/sec, 0.05 MB/sec, 7.9 ms avg latency, 48 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 6 ms 10th, 6 ms 25th, 7 ms 50th, 8 ms 75th, 13 ms 95th, 25 ms 99th, 48 ms 99.9th, 48 ms 99.99th.
Reading 697 records, 139.2 records/sec, 0.05 MB/sec, 7.2 ms avg latency, 25 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 5 ms 10th, 6 ms 25th, 6 ms 50th, 7 ms 75th, 13 ms 95th, 22 ms 99th, 25 ms 99.9th, 25 ms 99.99th.
Reading 786 records, 157.2 records/sec, 0.06 MB/sec, 6.4 ms avg latency, 28 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 5 ms 10th, 5 ms 25th, 6 ms 50th, 6 ms 75th, 11 ms 95th, 17 ms 99th, 28 ms 99.9th, 28 ms 99.99th.
2020-07-30 13:29:57 INFO Reader 0 exited with EOF
Reading(Total) 2900 records, 146.5 records/sec, 0.06 MB/sec, 6.8 ms avg latency, 48 ms max latency; Discarded Latencies: 0 lower, 0 higher; Latency Percentiles: 5 ms 10th, 5 ms 25th, 6 ms 50th, 7 ms 75th, 11 ms 95th, 21 ms 99th, 28 ms 99.9th, 48 ms 99.99th.