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.
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.
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.
Modeling Systems & Forecasting Performance : To teach yourself the concepts of Performance Modeling & to experience how easy Forecasting System Performance could be, please visit VisualizeIT.
Hope you’ve enjoyed the content at Practical Performance Analyst. Please send me an email with your thoughts, inputs comments and feedback at trevor at practical performance analyst dot com.