|
The following is a performance discipline to develop a consolidated virtualization benchmark. The steps are
serial in nature and provide a framework to help ensure a reasonable result.
Select workloads, performance metrics, thresholds, and weight factors.
We start with a complete definition of what work needs to be serviced, how we will measure how well the
system is meeting the requirement, and if there are any minimum requirements. Weight factors are developed to
ensure that resources are allocated in a manner that favors the most demanding workloads.
Sizing the platform and selecting the initial configuration.
Once the requirements are comprehended, initial selection of what platform, configuration, and virtualization
technologies (hardware and/or software virtualization, choice of VM implementation, etc.) will be made and
how the system will be set up will be decided. The initial platform capabilities can be approached in (at
least) two ways. One approach is to start with a platform with clearly more resources (CPU, RAM, network,
disk) in every dimension and iteratively reduce them until the right balance is achieved. Alternatively, you
can start with a configuration that is too low and add resources until the desired balance is achieved. The
former is much quicker and the latter is less expensive.
Define aggregation strategy (how the performance of the constituent workloads will map to an overall
performance metric).
This step allows the user to assign and refine the priorities of the different workloads and results that the
system-under-test (SUT) will deliver. By assigning weights that are most representative of the user-specific
requirements, user perceived improvements can be achieved as opposed to random shifts of resources and
workload impact that cannot be comprehended and exploited. It is also during this step that you must consider
the repeatability for each workload and whether you will observe and measure it in a transient or a steady
state and compensate for interactions between the constituent workloads.
Develop and iteratively refine the mapping of workloads-to-VMs and VMs-to-platform resources.
There are many resource decisions that will dramatically affect how well the system responds by workload. A
baseline mapping of these resource decisions would include how to map workloads to VMs and how to relate VMs
to system resources (cores, I/O, etc.). Some adjustments to the workloads may be motivated by some of the
resource decisions made here.
Tune each workload as if it was not virtualized and establish a baseline, then iteratively refine it
(optional step).
It is assumed that each workload is well understood in terms of having a performance discipline and that all
tuning steps are fully exploited. This almost always is the best starting point for characterization and
optimization of the consolidated virtualized environment. Where the two workloads that are being consolidated
have mutually exclusive configuration requirements, it may be best to use either some blending of both or use
the one that affects the most heavily weighted workload.
Measure the performance and aggregate it into a performance result.
A comparison to defined thresholds to see if the overall result is valid is conducted, and then the
performance of each workload is assessed and aggregated into a single metric.
Identify bottlenecks and attempt to shift resources, augment configuration, and optimize components as needed
to drive continuous improvement.
This step focuses on identifying bottlenecks, making configuration adjustments, and making other
modifications that help drive improvements in the aggregated performance result for the entire system. It
should be noted that there may be limitations in the performance monitoring tools available in a virtualized
environment.
Iterate as needed.
This better reflects the tuning and optimization that are usually part of any measurement process, and the
focus here is influenced by the difference between the requirement and measured result and the resources
available.
|