Cloud Computing Chapter-11
Cloud Computing Chapter-11
Cloud Application
Benchmarking & Tuning
• Trace Collection/Generation
• The first step in benchmarking cloud applications is to collect/generate traces of real application workloads. For
generating a trace of workload, the application is instrumented to log information such as the requests submitted
by the users, the time-stamps of the requests, etc.
• Workload Modeling
• Workload modeling involves creation of mathematical models that can be used for generation of synthetic
workloads.
• Workload Specification
• Since the workload models of each class of cloud computing applications can have different workload attributes, a
Workload Specification Language (WSL) is often used for specification of application workloads. WSL can provide a
structured way for specifying the workload attributes that are critical to the performance of the applications. WSL
can be used by synthetic workload generators for generating workloads with slightly varying the characteristics.
• Synthetic Workload Generation
• Synthetic workloads are used for benchmarking cloud applications. An important requirement for a synthetic
workload generator is that the generated workloads should be representative of the real workloads.
• Empirical approach
• In this approach traces of applications are sampled and replayed to generate the synthetic workloads.
• The empirical approach lacks flexibility as the real traces obtained from a particular system are used
for workload generation which may not well represent the workloads on other systems with different
configurations and load conditions.
• Analytical approach
• Uses mathematical models to define the workload characteristics that are used by a synthetic
workload generator.
• Analytical approach is flexible and allows generation of workloads with different characteristics by
varying the workload model attributes.
• With the analytical approach it is possible to modify the workload model parameters one at a time
and investigate the effect on application performance to measure the application sensitivity to
different parameters.
• Session
• A set of successive requests submitted by a user constitute a session.
• Inter-Session Interval
• Inter-session interval is the time interval between successive sessions.
• Think Time
• In a session, a user submits a series of requests in succession. The time interval between two successive
requests is called think time.
• Session Length
• The number of requests submitted by a user in a session is called the session length.
• Workload Mix
• Workload mix defines the transitions between different pages of an application and the proportion in
which the pages are visited.
The most commonly used performance metrics for cloud applications are:
• Response Time
• Response time is the time interval between the moment when the user submits a request to the
application and the moment when the user receives a response.
• Throughput
• Throughput is the number of requests that can be serviced per second.
• Accuracy
• Accuracy of a benchmarking methodology is determined by how closely the generated synthetic workloads mimic
the realistic workloads.
• Ease of Use
• A good benchmarking methodology should be user friendly and should involve minimal hand coding effort for writing
scripts for workload generation that take into account the dependencies between requests, workload attributes, for
instance.
• Flexibility
• A good benchmarking methodology should allow fine grained control over the workload attributes such as think
time, inter-session interval, session length, workload mix, for instance, to perform sensitivity analysis.
• Sensitivity analysis is performed by varying one workload characteristic at a time while keeping the others constant.
• Wide Application Coverage
• A good benchmarking methodology is one that works for a wide range of applications and not tied to the application
architecture or workload types.
• Baseline Tests
• Baseline tests are done to collect the performance metrics data of the entire application or a component of the application.
• The performance metrics data collected from baseline tests is used to compare various performance tuning changes which are
subsequently made to the application or a component.
• Load Tests
• Load tests evaluate the performance of the system with multiple users and workload levels that are encountered in the production
phase.
• The number of users and workload mix are usually specified in the load test configuration.
• Stress Tests
• Stress tests load the application to a point where it breaks down.
• These tests are done to determine how the application fails, the conditions in which the application fails and the metrics to monitor
which can warn about impending failures under elevated workload levels.
• Soak Tests
• Soak tests involve subjecting the application to a fixed workload level for long periods of time.
• Soak tests help in determining the stability of the application under prolonged use and how the performance changes with time.
• Deployment Refinement
• Deployments are refined based on the performance evaluations. Various alternatives can exist in this
step such as vertical scaling, horizontal scaling, for instance.