Monitoring and Post-Test Analysis
Now that we've covered the various elements and best case practices of setting up and running effective performance tests, we'll dive into monitoring them properly and how to conduct post performance test analysis.
Monitoring And Its Importance
Monitoring is important to analyzing individual component(s) of the application.
During performance testing virtual users create load on an application, and the tester's direct involvement in process is less (and tools involvement is more). Thus, it is important to monitor the system and its individual components.
What should you monitor during a test?
- The application server and all the activities happening;
- The database server and all the activities happening;
- The Web server and all the activities happening;
- The network and bandwidth availability;
- All client side activities;
- Firewalls;
- Any intrusion software or solution if used.
The importance of monitoring
There are three main reasons monitoring is critical to performance testing:
- It enables you to pin point any issues quickly;
- It provides sponsors a true picture of the capacity of the existing infrastructure and helps them make decisions on weather to invest more or decrease investments in the infrastructure;
- It provides product owners confidence on the results observed
Counters
When running performance tests, there are two types of "counters" that provide statistics on your website or application performance.
In performance testing counters "count" the number of times specific activities occur ranging from successful page loads to errors generated. These counters provide the high-level results of a test, while individual scenarios and recordings provide the actual reasons on why they are occurring.
There are two types of counters:
- Client-Side Counters: Performance counters on the computer that a load test is executing, and that simulates the end user experience;
- Server-Side Counters: Performance counters that run on servers that deliver content end users.
Both counters are important when understanding the overall performance of your application.
Client-side Counters
The following are some client counters that report results after performance tests.
For each transaction:
- Failure rate for individual transactions
- Average transaction response time (for each transaction)
- Minimum transaction response time
- Maximum transaction response time
- 90/95/98 percentile response time
Client side activities:
- transactions / sec
- hits / sec
- errors / sec
- average throughput
Server-side Counters
The following are some server-side counters that provide additional information about your server performance
Processor:
- percent processor time
- queue length
- disk queue
- thread count
- percent disk time
Memory:
- page faults per sec
- bytes available
- average bytes in use
Network:
- average requests per seconds
- average errors found per sec
- requests per sec
- bytes per sec
- memory allocated (kb)
Top Server Monitoring Tools
While performance testing is important, it only provides a snapshot of your website or application performance under testing conditions. While this provides valuable information for fixing major issues and bottlenecks, it's also good practice to place ongoing monitoring tools on your site. These tools will alert you to new issues or environmental factors you may not have put in place during your performance tests.
Here are some of the most commonly used server monitoring tools for performance testing:
Top Network Monitoring Tools
Along with your server, you may also want to monitor the health and activity of your network to understand potential bottlenecks and environmental issues.
Some of the most commonly used network monitoring tools for performance testing include: