Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/marcialrosales/jedisloadtest


https://github.com/marcialrosales/jedisloadtest

Last synced: about 21 hours ago
JSON representation

Awesome Lists containing this project

README

        

# jedisLoadTest

To execute the load test run the following command. The load test simulates concurrent user requests where a user request triggers various redis commands. From now
on we call Workflow to the set of commands invoked upon a user request:

  

java -Dtimes=10 -DworkflowTimes=100 -DconcurrentProducers=150 -DpoolSize=150 -DentryCount=1 -DfieldCount=10 -jar target/spring-data-jedis-0.0.1-SNAPSHOT.jar

... if redis server is running in the current machine and listening on localhost

  

java -Dredis=redisServer -Dtimes=10 -DworkflowTimes=100 -DconcurrentProducers=150 -DpoolSize=150 -DentryCount=1 -DfieldCount=10 -jar target/spring-data-jedis-0.0.1-SNAPSHOT.jar


... if redis server is listening on the host 'redisServer'

  

java -DsentinelMaster=mymaster -Dtimes=10 -DworkflowTimes=100 -DconcurrentProducers=150 -DpoolSize=150 -DentryCount=1 -DfieldCount=10 -jar target/spring-data-jedis-0.0.1-SNAPSHOT.jar

... if you are using Sentinel and your master is called mymaster and your sentinel is running on localhost:26379

  

java -DsentinelMaster=mymaster -Dsentinels=mysentinel:1223 -Dtimes=10 -DworkflowTimes=100 -DconcurrentProducers=150 -DpoolSize=150 -DentryCount=1 -DfieldCount=10 -jar target/spring-data-jedis-0.0.1-SNAPSHOT.jar

... if you are using Sentinel and your master is called mymaster and your sentinel is running on mysentinel:1223


Description


Workflow: A set of redis commands that are invoked upon a user´s request. They are executed within the context of a single Redis Connection.
The commands invoked by a workflow are hash commands: HSet/HMSet and Hget/HMGet. The workflow uses as many keys as indicated by the parameter entryCount.
And as many fields as 'fieldCount'.
The first time we invoke a workflow, it creates a unique set of keys.
And the parameter workflowTimes indicates how many times we invoke a workflow. When we reach the total 'workflowTimes', the workflow deletes the keys simulating the
user has terminated or closed its session.

The parameter 'times' allows us to initiate many workflows, one after the other.
The parameter 'concurrentProducers' allows us to have parallel workflows running at the same time.

Number of unique keys generated as the result of invoking the above command: times * entryCount * concurrentProducers

Parameters

parameter:defaultValuedescription
redis:localhost location of redis server (if sentinelMaster is blank)
sentinelMaster: name of the sentinel master. Blank if we are not using Sentinel.
sentinels:locahost:26379comma-separated listed of sentinels. This setting is used if sentinelMaster is not blank.
poolSize:10 number of connections allowed in the pool
concurrentProducers:1
times:1
abortAfterNMin:5 abort the test if it does not finish in less than 5 minutes
workflowTimes:10
entryCount:2 number of keys
fieldCount:10 number of fields per key
dataLength:100 field´s value lenght in bytes
expiryInSec:120 expiry time in seconds for the keys
deleteKeys:true delete the keys after running a full workflow (i.e. workflowTimes). if false, the keys are not removed and redis removes them when they expire.
cmdStrategy:single single uses hget/hset , multiple uses hmget/hmset
thresholdLatencyMsec:100 track how many commands executed over 100msec
thresholdWaitJedisPoolMsec:10 track how many times we have to wait more than 10msec to get a Jedis connection