chapter 3_performance

PERFORMANCE
3.1 OVERVIEW
While the practicality delivered by a software system application is clearly necessary, it's not
the sole concern. Over its time period, the price of a software package is set additional by
however well it achieves its objectives for quality attributes like performance,
reliability/availability or maintainability than by its practicality.
This chapter focuses on software system systems that meet performance objectives.
Performance is that the degree to that a computer code or element meets its objectives for
timeliness. Thus, performance is any characteristic of a software package that you just might,
in theory, live by sitting at the pc with a timer in your hand.
There are two important dimensions to software performance:responsiveness and scalability
[Mullender 00]. Responsiveness is the ability of a system tomeet its objectives for response
time or throughput. In real-time systems,responsiveness is a measure of how fast the system
responds to an event, orthe number of events that can be processed in a given time. Scalability
is theability of a system to continue to meet its response time or throughputobjectives as the
demand for the software functions increases. Scalability isan increasingly important aspect of
today’s software systems [Menasce et al 10].Performance is crucial to the success of today’s
software package systems. However, several software package product fail to satisfy their
performance objectives once they square measure at first created. Fixing these issues is
expensive and causes schedule delays, price overruns, lost productivity, broken client
relations, incomprehensible market windows, lost revenues, and a bunch of alternative
difficulties [Pfisher 04]. In extreme cases, it should not be attainable to mend performance
issues while not in depth design and re-implementation. In those cases, the project either
becomes AN infinite sink for time and cash, or it is, mercifully, canceled. Performance can't
be retrofitted; it should be designed into software package from the start. The “make it run,
build it run right, build it run fast” approach is dangerous. Recent interest in software
architectures hasunderscored the importance of architecture in achieving software
qualityobjectives, including performance. While decisions made at every phase ofthe
22
development process are important, architectural decisions have thegreatest impact on quality
attributes such as modifiability, reusability,reliability, and performance [Boehm &In 05].
If the software execution model indicates that there are no problems,analysts proceed to
construct and solve the system execution model. Thismodel is a dynamic model that
characterizes the software performance in thepresence of factors, such as other workloads or
multiple users, which couldcause contention for resources [Aleti et al 09]. The results obtained
by solving the softwareexecution model provide input parameters for the system execution
model.Solving the system execution model provides the following additionalinformation:
– Refinement and clarification of the performance requirements
– More precise metrics that account for resource contention
– Sensitivity of performance metrics to variations in workload composition
– Identification of bottleneck resources
– Comparative data on options for improving performance via: workloadchanges, software
changes, hardware upgrades, and various combinationsof each
– Scalability of the architecture and design: the effect of future growth onperformance
– Identification of critical parts of the design
– Assistance in designing performance tests
– Effect of new software on service level objectives of other systemsThe system execution
model represents the key computer resources as anetwork of queues.
The Software Process Engineering (SPE) modeling process focuses on the system’s use cases
and thescenarios that describe them. Where use-case-driven processes such as the Unified
Process aredefined as part of requirements definition and are refinedthroughout the design
process. From a development perspective, use casesand their scenarios provide a means of
understanding and documenting thesystem’s requirements, architecture, and design. From a
performanceperspective, use cases allow you to identify the workloads that aresignificant
from a performance point of view, that is, the collections ofrequests made by the users of the
system. The scenarios allow you to derivethe processing steps involved in each workload.The
23
SPE process includes the following steps. The activity diagram inFigure 8 captures the overall
process.
3.1.1 Performance vs. Speed
A idea concerning performance is that it equates to speed—that is, the notion that poor
performance is salvaged just by victimization a lot of powerful processors or communication
links with higher information measure. Quicker may be higher, except for several systems
quicker isn't comfortable to attain timeliness. This is often notably true of period of time
systems. The target of “fast computing” would be to reduce the typical latent period for a few
clusters of services, whereas the target of period of time computing is to fulfill individual
temporal arrangement needs of every service. Moreover, hardware mechanisms such as
caching, pipelining and multithreading, which can reduce average response time, can make
worst-case response times unpredictable [Balsamo et al 04]. “Predictability, not speed, is the
foremost goal in real-time-system design”. In general, performance engineering is concerned
with predictable performance—whether it is worst-case or average-case performance,
Execution speed is only one factor [Gooijer 11].
24
Fig 8: Activity diagram of SPE
25
3.1.2 Taxonomy Abstract Performance Model
Besides the software development cycle to enhance the performance of the software process
through Performance Engineering Process as shown in figure 9.
Fig9: Performance Engineering Life Cycle
The performance of a system stems from the character of the resources accustomed fulfill
demands and the way shared resources area unit allotted once the multiple demands should be
administered on constant resources. this kind of drawback is understood as a programming
drawback and has been studied for years in analysis fields. For example, Conway [Conway
67].
Conway [Conway 67, p. 6] says a scheduling problem can describe by four types of
information:
1. Jobs and operations to be processed
2. Number and types of machines
3. Disciplines that prohibit the style within which assignments are often created
4. The factors by that the schedule are going to be evaluated
26
From a modeling purpose of read, Smith [Smith et al 02] describes 5 kinds of knowledge
required for constructing and evaluating computer code performance engineering models:
• Performance needs - quantitative needs outlined in terms of events of interest and temporal
arrangement constraints for responding to every event.
• Behavior patterns and intensity - the amount of event streams1 and also the worst-case and
steady-state arrival rates for every event stream
• Computer code descriptions - the computer code operations dead in response to events.
• Execution surroundings - the hardware devices and computer code services required to hold
out the said computer code operations.
• Resource usage estimates - resource needs for carrying computer code operations like
processor execution time, I/O demands or memory needs.The points of view of Conway and
Smith differ somewhat; nevertheless, both points of view call out
• Performance concerns, such as criteria for evaluating the schedule, and timing constraints for
responding to events
• Performance factors, such as
• Behavior patterns and intensity, resource usage, software descriptions, and jobs and
operations, which characterize system demand
• Execution environment and numbers and types of machines, which characterize the system
• Performance ways, like synthesis and analysis that draw upon queuing theory, programing
theory, and formal ways that area unit accustomed perceive the link between the factors and
also the considerations.
This is mirrored within the taxonomy shown in Figure 10.
27
Fig10: Performance Taxonomy
3.2 CONCERNS
The performance considerations (or requirements) accustomed specify and assess the
performance of the system area unit
• Latency - however long will it go for reply to a selected event?
• Output - what percentage events are often saw over a given interval of time?
Capacity - what proportion demand are often placed on the system whereas continued to fulfill
latency and output requirements?
• Modes - however will the demand and resources amendment over time? What happens once
system capability is exceeded and not all events are often saw during a timely manner?
28
3.2.1 Latency
Latency refers to a quantity throughout that the response to a happening should be dead. The
quantity defines a response window given by a point in time (minimum latency) associated an
ending time (maximum latency). These will either be nominal as absolute times (time of day,
for example) or offsets from a happening that occurred at some nominal time. The ending time
is additionally called a point in time. Latency sub-concerns include: precedence (a
specification for a partial or total ordering of event responses), interference (the variation
within the time a computed result's output to the external setting from cycle to cycle), and
criticality (the importance of the perform to the system).
3.2.2 Throughput
Throughput refers to the quantity of event responses that are completed over a given
observation interval [Liu et al 05]. This definition suggests that it's not ample to only specify a
process rate, however that one or additional observation intervals ought to even be nominal.
for instance, a system which will method a hundred and twenty transactions each hour may
not guarantee that two transactions are processed each minute. maybe no transactions square
measure processed throughout the primary half-hour and every one of the transactions square
measure processed throughout the remaining half-hour.
3.3 FACTORS AFFECTING PERFORMANCE
Performance could be a perform of the demand placed on the system, the kinds of resources
employed by the system, and the way the system allocates those resources. Performance
factors represent the necessary aspects of the system and its setting that influence the
performance considerations. There square measure setting performance factors (demand) and
system performance factors.
• demand - what number events streams square measure there? What square measure the
arrival rates related to every event stream? what's the resource usage related to responding to
every event?
• system - What square measure the properties of the computer hardware accustomed allotted
resources, the properties of the code operations that comprise the responses to events and also
the relationships between responses?
29
3.3.1 Demand
Demand may be a characterization of what quantity of a resource is required. Demand may be
thought of in terms of what quantity utilization a selected event needs. However, it's helpful to
think about demand in terms of
• Arrival pattern for every event stream and
• Execution time necessities for responding to every event
The arrival pattern and execution time ar vital since these ar 2 items of data which will be
utilized by programming theory and/or queuing theory for predicting latency and/or output.
The arrival pattern is either periodic or nonperiodic.
• Periodic arrivals occur repeatedly at regular intervals of your time.
• Nonperiodic arrivals occur repeatedly at irregular time intervals.
The frequency of arrival may be finite by a minimum separation (also referred to as sporadic)
or may be completed random. For execution times, the worst-case and best-case execution
times may be wont to facilitate outline boundary-case behavior. Queuing supposed techniques
specify execution times mistreatment chance distribution functions.
3.3.2 System
Resources comprise a system and ar required to hold out event responses. we predict of the
system in terms of
• Kinds of resources
• Computer code services for managing resources
• Resource allocation
Common resource varieties are: computer hardware, memory, I/O device, backplane bus,
network, and knowledge object. Related to every form of resource there ar computer code
services for managing the employment of the resource and resource allocation policies. it's on
the far side the scope of this paper to debate all of those resource varieties. we are going to
specialize in operative systems services and computer hardware programming. A primary
30
issue that influences the issues of performance is that the computer code services that are
provided to assign resources and to supply an interface to resources. These computer code
services are sometimes provided by the OS. For this discussion we are going to focus our
attention on period operative systems, since period operative systems are expressly involved
with time and so serve to spotlight a number of the vital problems.
3.4 METHODS
Methods to attain performance embrace the following:
Synthesis—methods won’t to synthesize (such as period style methodologies) a system or
Smith’s computer code performance engineering philosophy as mentioned in [Smith 90].
Analysis—techniques wont to analyze system performance like queuing analysis and
programming analysis.
3.4.1 Synthesis
Smith [Smith et al 02, p. 14] advocates a philosophy of computer code performance
engineering supposed to enhance instead of supersede alternative computer code engineering
methodologies. The goal is to hold out the elemental engineering steps of understanding,
creating, representing and evaluating, however to enhance these steps with an exact attention
paid to performance. This manifests itself in developing models to represent the performance
of the system early, and continuous analysis of the performance of the system because it
evolves.
3.4.2 Analysis
Performance analysis strategies appear to possess adult out of 2 separate faculties of thought,
queuing theory and programming theory.
Queuing theory — queuing theory may be wont to model systems joined or a lot of service
facilities that perform services for a stream of inbound customers. Every arrival stream of
shoppers is delineate employing a model. Every service facility contains a server and a queue
for waiting customers. Service times for patrons also are delineating mistreatment random
processes. Queuing analysis is usually involved with average case combination behaviors —
which is suitable for performance capability coming up with and management data systems, as
an example. However, once worst-case behavior is of interest, programming analysis can be a
lot of acceptable.
31