Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
None
Description
this patch makes the following improvements over the existing stress.py (with the patch in CASSANDRA-514):
1) uses a shared memory array to rectify the fact that with the multiproc change in CASSANDRA-514 the updates to the op counts are not getting pooled correctly
2) optionally allows the client to do round robin requests thus preventing cassandra from having to take on extra load balancing requests
3) refactors code so there is no duplicate code making it easier to support any new operations people may want to add
4) stress.py can now be used to generate performance graphs. It adds one new field which is the total number of operations completed for each interval which is required to show aggregate performance across intervals. It also does an append so that data points can be collected for each interval. Furthermore, the date foramt is now CSV so for easy import into Excel, R, etc.
Generating performance graphs can be generated in 5 easy steps:
1. nosetests --tests=system.stress:Stress.insert &
2. tail -f /tmp/progress_insert (just to watch and make sure it's working)
3. fire up R (www.r-project.org/)
4. w = read.table("/tmp/progress_insert",sep=",")
5. plot(w[,3]/60,w[,2],ylim=c(0,10000),xlab="Elapsed time (minutes)",ylab="Writes / sec", type='l')