Re: [Grinder-use] TPS as a function of elapsed time
Distributed load testing framework - Java, Jython, or Clojure scripts.
Brought to you by:
philipa
From: olivier m. <ome...@gm...> - 2010-12-26 15:09:56
|
Hello Pierre, You're completely rigth - i'm a French living in the South of France (near Marseille) for an international company. I suppose you are a Quebecois ! We have a RnD department there and i'm used to work with them. I hope this code will help you. If you need support on this code no problem - i am doing some improvement on this part at this time. I would like to be able to change the throughput externally thru HTTP call. This allows to change the rampup during a run if you see that the SUT is not sustaining the load or allows to interrupt cleanly a run. The main issue i have is that i have no central place to drive all the worker processes. The good place would be grinder console but this would imply patching the Grinder code to add the thoughput ramp up capability. One functionality i really would like (this is the opportunity as we switch to a new year ...) would be the ability to have a hook in the statistics so too not write the statistics to the datafile but directly to a RRD file. It would be so nice - graphing and storage in the same place. Je te souhaîte de bonnes fêtes aussi et tous mes voeux pour 2011. Olivier Merlin 2010/12/25 Morel, Pierre <Pie...@ac...> > Thanks 1,000,000, Olivier > > I will study this code while vacationing in France > > By the way, are you French? Quebecois? Ou peut-etre simplement de parents > francais ? > > Joyeux Noel et tous mes vœux pour 2011. > > Pierre Morel > > > > *From:* olivier merlin [mailto:ome...@gm...] > *Sent:* Saturday, December 25, 2010 5:38 AM > *To:* grinder-use > *Subject:* Re: [Grinder-use] TPS as a function of elapsed time > > > > Sorry for the multi mail sending - the tab key seems to send email on my > new computer installation (that's a mess) > I try to finish my email : > > so you put this code in your grinder.py script: > > import tamtam > (...) > > use_throughput=False > if (properties.get('throughput_activate') or '').lower() =='true': > > use_throughput=True > throughput_profile=properties.get('throughput_rampup').strip() > > print "Switching to throughput mode ... Rampup profile is %s" % > (throughput_profile) > # Last parameter is for debugging purpose > metronom = Metronom( 'RAMPING', throughput_profile, > numberOfThreads,False) > (...) > class TestRunner: > def __call__(self): > # > # Should be the first > # all threads wait for the token from the Metronom producer > # > if use_throughput: > metronom.getToken() > (...) > > > In your grinder.properties: > > throughput_activate=true > # > # [optional] list of req/s,duration separated by spaces > # > throughput_rampup=1,10 5,10 10,10 20,10 30,10 40,10 50,60 60,60 > > This ramp up to 1req/s during 10 seconds, then 5 req/s during 10 seconds > ... > > As regards your scenario, i would be probably difficult to achieve your > goal with only on grinder process. > > Cheers, > Olivier > > 2010/12/25 olivier merlin <ome...@gm...> > > Hi Pierre, > > I have written a code that allows to do step by step ramp up with the > Grinder. > This code is robust as it uses the pattern design one producer - multi > consumers . I use it a lot to do throughput test. It was originally inspired > by the code of Kaimar Ttilok (throttle.py) - you can found this code in this > user list. > > See the attachment tamtam.py (Yes - the producer is playing tamtam) > To use this module, your main grider.py code should include this : > > use_throughput=False > if (properties.get('throughput_activate') or '').lower() =='true': > throughput_profile=properties.get('throughput_rampup').strip() > > 2010/12/25 olivier merlin <ome...@gm...> > > > > Hi Pierre, > > I have written a code that allows to do step by step ramp up with the > Grinder. > This code is robust as it uses the pattern design one producer - multi > consumers . I use it a lot to do throughput test. It was originally inspired > by the code of Kaimar Ttilok (throttle.py) - you can found this code in this > user list. > > See the attachment tamtam.py (Yes - the producer is playing tamtam) > To use this module, your main grider.py code should include this : > > use_throughput=False > if (properties.get('throughput_activate') or '').lower() =='true': > throughput_profile=properties.get('throughput_rampup').strip() > > > > 2010/12/24 Morel, Pierre <Pie...@ac...> > > > > Hi Phil, > > I would like to ask you advice for solving the following problem: > > I want to start agent and complete the following steps without any > intervention until the test ends: > 1. 50 transactions per second for the first 5 minutes > 2. whenever 5 minutes have gone by, add 50 transactions per second (so > that from time 0 to 4'59" there are 50 TPS, from time 5' till 9'59" > there are 100 TPS, from time 10' till 14'59" there are 150 TPS, etc. > 3. Increase TPS until it reaches 8300 TPS (this should happen at 825 mn) > > 4. Continue increase to 8300+10%= 9130 TPS > > I would like to use threads only to implement my 'load'. > At this time, each of my threads reads a file of case numbers, which are > sent to the application as ISO messages. > I do not know how to implement the staircase above which is really the > TPS against time. How do I read TPS from Grinder? How can I control the > number of threads and/or the size of files associated to the threads so > as to achieve my 'staircase'? > > Do you know of a Jython script which implements what I am trying to do? > Thanks in advance for your help. > Have a Merry Christmas, I wish you a happy holiday. > Pierre Morel > > > ------------------------------------------------------------------------------ > Learn how Oracle Real Application Clusters (RAC) One Node allows customers > to consolidate database storage, standardize their database environment, > and, > should the need arise, upgrade to a full multi-node Oracle RAC database > without downtime or disruption > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > grinder-use mailing list > gri...@li... > https://lists.sourceforge.net/lists/listinfo/grinder-use > > > > > > > > > ------------------------------------------------------------------------------ > Learn how Oracle Real Application Clusters (RAC) One Node allows customers > to consolidate database storage, standardize their database environment, > and, > should the need arise, upgrade to a full multi-node Oracle RAC database > without downtime or disruption > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > grinder-use mailing list > gri...@li... > https://lists.sourceforge.net/lists/listinfo/grinder-use > > |