In "Determine Your Java Software's Performance Capacity During Development," author Raghu Donepudi discusses how you can analyze how much load your software can take when you're best able to alter it: during development, rather than during deployment or quality assurance phases.
... It is not cost effective to do an exact production simulation load test on a pre-production or test environment, which has created a market for numerous software tools that perform simulated load tests. All the testing tools basically run automated tests, during which you can collect other vital operating system information to calculate your software's performance capacity.However, the article focuses on only a few areas: watching for open cursors on your databases, analyzing expensive SQL queries, commenting out System.out references, and watching CPU load during expensive API calls, completely ignoring other potential performance sinks such as inefficient garbage collection, memory analysis, or even how to generate enough load such that the system can be stressed enough to show load issues.
Because development teams seldom address load test issues during development, initial load test runs are prone to crashing. Lots of load testing time can be saved if problems such as open cursors and overly used CPU-intensive queries are addressed during the development phase itself. This article walks through how to analyze load test data and do capacity planning for your enterprise Java applications while they are in development.
What techniques do you use to verify load capacity?