Conceptual Models of Enterprise Applications as Instrument of Performance Analysis 
Leonid Grinshpan, PhD 
The article introduces enterprise applications conceptual models that uncover performance related fundamentals distilled of innumerable application particulars concealing the roots of performance issues. The value of conceptual models for performance analysis is demonstrated on two examples of virtualized and non-virtualized applications conceptual models. 
In the course of performance analysis of enterprise applications the biggest challenge to overcome is their tremendous complexity. Today’s distributed applications are comprised of the tanglewoods of physical and logical objects interacting in a very intricate manner. The applications implement multiple rules, algorithms, and protocols while serving communities of concurrent users generating fluctuating workloads. That makes application performance analysis extremely cumbersome and time consuming, particularly taking into account that each enterprise application features hundreds of tuning parameters on system and application levels. 
System level tuning parameters define the management policies of the operating systems. Microsoft offers 112 pages document “Performance Tuning Guidelines for Windows Server 2008 R2” (http://tinyurl.com/qx4v4gy). AIX operating system tuning guide by IBM is even fattier – it has 744 pages (http://tinyurl.com/o3b66o8). 
Application tuning parameters control allocation of system resources as well as configurations of application internal logical objects like software threads, connection pools, etc. Application vendors publish various tuning documents to help optimize their products. A few examples are: “Oracle® Fusion Middleware Performance and Tuning Guide” (http://tinyurl.com/kurmd9p), “Oracle® JRockit Performance Tuning Guide” (http://tinyurl.com/mggv55j), “Oracle® Fusion Middleware Performance and Tuning for Oracle WebLogic Server” (http://tinyurl.com/panje7g). All publications expose broad assortments of tuning variables, but do not provide any methodological guidance on efficient and targeted execution of performance tuning activities. 
Is it possible to perceive an application in a way that scales down its complexity (similar to taking an aerial view of the Earth)? In other words, can we conceptualize an application to abstract from numerous details and concentrate only on its objects and their relationships that reveal performance related cause-effect connections?
This article provides a positive answer by advocating enterprise application conceptual modeling as an instrument of application performance analysis. 
Application conceptual model exposes the relations between demand for services generated by transactional workload and supply of system resources that intended to satisfy such a demand. By devising a conceptual model we mentally leap into specific perspective on application; that perspective highlights system resources, their capacities, as well as demand for system resources from transactional workload. 
The representations of the conceptual models can differ (charts, tables, matrixes, text descriptions, pictures), but they all include the constructs describe in the next paragraph. 
Conceptual model constructs 
We need the following constructs to build the conceptual models that enable application performance analysis 
1. Transactions – characterize user requests for application services. If we visualize a transaction as a physical object (for example, a car), we can create in our mind an image of a car-transaction visiting different system servers and spending some time in each one while being processed. The transaction examples are: 
- Login 
- Financial Report 
- Activity Report 
- Data transformation 
- Business rule execution 
2. Resources – each system hardware component (servers, appliances, networking equipment) allocates its resources to transaction processing. In general, each component has the following assets to be allocated: 
Active resources: 
- CPU time (data processing) 
- I/O time (data transfer) 
- Network time (data transfer) 
Passive resources: 
- Software connections (for example, Web server connections, database connections) 
- Software threads 
- Storage space 
- Memory space 
- Software locks 
Active resources implement actual transaction processing and data transfer. Passive resources provide access to active resources. A consumption of an active resource by a single transaction
is measured by the time interval it was serving a transaction. A metric for a passive resource usage by a single transaction depends on a passive resource type: for software connections and threads it is a number of connections and threads; for memory and storage it is a size of allocated memory. A transaction waits for a resource when other transactions consume all resource capacity. 
3. Physical nodes - symbolize physical servers, appliances, and networks. One physical node consists of active and passive resources of one physical server. Each resource has a queue where transactions are waiting while that resource is unavailable. 
Physical node 
4. Virtual nodes - represent virtual machines (VM). One virtual node consists of one VM passive resources and a block indicating a waiting period for a time slice to be allocated to VM by a host’s hypervisor. VM is not running when it is waiting for a time slice. 
Virtual node 
5. Nodes with shared hardware resources – a depiction of a physical host shared active and passive resources: 
Node with shared active resources
6. Transaction-resource matrix (TR matrix) - defines active and passive resources each transaction receives the services from while being processed by application. As an example, in a matrix below a character “X” identifies the resources of three-tiered application consumed by each transaction. 
Active and passive resources for each hardware component 
Transactions 
Web server 
Application server 
Database server 
Network 
Load balancing appliance 
CPU 
Connections 
CPU 
Threads 
Memory 
CPU 
Connections 
I/O system 
Networking hardware 
CPU 
Login 
X 
X 
X 
X 
Financial Report 
X 
X 
X 
X 
X 
X 
X 
X 
X 
X 
Activity Report 
X 
X 
X 
X 
X 
X 
X 
X 
X 
X 
Data transformation 
X 
X 
X 
X 
X 
X 
Business rule execution 
X 
X 
X 
X 
X 
X 
Transaction-resource matrix (TR matrix) 
7. Users – the source of transactional workload. An application has to have sufficient resource capacity to process transactional workload according to required service level. We can picture an interaction between users and application as below (the cars are transactions metaphors): 
User interaction with application 
The user-generated transactions are processed by the application; after completion the results are delivered back to the user. Between two subsequent transactions generated by the same user there is a time interval (called a “user think time”) that defines an intensity of transactional flow.
Conceptual models of non-virtualized and virtualized deployments 
Using described constructs, we can model non-virtualized three-tiered application as shown on Figure 1. The application consists of Web, Application, and Database servers; each one is hosted on dedicated physical hardware. 
Figure 1. Conceptual model of multi-tiered non-virtualized application 
A transaction starts its journey when a user clicks on a menu item or a link that implicitly initiates a transaction. In a model it means that a transaction leaves a block “users”. After that it gets processed in the nodes “WEB server”, “Application server”, “Database server”. Each transaction will request passive and active resources as described in TR matrix. If any of the needed resources is not available, a transaction will wait in the queues. At the end of its journey a transaction comes back to a user. The total time a transaction has spent in all nodes is a transaction response time. The model makes obvious that this time has two components: a processing time by the active resources and a waiting time for the passive and active resources. 
A conceptual model of the same three-tiered virtualized application deployed on one physical host can be seen on Figure 2.
Figure 2. Conceptual model of multi-tiered virtualized application 
Two major differences between non-virtualized and virtualized deployments our conceptual models highlight immediately: 
- A virtualized set up has resources shared among a number of VMs. 
- Each VM can use its own passive and host’s shared resources only when hypervisor allocates a time slice to VM. 
Those particulars of virtual deployment have profound performance implications we discuss in the next paragraph. 
Analyzing application performance using conceptual models 
Let’s consider what can cause a delay in a transaction processing in non-virtualized application deployment. As a conceptual model on Figure 1 suggests, a transaction delay can be cause by two circumstances – a shortage of an active resource capacity and a limited access to an active resource because of the shortage of passive resources. 
For example, in order to process a transaction in a server’s CPUs, an application has to request and to receive a particular memory space. But what will happen if a memory is not available? Obviously, a transaction will wait in a queue. This means that a transaction processing is delayed as a result of a limited access to CPUs even if they are not fully utilized. In general, a shortage of the passive resources causes underutilization of the active resources.
To identify where the bottlenecks can potentially take place, we have to monitor not only active resources, but also the passive resources. Among latter there are physical ones (memory and disk space), as well as the logical programmatic objects (software threads, connection pools, locks, semaphores, etc.). Monitoring passive programmatic resources requires knowledge of application architecture and software internal logistics. 
The model on Figure 1 reveals that the bottlenecks in our application might happen when there are insufficient CPU and I/O capacities in Web, Application, and Database servers, as well as when the servers have limited memory, application spawns insufficient software threads, or connection pools are poorly tuned. Indeed, low network throughput also can cause the bottlenecks. 
Performance ramifications of sharing time and resources in virtualized environments 
The conceptual models of virtualized deployment feature the time slice constructs as well as the resources shared among VMs hosted on the same physical host. 
The time slice constructs point to the very important fact that, in order for a VM to process transactions, it has to receive from the host’s hypervisor particular time interval to get an access to host’s physical hardware. The time slice allocation algorithms vary among virtual platform from different vendors. But the commonality among all algorithms is that a time slice gets allocated to a VM only when a demand from VM for a specific shared resource is met by resource availability. If that is not the case, than VM will wait and will not process transaction. 
One significant implication of a host’s hardware time sharing is a flawed timekeeping by VMs. A detailed discussion can be found in [1, 2]; here we just point at its fundamental reason: in a virtual environment hypervisor treats guest VM as a process that can be stopped and resumed at any time. When guest VM is stopped, it cannot accept and count time interrupts from a hardware clock. That means guest VM misses time intervals which makes reported by VM time-dependent performance metric not representative. That affects the most popular performance counter groups: 
- The counters reporting utilization of system resources during some time interval (for example, percent of total CPU utilizations, percent of CPU utilization by particular process, percent of physical disk utilization). 
- Resource throughput measured in a number of operations executed by a resource during particular time interval (for example, network throughput measured in bytes/second, number of I/O Reads/second). 
Taking into consideration this fact, what are the right performance counters to monitor in virtualized environments? To find it out let’s refer to our conceptual model on Figure 2. Each resource depicted on the model has a waiting queue; acquiring a time slice also requires VM to wait in a queue. The queues are the major phenomenon defining system performance, because waiting time in the queues adds up to the time a transaction is processed by system resources. A queue is an indicator of imbalance
between demand generated by fluctuating user’s workload and availability of system’s resources to satisfy the demand. As such, while analyzing a performance bottleneck, it is necessary to find out where in a system the queues are building up and exceeding the acceptable thresholds. Because instantaneous counts of the queue lengths do not depend on implementation of a system timekeeping mechanism, monitoring resource queues delivers representative performance metrics for virtualized environments. 
A performance impact of resource sharing depends on the specifics of application and VMs deployments on a physical server. 
A physical server can host single application installed on a few VMs as shown on Figure 2. A transaction that has to be processed on all tiers (Web, Application, and Database), will travel among different VMs. A transaction transition between VMs increases transaction response time because of delays in time slice allocations to each VM. In such a deployment the application software components residing on different VMs compete for shared host resources. 
Another deployment schema features a few applications each one fully installed on a dedicated VM (Figure 3). 
Figure 3. Conceptual model of multiple applications deployment on one physical host 
The conceptual model implies that, in this case, a full cycle of a transaction processing can occur during single time slice minimizing transaction waits for time slices. Still there is a competition for shared resources; however, in this case it is among different applications, but not the software components of the same application.
Conclusions 
The conceptual models expose application fundamentals distilled of innumerable application particulars that conceal the roots of performance issues. The value of conceptual models for performance analysis is confirmed by the following judgments that are based on examination of the article’s models: 
- A transaction delay can be caused by two circumstances – a shortage of an active resource capacity and a limited access to an active resource because of the shortage of passive resources. 
- A shortage of the passive resources causes underutilization of the active resources. 
- To identify where the bottlenecks can take place, we have to monitor not only active resources, but also passive resources. 
- In virtual environment a time slice gets allocated to a VM only when a demand from VM for a specific shared resource is met by the resource availability. If that is not the case, than VM will wait and will not process transaction. 
- Reported by VM time-dependent performance metric is not representative since a guest VM misses time interval counts. 
- Because instantaneous counts of the queue lengths do not depend on implementation of a system timekeeping mechanism, monitoring resource queues delivers representative performance metrics for virtualized environments. 
Application queuing models 
The application conceptual models are indispensable instruments streamlining performance analysis. The conceptual models point to the facts that performance degradation happens when a resource does not have sufficient capacity or access to the resource is limited. In both cases processing of a transaction will be delayed as transaction will be placed into a waiting queue. 
Queuing is a major phenomenon defining application performance, but conceptual models cannot quantitatively asses its impact. If we want the numerical estimates of architecture that delivers application performance according to a service level agreement, we have to build upon application conceptual models their queuing models. The book [3] can be a guide in that journey. 
1. VMware document: “Timekeeping in VMware Virtual Machines” http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf 
2. Bernd Harzog. “White Paper: Application Performance Management for Virtualized and Cloud based Environments” http://www.virtualizationpractice.com/blog/wp-content/plugins/downloads- manager/upload/APM_for_Virtualized_and_Cloud_Hosted_Applications.pdf
3. Leonid Grinshpan. Solving Enterprise Applications Performance Puzzles: Queuing Models to the Rescue, Wiley-IEEE Press; 1 edition, 2012 (http://tinyurl.com/7hbalv5)

More Related Content

PPT
Model based transaction-aware cloud resources management case study and met...
PDF
Performance testing wreaking balls
PDF
Introduction to enterprise applications capacity planning
PDF
Enterprise applications in the cloud - are providers ready?
PDF
Methodology of enterprise application capacity planning by real life examples
PDF
Methodology Of Enterprise Applications Capacity Planning
PDF
20150113
DOCX
High level design document template
Model based transaction-aware cloud resources management case study and met...
Performance testing wreaking balls
Introduction to enterprise applications capacity planning
Enterprise applications in the cloud - are providers ready?
Methodology of enterprise application capacity planning by real life examples
Methodology Of Enterprise Applications Capacity Planning
20150113
High level design document template

What's hot (19)

PDF
Algorithm for Scheduling of Dependent Task in Cloud
PDF
Get more out of cloud with astructured workload analysis
PDF
Martin Chamambo - High Level Design-SDN BASED OPENSTACK IMPLEMENTATION IN ZIM...
DOCX
Client server computing_keypoint_and_questions
PDF
MANAGING S/W DESIGN CHANGES USING C.R. DESIGNER
PDF
Informatica push down optimization implementation
PDF
Optimizing the Cloud Infrastructure for Enterprise Applications
PDF
Client server computing
PDF
Solving big data challenges for enterprise application
PDF
VRSN_Top5_DTM_WP_201404-web[1]
PPT
Scalable scheduling of updates in streaming data warehouses
PDF
Cometari Dedicated Solutions General Offer
PDF
Software design
DOC
Case Study For Replication For PCMS
PPTX
Copy of sec d (2)
PDF
Changes in Necessities Trade After Migrating to the SaaS Model
DOCX
Informatica
Algorithm for Scheduling of Dependent Task in Cloud
Get more out of cloud with astructured workload analysis
Martin Chamambo - High Level Design-SDN BASED OPENSTACK IMPLEMENTATION IN ZIM...
Client server computing_keypoint_and_questions
MANAGING S/W DESIGN CHANGES USING C.R. DESIGNER
Informatica push down optimization implementation
Optimizing the Cloud Infrastructure for Enterprise Applications
Client server computing
Solving big data challenges for enterprise application
VRSN_Top5_DTM_WP_201404-web[1]
Scalable scheduling of updates in streaming data warehouses
Cometari Dedicated Solutions General Offer
Software design
Case Study For Replication For PCMS
Copy of sec d (2)
Changes in Necessities Trade After Migrating to the SaaS Model
Informatica
Ad

Similar to Conceptual models of enterprise applications as instrument of performance analysis (20)

PDF
Enterprise applications in the cloud: a roadmap to workload characterization ...
PDF
Performance Requirements: CMG'11 slides with notes (pdf)
PPTX
Microservices why?
PDF
Application-Servers.pdf
PDF
Distributed Systems in Data Engineering
PDF
A survey on various resource allocation policies in cloud computing environment
PDF
A survey on various resource allocation policies in cloud computing environment
DOCX
Unit iii for PG PAWSN
PDF
DYNAMIC ALLOCATION METHOD FOR EFFICIENT LOAD BALANCING IN VIRTUAL MACHINES FO...
PPT
C-System Models Presentation files .ppt
PDF
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
PDF
Using Semi-supervised Classifier to Forecast Extreme CPU Utilization
PDF
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
PDF
An Overview of Workflow Management on Mobile Agent Technology
PPTX
Microservices architecture
PDF
PDF
System analysis and_design.docx
DOCX
Performance testing tool
DOC
Distributed Computing Report
DOCX
Differences Between Architectures
Enterprise applications in the cloud: a roadmap to workload characterization ...
Performance Requirements: CMG'11 slides with notes (pdf)
Microservices why?
Application-Servers.pdf
Distributed Systems in Data Engineering
A survey on various resource allocation policies in cloud computing environment
A survey on various resource allocation policies in cloud computing environment
Unit iii for PG PAWSN
DYNAMIC ALLOCATION METHOD FOR EFFICIENT LOAD BALANCING IN VIRTUAL MACHINES FO...
C-System Models Presentation files .ppt
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
Using Semi-supervised Classifier to Forecast Extreme CPU Utilization
USING SEMI-SUPERVISED CLASSIFIER TO FORECAST EXTREME CPU UTILIZATION
An Overview of Workflow Management on Mobile Agent Technology
Microservices architecture
System analysis and_design.docx
Performance testing tool
Distributed Computing Report
Differences Between Architectures
Ad

More from Leonid Grinshpan, Ph.D. (8)

PDF
Enterprise applications in the cloud: analysis of pay-per-use plans
PDF
Solving enterprise applications performance puzzles queuing models to the r...
DOC
Enterprise application in the cloud – virtualized deployment
PDF
Enterprise applications in the cloud: improving cloud efficiency by transacti...
PDF
Beyond IT optimization there is a (promised) land of application performance ...
PDF
Enterprise applications in the cloud: non-virtualized deployment
PDF
Queuing model based load testing of large enterprise applications
PPT
Methodology of virtual machines sizing
Enterprise applications in the cloud: analysis of pay-per-use plans
Solving enterprise applications performance puzzles queuing models to the r...
Enterprise application in the cloud – virtualized deployment
Enterprise applications in the cloud: improving cloud efficiency by transacti...
Beyond IT optimization there is a (promised) land of application performance ...
Enterprise applications in the cloud: non-virtualized deployment
Queuing model based load testing of large enterprise applications
Methodology of virtual machines sizing

Recently uploaded (20)

PDF
Capcut Pro Crack For PC Latest Version {Fully Unlocked 2025}
PDF
Transcultural that can help you someday.
PDF
Tetra Pak Index 2023 - The future of health and nutrition - Full report.pdf
PPTX
DS-40-Pre-Engagement and Kickoff deck - v8.0.pptx
PPTX
retention in jsjsksksksnbsndjddjdnFPD.pptx
PPTX
Introduction to Inferential Statistics.pptx
PPTX
modul_python (1).pptx for professional and student
PPTX
Business_Capability_Map_Collection__pptx
PDF
OneRead_20250728_1808.pdfhdhddhshahwhwwjjaaja
PPTX
Lesson-01intheselfoflifeofthekennyrogersoftheunderstandoftheunderstanded
PPTX
Phase1_final PPTuwhefoegfohwfoiehfoegg.pptx
PPTX
Managing Community Partner Relationships
PPTX
QUANTUM_COMPUTING_AND_ITS_POTENTIAL_APPLICATIONS[2].pptx
PPTX
Steganography Project Steganography Project .pptx
PDF
Jean-Georges Perrin - Spark in Action, Second Edition (2020, Manning Publicat...
PPTX
Leprosy and NLEP programme community medicine
PPTX
Topic 5 Presentation 5 Lesson 5 Corporate Fin
PPTX
(Ali Hamza) Roll No: (F24-BSCS-1103).pptx
PPTX
STERILIZATION AND DISINFECTION-1.ppthhhbx
PPTX
SAP 2 completion done . PRESENTATION.pptx
Capcut Pro Crack For PC Latest Version {Fully Unlocked 2025}
Transcultural that can help you someday.
Tetra Pak Index 2023 - The future of health and nutrition - Full report.pdf
DS-40-Pre-Engagement and Kickoff deck - v8.0.pptx
retention in jsjsksksksnbsndjddjdnFPD.pptx
Introduction to Inferential Statistics.pptx
modul_python (1).pptx for professional and student
Business_Capability_Map_Collection__pptx
OneRead_20250728_1808.pdfhdhddhshahwhwwjjaaja
Lesson-01intheselfoflifeofthekennyrogersoftheunderstandoftheunderstanded
Phase1_final PPTuwhefoegfohwfoiehfoegg.pptx
Managing Community Partner Relationships
QUANTUM_COMPUTING_AND_ITS_POTENTIAL_APPLICATIONS[2].pptx
Steganography Project Steganography Project .pptx
Jean-Georges Perrin - Spark in Action, Second Edition (2020, Manning Publicat...
Leprosy and NLEP programme community medicine
Topic 5 Presentation 5 Lesson 5 Corporate Fin
(Ali Hamza) Roll No: (F24-BSCS-1103).pptx
STERILIZATION AND DISINFECTION-1.ppthhhbx
SAP 2 completion done . PRESENTATION.pptx

Conceptual models of enterprise applications as instrument of performance analysis

  • 1. Conceptual Models of Enterprise Applications as Instrument of Performance Analysis Leonid Grinshpan, PhD The article introduces enterprise applications conceptual models that uncover performance related fundamentals distilled of innumerable application particulars concealing the roots of performance issues. The value of conceptual models for performance analysis is demonstrated on two examples of virtualized and non-virtualized applications conceptual models. In the course of performance analysis of enterprise applications the biggest challenge to overcome is their tremendous complexity. Today’s distributed applications are comprised of the tanglewoods of physical and logical objects interacting in a very intricate manner. The applications implement multiple rules, algorithms, and protocols while serving communities of concurrent users generating fluctuating workloads. That makes application performance analysis extremely cumbersome and time consuming, particularly taking into account that each enterprise application features hundreds of tuning parameters on system and application levels. System level tuning parameters define the management policies of the operating systems. Microsoft offers 112 pages document “Performance Tuning Guidelines for Windows Server 2008 R2” (http://tinyurl.com/qx4v4gy). AIX operating system tuning guide by IBM is even fattier – it has 744 pages (http://tinyurl.com/o3b66o8). Application tuning parameters control allocation of system resources as well as configurations of application internal logical objects like software threads, connection pools, etc. Application vendors publish various tuning documents to help optimize their products. A few examples are: “Oracle® Fusion Middleware Performance and Tuning Guide” (http://tinyurl.com/kurmd9p), “Oracle® JRockit Performance Tuning Guide” (http://tinyurl.com/mggv55j), “Oracle® Fusion Middleware Performance and Tuning for Oracle WebLogic Server” (http://tinyurl.com/panje7g). All publications expose broad assortments of tuning variables, but do not provide any methodological guidance on efficient and targeted execution of performance tuning activities. Is it possible to perceive an application in a way that scales down its complexity (similar to taking an aerial view of the Earth)? In other words, can we conceptualize an application to abstract from numerous details and concentrate only on its objects and their relationships that reveal performance related cause-effect connections?
  • 2. This article provides a positive answer by advocating enterprise application conceptual modeling as an instrument of application performance analysis. Application conceptual model exposes the relations between demand for services generated by transactional workload and supply of system resources that intended to satisfy such a demand. By devising a conceptual model we mentally leap into specific perspective on application; that perspective highlights system resources, their capacities, as well as demand for system resources from transactional workload. The representations of the conceptual models can differ (charts, tables, matrixes, text descriptions, pictures), but they all include the constructs describe in the next paragraph. Conceptual model constructs We need the following constructs to build the conceptual models that enable application performance analysis 1. Transactions – characterize user requests for application services. If we visualize a transaction as a physical object (for example, a car), we can create in our mind an image of a car-transaction visiting different system servers and spending some time in each one while being processed. The transaction examples are: - Login - Financial Report - Activity Report - Data transformation - Business rule execution 2. Resources – each system hardware component (servers, appliances, networking equipment) allocates its resources to transaction processing. In general, each component has the following assets to be allocated: Active resources: - CPU time (data processing) - I/O time (data transfer) - Network time (data transfer) Passive resources: - Software connections (for example, Web server connections, database connections) - Software threads - Storage space - Memory space - Software locks Active resources implement actual transaction processing and data transfer. Passive resources provide access to active resources. A consumption of an active resource by a single transaction
  • 3. is measured by the time interval it was serving a transaction. A metric for a passive resource usage by a single transaction depends on a passive resource type: for software connections and threads it is a number of connections and threads; for memory and storage it is a size of allocated memory. A transaction waits for a resource when other transactions consume all resource capacity. 3. Physical nodes - symbolize physical servers, appliances, and networks. One physical node consists of active and passive resources of one physical server. Each resource has a queue where transactions are waiting while that resource is unavailable. Physical node 4. Virtual nodes - represent virtual machines (VM). One virtual node consists of one VM passive resources and a block indicating a waiting period for a time slice to be allocated to VM by a host’s hypervisor. VM is not running when it is waiting for a time slice. Virtual node 5. Nodes with shared hardware resources – a depiction of a physical host shared active and passive resources: Node with shared active resources
  • 4. 6. Transaction-resource matrix (TR matrix) - defines active and passive resources each transaction receives the services from while being processed by application. As an example, in a matrix below a character “X” identifies the resources of three-tiered application consumed by each transaction. Active and passive resources for each hardware component Transactions Web server Application server Database server Network Load balancing appliance CPU Connections CPU Threads Memory CPU Connections I/O system Networking hardware CPU Login X X X X Financial Report X X X X X X X X X X Activity Report X X X X X X X X X X Data transformation X X X X X X Business rule execution X X X X X X Transaction-resource matrix (TR matrix) 7. Users – the source of transactional workload. An application has to have sufficient resource capacity to process transactional workload according to required service level. We can picture an interaction between users and application as below (the cars are transactions metaphors): User interaction with application The user-generated transactions are processed by the application; after completion the results are delivered back to the user. Between two subsequent transactions generated by the same user there is a time interval (called a “user think time”) that defines an intensity of transactional flow.
  • 5. Conceptual models of non-virtualized and virtualized deployments Using described constructs, we can model non-virtualized three-tiered application as shown on Figure 1. The application consists of Web, Application, and Database servers; each one is hosted on dedicated physical hardware. Figure 1. Conceptual model of multi-tiered non-virtualized application A transaction starts its journey when a user clicks on a menu item or a link that implicitly initiates a transaction. In a model it means that a transaction leaves a block “users”. After that it gets processed in the nodes “WEB server”, “Application server”, “Database server”. Each transaction will request passive and active resources as described in TR matrix. If any of the needed resources is not available, a transaction will wait in the queues. At the end of its journey a transaction comes back to a user. The total time a transaction has spent in all nodes is a transaction response time. The model makes obvious that this time has two components: a processing time by the active resources and a waiting time for the passive and active resources. A conceptual model of the same three-tiered virtualized application deployed on one physical host can be seen on Figure 2.
  • 6. Figure 2. Conceptual model of multi-tiered virtualized application Two major differences between non-virtualized and virtualized deployments our conceptual models highlight immediately: - A virtualized set up has resources shared among a number of VMs. - Each VM can use its own passive and host’s shared resources only when hypervisor allocates a time slice to VM. Those particulars of virtual deployment have profound performance implications we discuss in the next paragraph. Analyzing application performance using conceptual models Let’s consider what can cause a delay in a transaction processing in non-virtualized application deployment. As a conceptual model on Figure 1 suggests, a transaction delay can be cause by two circumstances – a shortage of an active resource capacity and a limited access to an active resource because of the shortage of passive resources. For example, in order to process a transaction in a server’s CPUs, an application has to request and to receive a particular memory space. But what will happen if a memory is not available? Obviously, a transaction will wait in a queue. This means that a transaction processing is delayed as a result of a limited access to CPUs even if they are not fully utilized. In general, a shortage of the passive resources causes underutilization of the active resources.
  • 7. To identify where the bottlenecks can potentially take place, we have to monitor not only active resources, but also the passive resources. Among latter there are physical ones (memory and disk space), as well as the logical programmatic objects (software threads, connection pools, locks, semaphores, etc.). Monitoring passive programmatic resources requires knowledge of application architecture and software internal logistics. The model on Figure 1 reveals that the bottlenecks in our application might happen when there are insufficient CPU and I/O capacities in Web, Application, and Database servers, as well as when the servers have limited memory, application spawns insufficient software threads, or connection pools are poorly tuned. Indeed, low network throughput also can cause the bottlenecks. Performance ramifications of sharing time and resources in virtualized environments The conceptual models of virtualized deployment feature the time slice constructs as well as the resources shared among VMs hosted on the same physical host. The time slice constructs point to the very important fact that, in order for a VM to process transactions, it has to receive from the host’s hypervisor particular time interval to get an access to host’s physical hardware. The time slice allocation algorithms vary among virtual platform from different vendors. But the commonality among all algorithms is that a time slice gets allocated to a VM only when a demand from VM for a specific shared resource is met by resource availability. If that is not the case, than VM will wait and will not process transaction. One significant implication of a host’s hardware time sharing is a flawed timekeeping by VMs. A detailed discussion can be found in [1, 2]; here we just point at its fundamental reason: in a virtual environment hypervisor treats guest VM as a process that can be stopped and resumed at any time. When guest VM is stopped, it cannot accept and count time interrupts from a hardware clock. That means guest VM misses time intervals which makes reported by VM time-dependent performance metric not representative. That affects the most popular performance counter groups: - The counters reporting utilization of system resources during some time interval (for example, percent of total CPU utilizations, percent of CPU utilization by particular process, percent of physical disk utilization). - Resource throughput measured in a number of operations executed by a resource during particular time interval (for example, network throughput measured in bytes/second, number of I/O Reads/second). Taking into consideration this fact, what are the right performance counters to monitor in virtualized environments? To find it out let’s refer to our conceptual model on Figure 2. Each resource depicted on the model has a waiting queue; acquiring a time slice also requires VM to wait in a queue. The queues are the major phenomenon defining system performance, because waiting time in the queues adds up to the time a transaction is processed by system resources. A queue is an indicator of imbalance
  • 8. between demand generated by fluctuating user’s workload and availability of system’s resources to satisfy the demand. As such, while analyzing a performance bottleneck, it is necessary to find out where in a system the queues are building up and exceeding the acceptable thresholds. Because instantaneous counts of the queue lengths do not depend on implementation of a system timekeeping mechanism, monitoring resource queues delivers representative performance metrics for virtualized environments. A performance impact of resource sharing depends on the specifics of application and VMs deployments on a physical server. A physical server can host single application installed on a few VMs as shown on Figure 2. A transaction that has to be processed on all tiers (Web, Application, and Database), will travel among different VMs. A transaction transition between VMs increases transaction response time because of delays in time slice allocations to each VM. In such a deployment the application software components residing on different VMs compete for shared host resources. Another deployment schema features a few applications each one fully installed on a dedicated VM (Figure 3). Figure 3. Conceptual model of multiple applications deployment on one physical host The conceptual model implies that, in this case, a full cycle of a transaction processing can occur during single time slice minimizing transaction waits for time slices. Still there is a competition for shared resources; however, in this case it is among different applications, but not the software components of the same application.
  • 9. Conclusions The conceptual models expose application fundamentals distilled of innumerable application particulars that conceal the roots of performance issues. The value of conceptual models for performance analysis is confirmed by the following judgments that are based on examination of the article’s models: - A transaction delay can be caused by two circumstances – a shortage of an active resource capacity and a limited access to an active resource because of the shortage of passive resources. - A shortage of the passive resources causes underutilization of the active resources. - To identify where the bottlenecks can take place, we have to monitor not only active resources, but also passive resources. - In virtual environment a time slice gets allocated to a VM only when a demand from VM for a specific shared resource is met by the resource availability. If that is not the case, than VM will wait and will not process transaction. - Reported by VM time-dependent performance metric is not representative since a guest VM misses time interval counts. - Because instantaneous counts of the queue lengths do not depend on implementation of a system timekeeping mechanism, monitoring resource queues delivers representative performance metrics for virtualized environments. Application queuing models The application conceptual models are indispensable instruments streamlining performance analysis. The conceptual models point to the facts that performance degradation happens when a resource does not have sufficient capacity or access to the resource is limited. In both cases processing of a transaction will be delayed as transaction will be placed into a waiting queue. Queuing is a major phenomenon defining application performance, but conceptual models cannot quantitatively asses its impact. If we want the numerical estimates of architecture that delivers application performance according to a service level agreement, we have to build upon application conceptual models their queuing models. The book [3] can be a guide in that journey. 1. VMware document: “Timekeeping in VMware Virtual Machines” http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf 2. Bernd Harzog. “White Paper: Application Performance Management for Virtualized and Cloud based Environments” http://www.virtualizationpractice.com/blog/wp-content/plugins/downloads- manager/upload/APM_for_Virtualized_and_Cloud_Hosted_Applications.pdf
  • 10. 3. Leonid Grinshpan. Solving Enterprise Applications Performance Puzzles: Queuing Models to the Rescue, Wiley-IEEE Press; 1 edition, 2012 (http://tinyurl.com/7hbalv5)