configs/thrift_cache_hash.toml (69 lines of code) (raw):

[general] # specify the protocol to be used protocol = "thrift_cache" # 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:11211" ] [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 = "hget", weight = 8 }, { verb = "hset", weight = 2 }, { verb = "hdel", 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