Pubblicato
2006-12-14 01:13
One of our major goals for this year is to optimize CiviCRM to handle load in a graceful manner. This is extremely important for us with the Branner Project. One of our main goals for the project this year is to optimize CiviCRM to be able to handle the last weekend load nicely (similar to the slashdot effect, the application process has most of the applications being filed and completed the weekend it is due)
The application is a multi-step form, made up of approx 25-30 forms. We have data from last year that we can scramble and potentially get a good random data set that is fairly accurate. Writing a functional test for this is potentially quite painful, but there is the wonderful testing tool Selenium. We've been using it for testing CiviCRM with pretty decent results. We hope to make it part of our automated test suite in the next release. I was hoping that we could use Selenium for load testing also. Unfortunately this does not really seem to be an option, since Selenium uses the browser for its web interactions and to run a reasonable test with 5000 concurrent users would probably require 50 or so machines (100 browsers per machines, a bit too high i suspect). I dont think this is very practical and moved on to finding other solutions.
There are a couple of projects that rise up to the top immediately. Similar to Reporting, most of the open source work on this topic is done by our good friends in Java land. Some of the popular open source packages i found include:
- TestMaker from PushToTest
- Grinder
- JMeter from the Apache/Jakarta folks
- The Black Anvil Discussions on scalability -- load, stress, and performance testing with a focus on Grinder
- Load Tools Overview An overview paper on some of the tools in the market
Filed under