Performance Testing
1.0 Performance Testing to Date
1.1 Current Status
Last updated October 20, 2006
To date, we have not tested Mifos on the machine configuration below. Below is simply our best estimate given experience with similiar applications. Performance testing has been conducted a P4 machine with a 2.8MHZ processor with 1GB of RAM, simulating 10 concurrent users (doing the exact same action at the exact same time) across a database of 120,000 clients with 4 accounts each. We will estimate an improvement ratio for running MIfos on the suggested configuration below-- and based our performance targets on that.
There is a concern, expressed by MFTech, that slow clients can significantly impact the performance of the database (the database server is being utilizied to ensure that packets have been received). This can be addressed by having two network adopters and routing all slow clients to a different subnet. (I don't fully follow this but one common solution to slow clients is a squid/apache front-end, so that jboss/tomcat/jetty can run at full speed. But that's only if there is a real problem, which I'm not convinced of -JimKingdon)
There was also a concern, expressed by William Pietri on June 13th on the listserve, that dual processors machines can expose bugs not visible on single processor machines. Aditi ran a complete QA pass on a dual processor machine and found no significant bugs.
1.2 Performance Test Results
All performance tests have been run on a Windows operation system. See spredsheets for more details on the system configuration of the testing machine.
We have not conducted performance testing on Linux operating machines, but we would be surprised to see a big difference in hardware requirements. The big driver of hardware requirements are MySQL, Java, and MIFOS, none of which are likely to differ drastically by operating system.
Once we get Mifos up and running at GK, it will be important to collect feedback on from the field about which things are proving to be slow in practice - sometimes the load is different or just the perceptions of what should be fast and what doesn't need to be.
1.3 Performance Benchmark Results
MFTech, our Mifos specialist in India, asked Aditi to conduct performance tests while tracking the following performance benchmarks:
- Memory
- Percentage of Hard Page Faults
- Memory usage of the User Processes
- Processor
- CPU Busy percentage.
- CPU Usage percentage of User Processes
- Percentage spent in User time,System time
- Disks
- Disk Queue Length
- Disk Percentage busy time
The results of these tests can be found here.
2.0 Tools for Performance Testing
Aditi used OpenSTA to conduct performance tests. Instructions for configuring OpenSTA to test Mifos can be found here.
-- Main.emilytucker - 15 Aug 2006
