Testing Services provides a platform for QA professionals to discuss and gain insights in to the business value delivered by testing, the best practices and processes that drive it and the emergence of new technologies that will shape the future of this profession.

« Next-Gen QA - Five Paradigm Shifts that can change the game | Main | Test Tool Selection for Functional Automation - The missing dimension »

Performance Modeling & Workload Modeling - Are they one and the same?


Performance modeeling ver 3.0.jpgI have quite frequently encountered scenarios in which the clients, managers and developers keep using the terms 'Performance Model' and 'Workload Model' synonymously. However, I figured out in many cases they actually wanted to refer to the usage patterns of their application business processes by the end users and the respective application load. So, I kept wondering if these terms lost their meaning over a period of time or is it the mere ignorance of what each term specifically stands for. In this blog, I attempt to provide a distinct difference to these terms which in reality represent two completely different concepts that have their own meaning in the Application Performance Management (APM) space. In general terms, a mathematical or scientific 'Model' represents a system with certain inputs and specific outputs. 

The purpose of creating 'Performance Models' in APM discipline during the Design phase is to represent a given IT system/application as a black box that takes inputs such as 'User/Transaction Load' and provides output such as 'Response Time / Throughput / System Utilization' to evaluate the application design and architecture to gain better insights into application's performance and scalability before it is implemented. In my experience, I have come across many performance problems in the Test and Deploy phases for enterprise applications which are actually back-rooted to few design flaws that are difficult and (sometimes) impossible to change in the fag-end, making the application non-compliant with performance SLAs.

In order to ensure that performance is taken care right from the design phase (not as an afterthought), 'performance modeling' should be adopted to model system's performance and continuously refined in later phases of SDLC. The process of creating performance models is called 'Performance Modeling'. Performance Models are used to evaluate any design/architectural trade-offs based on scientific approach and measurements in design phase before investing time and money to actually go for a full-blown implementation, which might end up as a disaster, if the design is not scaled for 'performance'.  Performance Modeling can be implemented using different techniques such as 'Analytical Models', 'Simulation Techniques' or 'Extrapolation Techniques' which are to be chosen based on the client scenario, cost-effectiveness and time factor. The outcomes from Performance Modeling typically represent performance prediction which can be refined with more data captured from any given application/system as it gets developed.

On the other hand, 'workload model' represents the critical business processes of a given IT system, the peak usage volumes (in terms of user load or transaction load) and their percentage mix which should be considered as the basis to evaluate application's performance for concurrency. Generally, for systems already existing in production, workload models can be built using webserver logs or usage logs of the systems. If systems are to be built from scratch, inputs for the workload model need to be captured from various business and technical stakeholders of the application. If the 'Workload Model' does not represent the true nature of the concurrent usage anticipated in Production, performance metrics, data captured from Performance Tests (Load/Stress/Endurance/Volume) might look compliant with the performance SLA, while the application might face severe performance problems once rolled out. Hence, workload models form the basis for the performance tests to evaluate system's performance.

To summarize, Workload Model represents usage pattern of the application whereas Performance Model represents the performance characteristics or behavior for inputs such as user load or transaction load that increases application performance predictability.

So next time, you are in a discussion with a business or technical group to discuss about the strategy or action plan to improve performance of  an IT system, be clear on what the requirement is - Performance Modeling or Workload Modeling?  Or is it something totally different.


I guess I was expecting a more technical and indepth blog from Infosys. I was with Infosys and when I saw performance modeling, I was looking at a technical blog. Any performance engineer would know the difference between performance modeling and workload modeling.

i want a job on performance testing any other technology
be-ece fresher

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.