Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marcialrosales/jedisloadtest
https://github.com/marcialrosales/jedisloadtest
Last synced: about 21 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/marcialrosales/jedisloadtest
- Owner: MarcialRosales
- Created: 2015-08-04T08:49:44.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-09-07T15:59:23.000Z (about 9 years ago)
- Last Synced: 2023-03-03T07:53:47.770Z (over 1 year ago)
- Language: Java
- Size: 6 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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