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: