What Is Service Demand
Let’s start by taking a look at the definition of Service Demand.
Service Demand, Service Time and Visit Count are important metrics that describe system behavior and are used in analytical equations to model System Performance. Before we go ahead and define Service Demand we need to agree on the definition of Visit Count. So let’s start by taking a look at what Visit Count means in the context of System Performance.
What Is Visit Count
(V) – Visit count is the count of the total number of service requests a given Entity (Request) makes at a given System Resource. Visit counts will vary from business transaction to transaction. For example: Visit count for Order Submit at the Application Server is 10 and at the Database Server is 15.
Vapp = 10, Vdb = 15
Visit Count simply speaking is the total number of visits made by every Entity at a given System Resource. A System Resource in this case could either be a whole application tier or a component within an application tier i.e. cpu, memory, disk, network, etc.
What Is Service Demand
(D) – Service Demand is the total Service Time spent by a particular Entity at a given System Resource. As we have defined earlier, Service Time is simply the time taken to process a given Service Request. A System Resource in this case can be a computational resource, network resource, disk resource or a memory resource. A System Resource can also be a System Tier offering a particular application service which encapsulates computational, memory, disk, storage and network services behind it. Service Demand therefore depends on the total number of Visit Counts at a given System Resource.
Let us look at the System illustrated above. The image above depicts the following scenario:
- Arrival of an Entity
- Processing of the Entity by a System
- Entity making a Service Request at 3 different System Components i.e. C1, C2, C3
- Completion of the processing within the System and exit of the Entity from the System
The various system metrics we will need to consider are:
- Component C1, Service Time (S1), Visit Count (V1), Service Demand (D1)
- Component C2, Service Time (S2), Visit Count (V2), Service Demand (D2)
- Component C3, Service Time (S3), Visit Count (V3), Service Demand (D3)
The System we are looking at has three main components C1, C2 and C3. Each of these 3 components is load balanced internally and has 3 failover instances running. The Entity (Request) passing through the System makes requests at each of the various System Components C1, C2 and C3. The Service Demand for the given Entity (Request) at the various System Components can be defined as:
- D1 = V1 * S1…………. [ Service Time (S1), Visit Count (V1), Service Demand (D1) ]
- D2 = V2 * S2…………. [ Service Time (S2), Visit Count (V2), Service Demand (D2) ]
- D3 = V3 * S3 …………. [ Service Time (S3), Visit Count (V3), Service Demand (D3) ]
Also mathematically it can be proven that: Xmax <= 1/Dmax
The above equation basically tells us that the maximum System Throughput is Lesser than or Equal to the reciprocal of the maximum Service Demand.
Let’s look at application of the Service Demand concept using the following example:
Example – A business transaction issued by a user for the above system creates an Entity (Request) makes 10 requests at the first component with Service Time 3s, 15 requests at the second component with Service Time 4s and 20 requests at the third component with Service Time 5s. Determine the Service Demand at each of the System Components for the given Entity (Request). Also establish maximum system throughput.
- D1 = 10 * 3 = 30
- D2= 15 * 4 = 60
- D3= 20 * 5 = 100
Hence Xmax <= 1/100 <= 0.01. Xmax in this case is the maximum throughput that one can expect for the above system.
- Dr. Rajesh’s papers on Performance Testing and Performance Requirements Gathering
- Microsoft : Load Testing of Web Applications
- Microsoft : Patterns & Practices – Performance Testing Guidance
- The Server Side : Performance Engineering – A Practitioners approach to Performance Testing
- Dr. Connie Smith on Performance Engineering
- Dr. Rajesh Mansharamani on Performance Engineerirng
- Wikipedia on Performance Engineering
Hope you’ve enjoyed the content in this section at Practical Performance Analyst and have learnt something new. Please help us grow the community by taking a moment and sharing this content with rest of community using your preferred Social Media Platform (links provided below). We are looking for the bright spark and if you think you have what it takes to build and grow this community reach out to me by Sending us an email.
Trevor Warren is passionate about challenging the status-quo and finding reasons to innovate. Over the past 16 years he has been delivering complex systems, has worked with very large clients across the world and constantly is looking for opportunities to bring about change. Trevor constantly strives to combine his passion for delivering outcomes with his ability to build long lasting professional relationships. You can learn more about the work he does at LinkedIn. You can download a copy of his CV at VisualCV. Visit the Github page for details of the projects he’s been hacking with.