Just think about this for a moment – it’s just you and your
workstation. No contention. Introduce a server which hosts one or many
applications and can be accessed by one or many users simultaneously and you
are likely to get contention. Where
contention exists you get queuing and inevitably response times will suffer.
With UNIX/Linux virtualization we have two main concerns:
1) Will virtual
systems hosted on shared hardware (via Hypervisor) will impact one another?
2) What
additional overhead and impact on performance does requesting hardware resources
through a hypervisor cost?
To answer question 1, we have to understand what resources
each virtual machine is requesting at the same time. So it is prudent to produce performance
reports for each hosted VM.
Do they conflict with each other or complement each other? There are
virtualization tools that have been developed to keep VMs apart if they
conflict and together if they complement to improve performance.
To answer question 2, initial software virtualization techniques
such as Binary Translation allowed for existing x86 operating systems to be
virtualized. The hardware call request
had to go via the hypervisor thus adding on an additional overhead, somewhere
between 10-20% on average. As time
progressed a combination of hardware virtualization and paravirtualized
operating systems have reduced overhead and improved virtualized application
response times.
Paravirtualization is a virtualization technique that presents a
software interface to VMs that is similar, but not identical to that
of the underlying hardware. The intention is to reduce the guest's execution
time spent performing operations which are substantially more difficult to run
in a virtual environment compared to a non-virtualized environment. It provides
specially defined 'hooks' to allow the VMs and underlying host to request and
acknowledge these tasks, which would otherwise be executed in the virtual
domain (where execution performance is worse). A successful paravirtualized
platform may allow the virtual machine monitor (VMM) to be simpler
(by relocating execution of critical tasks from the virtual domain to the host
domain), and/or reduce the overall performance degradation of machine-execution
inside the virtual-guest.
To
produce and analyze the recommended performance reports we need to capture and
store performance data and I'll be discussing this on Monday.
Sign up to our Community where you'll gain access to some great white papers and downloads of our webinars
Jamie Baker
Principal Consultant
No comments:
Post a Comment