2.3 Performance Modelling and Prediction
2.3.3 Performance Prediction Methods
In figure 2.10, a transformation transforms the annotated design model into a QoS pre- diction model. In case of performance predictions, several performance modelling for- malisms exist. The following gives a brief overview on the most important ones, i.e., Queuing Networks, Stochastic Process Algebras, and Stochastic Petri-nets.
Queuing Networks The most important formalism for performance prediction is likely
queueing network theory. In fact, most recent performance prediction methods as sur- veyed byBalsamo et al.(2004a) use queueing networks. In queueing networks, queues and their service centres represent processing resources which process workpackages or jobs queuing for service. Jobs travel through a network of service centres using prob- abilistic routes. The result of a queueing network analysis gives the average response time of the overall system, waiting times for queues, average queue length, and server utilisation. An example queuing network is depicted in figure 2.11. The network has a closed workload. A delay server models the think time of the users (indicated by the clock at the bottom). After a processing step on the CPU, jobs either use a hard-drive with a probability of 30% or a network resource with a probability of 70%.
0.3
0.7 CPU
HDD
NET
Figure 2.11: An example Queuing Network
For a certain class of queuing networks (namely product form queuing networks) an- alytical methods exist, which compute the results precisely in very short time. However, this class is rather restrictive and does not reflect real computer systems in many cases be- cause of its strong assumptions. For example, many realistic scheduling disciplines like priority queues cause a queuing network to be not in product form. For this, the class of extended queuing networks exists which can be solved by iterative methods like the Mean-Value-Analysis (MVA) (Bolch et al., 1998a) or by means of simulation (depending on their assumptions).
The complexity of a queuing network depends on the characteristics of the service centres and the assumptions on the jobs. Each service centre has at least a specification on its service time, the number of servers, and the queuing policy. Service times can be deterministic (constant), exponentially distributed or arbitrary distributed. The number of servers is a natural number greater or equal one. The queuing policy determines the order of job processing. Common in computer systems are First-In, First-Out (FIFO) and processor sharing queuing policies. A FIFO queue processes jobs in their order of arrival. A queue with processor sharing processes each job in its queue for a certain amount of time after which it switches to the next job.
For the jobs processed by the network a specification of their arrival rate and job classes is needed. The arrival rate can again be deterministic, exponential or arbitrary distributed. It characterises how many jobs arrive in a given timeframe. Job classes parti- tion the jobs into different types. Each type may specify a different service time demand for the servers in the network. Additionally, jobs can have distinct priorities which allow them to enqueue at a server’s queue in front of jobs having a smaller priority.
For some combinations of queues and jobs analytical solutions exist. Many of these classes use exponential distributions. Exponential distributions are ”memory-less”, i.e., the remaining processing time is independent of the job’s state which ease their analysis. Nevertheless, the memory less assumption must be tested for when applying this class of queuing networks. For networks where arrival rates and service times are generally distributed, no analytical solution is known. The only known methods apply simulation techniques.
An important tool using queuing networks is the SPEED tool (see also (Smith and
Williams, 1997)) which implements the SPE method as introduced bySmith(1990). It is
used in the experimental setting decribed in section5.2. Therefore, the following briefly introduces it.
In SPEED software designers specify two models: a software execution model using software execution graphs and a hardware model. The software execution model mod- els a performance critical scenario of the system under consideration. It supports control flow constructs like forks, branches, backward jumps, and several call types. Actions in the execution graph can issue demands to the system’s resources in hardware indepen- dent units. The hardware model gives the processing rate of the resources. The combi- nation of the software and hardware model finally gives hardware dependent execution times by multiplying the demands with the processing rates. The SPEED tool transforms both models into a queuing network automatically. The transformation derives for this routing probabilities, arrival rates, servers, etc. from the input models. Depending on the complexity of the result model, SPEED chooses either an analytical method or a simula-
tion based-approach to get the results. Feedback is given to the software developer by different colours highlighting spots in the scenario which are performance critical.
Several enhancements for queuing networks exist, because of their popularity. Most notably for software modelling is the extension of queuing networks by layers. In lay- ered queuing networks (LQNs) as introduced byWoodside et al.(1995), servers can issue requests to other servers during the processing of a job for their client. In LQNs software entities and hardware entities are nodes in an acyclic graph. This graph represents the dependencies of the nodes during job processing. Arrows going from one node to other nodes indicate that during the processing of a job on the source node, the target nodes are used. Consequently, hardware nodes only have incoming arrows as they process their jobs directly. As for queuing networks, tools exist which solve LQNs either analytical or by means of simulation depending on the underlying assumptions.
Stochastic Process Algebras Based on general process algebras like CCS developed by
Milner (1980), extensions for performance prediction exist which introduce stochastic
time demands for the actions of the algebra. The advantage of using a process algebra is the possibility to specify the (possibly concurrent) behaviour of the processes in more detail. Compared to queuing networks where the routes of the jobs in the network are usually probabilistic, the processes of a process algebra behave according to the seman- tics of the algebra. This also allows formal analysis of additional system properties like deadlock freedom.
Early extensions used annotations on the actions of the algebra to denote exponential distributed time demands of the actions. Examples for such algebras are TIPP (G ¨otz et al.,
1992), PEPA (Hillston, 1996), or EMPA (Bernardo and Gorrieri, 1998). For an analysis, the process specifications are transformed into Markov chains exploiting the memoryless property of the exponential distribution.
More recent process algebras like MoDeST (Bohnenkamp et al.,2006) or SPADES (Har-
rison and Strulo, 2000) also deal with general distributed time consumptions. Again,
models based on general distributions can not be solved analytically resulting in a need for a simulation based evaluation tool.
Stochastic Petri-Nets Enhancements exist for Petri-nets as introduced by Petri (1962)
which enable performance predictions based on Petri-net models. A Petri-net consists of a set of places and transitions, which are traversed by tokens. Transitions remove and add tokens on places whenever they fire. Transitions are active whenever more tokens are on all places affected by the transition as required by the transition’s specification. Among all active transitions one is selected to fire resulting in the final change of the Petri-net’s
state. Petri-nets are well suited to analyse concurrent behaviour and according properties like deadlock freedom.
Stochastic enhancements (Ajmone Marsan et al., 1989) add exponential distributed activation times to transitions which specify a minimum time which has to pass at least for the transition to fire again. Additionally, probabilistic routing of the tokens can be specified. As with stochastic process algebras, stochastic Petri-nets rely on Markov chains offering the already discussed capabilities.