configs/redis_resp.toml (69 lines of code) (raw):
[general]
# specify the protocol to be used
protocol = "redis_resp"
# the interval for stats integration and reporting
interval = 60
# the number of intervals to run the test for
windows = 5
# when service is true, the runtime is unlimited
service = false
# controls the number of worker threads to launch, each worker thread maintains
# its own event loop and connection pool to each endpoint
threads = 4
# run the admin thread with a HTTP listener at the address provided, this allows
# stats exposition via HTTP
admin = "127.0.0.1:9090"
[debug]
# choose from: error, warn, info, debug, trace
log_level = "info"
# optionally, log to the file below instead of standard out
# log_file = "rpc-perf.log"
# backup file name for use with log rotation
log_backup = "rpc-perf.log.old"
# trigger log rotation when the file grows beyond this size (in bytes). Set this
# option to '0' to disable log rotation.
log_max_size = 1073741824
[waterfall]
# specify an optional path for a request latency waterfall
# file = "waterfall.png"
# choose a palette for rendering the waterfall: classic, ironbow
palette = "ironbow"
# choose a scale for rendering the waterfall: linear, logarithmic
scale = "logarithmic"
# choose the resolution for the time axis (in milliseconds)
resolution = 1000
[target]
# specify one or more endpoints as IP:PORT pairs
endpoints = [
"127.0.0.1:6379"
]
[connection]
# the number of connections to each endpoint from each thread, the total number
# of connections to each endpoint is: poolsize * threads
poolsize = 25
# the number of requests to pipeline together into a single transmission
# pipeline = 1
[request]
# set a global ratelimit for requests
ratelimit = 50000
[[keyspace]]
# controls what commands will be used in this keyspace
commands = [
{ verb = "get", weight = 8 },
{ verb = "set", weight = 2 },
{ verb = "delete", weight = 1 },
]
# sets the length of the key, in bytes
length = 32
# sets the number of keys that will be generated
cardinality = 10_000_000
# sets the distribution across the keyspace: uniform, zipf
key_distribution = { "model" = "zipf" }
# controls how values will be generated, multiple lengths with varying weights
# can be specified here
values = [ { length = 16 } ]
# provide a time-to-live for items in this keyspace
ttl = 0
# controls the cardinality of commands which operate on more than one item in
# a single request, eg: the number of keys in a `get` request
batch_size = 1