CiviLoad, Jython, Java et al ...

2006-12-19 15:47
Written by
Dave Greenberg - member of the CiviCRM community - view blog guidelines
Trying to get our arms around how to load test CiviCRM and it is turning out to be a major issue with quite a few steps. This post is primarily for us to sort things out and make sure we are on the right path. So here are the specific steps and various programs we'll use to test things out:
  • Build and deploy the CPS application using CiviCRM. To keep things a bit simple, we'll eliminate any file uploads. Language: PHP, Status: DONE
  • Run CiviCRM using xdebug profiler. Isolate and optimize the code here. Could potentially use selenium to automate this a bit. Language: PHP, Status: Not Started
  • Take our existing data set of 3000 xml files and randomize the information to generate a new data set of 3000 xml files. Language: PHP, Status: DONE
  • Take this set, and convert it into an easy to use pickle format for Grinder. Basically into name/value sets for Grinder to use. Language: Python2.5, Status: In progress
  • Create a drupal user/login for the above students and assign them the Student Role Language: PHP, Status: Not Started
  • Build the grinder agent script. For each thread in a worker, pick a random application (preferably an application that has not been used, need to figure out how to do this). Load the relevant pickled data, and submit pages of the application (in a random order). Also insert random sleep delays between an application GET and the subsequent POST. Language: Jython2.2a1, Status: Not Started
  • Analyze the Grinder output, optimize code, tweak network architecture and repeat the process. Language: Java, Status: Not Started
As evident from the above there are quite a few components involved with this project. Hopefully we will improve CiviCRM performance and memory usage significantly as a result of this exercise
Filed under