Improving .NET Application Performance and Scalability
Goals of Performance Testing
The main goal of performance testing is to identify how well your application performs in relation to your performance objectives. Some of the other goals of performance testing include the following:
· Identify bottlenecks and their causes.
· Optimize and tune the platform configuration (both the hardware and software) for maximum performance.
· Verify the reliability of your application under stress.
· Response time.
· Maximum concurrent users supported. For a definition of concurrent users, see "Testing Considerations," later in this chapter.
· Resource utilization in terms of the amount of CPU, RAM, network I/O, and disk I/O resources your application consumes during the test.
· Behavior under various workload patterns including normal load conditions, excessive load conditions, and conditions in between.
· Application breaking point. The application breaking point means a condition where the application stops responding to requests. Some of the symptoms of breaking point include 503 errors with a "Server Too Busy" message, and errors in the application event log that indicate that the ASPNET worker process recycled because of potential deadlocks.
· Symptoms and causes of application failure under stress conditions.
· Weak points in your application.
· What is required to support a projected increase in load. For example, an increase in the number of users, amount of data, or application activity might cause an increase in load.