Open filonenko-mikhail opened 3 years ago
cartridge bench --url 127.0.0.1:3301 --duration 20 --connections 10
Hi! I have a conversation with Dima and looked at the descriptions of the redis-benchmark and clickhouse-benchmark and I would like to write some thoughts.
As I understand it, redis-benchmark
generates the database itself in accordance with the test scenarios, and clickhouse-benchmark
runs the given workload on a previously prepared database.
According to the code previously proposed in the PR, we want to implement the redis-benchmark
approach. As for me, this is a more interesting approach, but we need to understand what and how we plan to measure, because if there are various requests (insert
, update
, select
, delete
), some starvation may begin (for example, we have a lot of delete
, but small amount of insert
, respectively, we will spend a lot of time waiting insert
). It is possible that it is necessary to slightly change the approach to the filling of the DB, measurements.
For example, we can also measure the average (moving average) execution time of a request depending on its type (this will not give us information about the throughput, but it will give information about the latency for this type of load). We can also measure the duration of the benchmark in the number of requests and set the time limit as a limitation, then we can prepare a DB in which starvation will be unlikely / impossible.
Also, a couple of points on which I think it is important to clarify:
I plan to take a closer look at the redis-benchmark
and see how the DB is filled there in various test scenarios.
Cartridge bench tool for Tarantool
User Story
User setup Tarantool single node or cluster and try to understand «How many specific traffic Tarantool can handle on this hardware»
The same official things are for redis, postgresql and aerospike.
Propolsal
Make a bench module for cartridge cli. Bench module makes some load for Tarantool.
MVP
Server
Benchmark
Output
The simplest case "Single Node Forever Alone"
Bench tool
_cartridge_bench_kv
"Twix Pair Candy Popkorn"
User sets up tarantool leader and tarantool follower with replication. Bench tool makes the same scenario as for "Single Node", but read requests go to the follower.
"Splinter Cell"
User sets up vshard cluster with one router and two storages. Bench tool
_cartridge_bench_sharded_kv