Here is the quick reference guide for Performance Testers.
Performance Test Analysis forms the key phase in the life cycle of Performance Testing. I have compiled the best practices & techniques for a successful performance test analysis in 3 parts.
Part 1 – What are Performance Bottlenecks
Part 2 – Performance Bottleneck analysis techniques & Best Practices for successful Performance Tests
Part 3 – Performance Analysis Areas – 360 degree view
If you are interested to receive the quick reference guide on “Performance Bottleneck Analysis Made Simple” as PDF file , you can share your interest by writing to us at firstname.lastname@example.org.
Trust us! We will not spam you 🙂
——————————— Sample Content Preview for your reference ————————-
Part 1 – What are Performance Bottlenecks
Performance Testing is a type of testing that simulates the realistic end user load & their access pattern in a controlled environment in order to identify the responsiveness, speed & stability of the system.
Performance bottleneck is a slow down leading to SLA not being met. A system will usually have many performance bottlenecks both during single user load & multi-user load conditions. The most critical bottleneck needs to be identified & analyzed further for its removal to have better performance. Upon removal, the next critical bottleneck affecting the SLA needs to be identified & removed. This process goes on until the system performance metrics meets the SLAs.
Let’s think of a patient consulting a physician. Often cold & fever are common symptoms for many big infections & diseases. Upon careful examination & discussion with patient, the physician starts correlating & starts performing specific tests to isolate the problem one after the other. Careful analysis of symptoms (observations gathered during performance tests) often leads to quick isolation of the problem. Problem isolation often adopts trail & error method but it becomes more of educated guess which comes by experience.
Imagine the software system as a series of interconnected pipes. Consider the below hydraulic structure which needs to transmit the pumped in fluid from the entry point to exit point through a series of interconnected pipes. The overall performance of this structure now depends upon the performance of the smallest pipe. i.e The throughput of the overall structure is equal to the throughput of the smallest pipe.
In the above system provided in the figure, which is the most bottleneck device that restricts high performance?
Now you will agree, identifying the bottleneck is no more an art & it has become a common sense. New bees often start their career in performance testing with just reporting the performance metrics, but as one gains experience, it is mandatory that every performance tester should perform various analysis like NFR validation analysis, data trend analysis, metrics correlation analysis, scatter chart analysis, drill down analysis, threshold verification, SLA validation analysis, etc.
Part 2 – Performance Bottleneck Analysis Techniques & Best practices
A Performance Tester need to develop a holistic mindset to look at the overall big picture, i.e., system architecture & various layers involved that can impact the overall system performance.
Two Important secrets for successful Performance Test
The foremost is your test workload & second is the server monitoring setup. Cautious care needs to be taken to analyze the historical trend to derive the realistic workload for running performance test, else the performance test might not replicate the production situation making your tests waste of time & effort. If server monitoring is not done as part of your tests to identify the health of different components in your system architecture, you might not have confidence to report the performance test results.
Performance Bottleneck Analysis Techniques
Performance bottleneck analysis is not an art. Once we understand the fundamentals, we can realize it’s more of applying common sense to identify the hidden issues. Though there is no systematic procedure or rule of thumb to follow the below techniques, this paper discusses in detail the below mentioned techniques that can quickly get you to the actual problems.
- Scatter Plot Trend Analysis
- Page / Transaction Component Analysis
- Threshold Analysis
- Correlation Analysis
- Outlier Identification & Isolation
- Time Unit drill down Analysis
- Hardware Footprinting
- Code Profiling
- Memory Leak / JVM Analysis
Part 3 – Performance Bottleneck Analysis Techniques & Best practices
This part will deal with various elements that need to be analyzed to understand its impact on the overall system performance. This ensures a true End-to-End Performance Testing is conducted.
Let’s consider a typical 3 tier application which consists of web, application & DB tiers. End to end performance analysis areas includes client-side performance analysis (page loading & rendering time), network performance analysis (impact due to network type), load balancing analysis (equal load distribution analysis), web server performance analysis (HTTP requests & thread pool size analysis), application server performance analysis (Heap analysis and code profiling) & DB performance analysis (query performance analysis & profiling).
Typical Web application Bottlenecks
This section deals with various performance bottlenecks that can occur in each of the below mentioned components in 3 tier application architecture
- Client-side (browser)
- Network Layer / Load-Balancer
- Web Server Layer
- Application Server layer
- DB Server Layer
Performance Bottleneck analysis is not an art. It’s more of applying common sense & mathematical principles for easy & quick detection though sometimes it requires expertise in the underlying technology.
Happy Performance Test Evaluation!!