Bottleneck Analysis

Identifying and analyzing the bottlenecks in performance testing is very critical and challenging task. In this blog post, we will see about the key factors involved in bottleneck analysis.

What are bottlenecks?

Bottlenecks are the point in which your application faces difficulty to behave as intended. This is the definition from WhatIs.com Below are the key parameters considered for causing bottlenecks:

  • CPU Utilization
  • Memory Utilization
  • Network Utilization
  • Disk Utilization

To analyze the bottlenecks detailed logs should be collected. Following are the tools can be used to collect the logs in the system.

1.       Profilers

SQL Profilers can be used to collect all the logs like response time of SQL queries, database health analysis, stored procedure performance etc.

2.       Traces

Traces are the collection of data and events from the database server. Traces can be collected at client side as well as from server side. By describing the events using data columns we can collect the traces for analysis.

3.       Counters

Counters log data used to validate the health of the system during execution. For Windows OS, perfmon can be used (go to Run > perfmon); for UNIX environment, vmstat, iostat can be used to collect the logs.

Data collected for the analysis should be compared with industry standards and Service Level Agreement (SLA). If any conflicts found, results should be sent to architects for tuning.

Following are the important client side and server side parameters needs to be captured for analysis during load testing.

Client side parameters

  • Average response time for all the pages
  • Average maximum response time for all the pages
  • Attained Hits per second
  • Actual Hits per second
  • Throughput
  • % of errors
  • 100% Page check validation

Server side parameters

  • CPU utilization
    • %processor time
  • Memory Utilization
    • Available memory Vs. memory utilized
  • Network Utilization
    • Bytes received Vs. Bytes sent
  • Disk Utilization
    • Input Output per sec (IOPS)
  • Connection pooling
  • Top wait
  • Locks
  • Sessions active / inactive

Testing should be done at each component in the architecture if the system involved multiple tiers. Bottleneck analysis is never ending cycle. It should be done often, early and parallel with the Software Development Life Cycle.

Subscribe to our QAInsights YouTube Channel. If you are enjoying our work, please do subscribe our free weekly newsletter or Google feeds.

2 thoughts on “Bottleneck Analysis”

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Learn Kubernetes and Get Certified in CKAD.SHOW ME HOW
+ +
Share via
Copy link