vCPU and vSMP – Hypervisor benchmarks

Un pò di tempo fà nell’analisi approfondità delle performance degli hypervisors ci trovammo di fronte ad un problema nativo del virtual Simmetric MultiProcessing (vSMP) che sarebbe un metodologia del Simmetric MultiProcessing (SMP), grazie alla quale possiamo assegnare ad una virtual machine più di una virtual CPU (vCPU).

Questa feature consentirebbe di dare maggior potenza di calcolo alla virtual machine, ma purtroppo non è sempre vero e dipende dalla natura della applicazione se usa o meno logiche multi-threading, come nella illustrazione qui sotto per intenderci:

multi-threaded execution

Per meglio risponderci alla domanda sottoponemmo una questione nel social network professionale linkedin . La “question” che ponemmo è la seguente:

Multi-vCPU virtual machine cycles scheduling

I need one who explain me, with details, the differences between kernel hypervisors (ESX,XEN,HYPER-V,KVM) about the real performance when we define a Virtual Machine with more than 1 vCPU. I think when a generic application, installed on the VM with 2 vCPU, places a request for CPU cycles, cuncurrently to the two vCPU. These requests goes into a queue for the Host to process. I think the Host wait until there are two Cores with concurrent idle cycles.
If the Host have more VMs not in idle, the our VM multi-CPU lost in performance.
Is right for you? Have you experience about it? Can explain me the differences between kernels ? Which hypervisor is the best for this events?
Thanks and good new year

Le migliori risposte che abbiamo ricevuto sono le seguenti:

Da Mindaugas KiznisIT Professional, IT Infrastructure Solution Architect at CSC.

This presentation is maybe more from the VMware side, because it was made by a VMware guy, but shortly it shows and compares major things about different virtualization principles and products:
http://www.virtualization-symposia2008.lv/files/File/4_vmware_virtualization_symposia_latvia_thuber.ppt

Maybe these docs will explain about CPU scheduling in virtualization:
http://cs.gmu.edu/~hfoxwell/cs671projects/southern_v12n.pdf
http://www.cs.ucsd.edu/~dgupta/papers/per07-3sched-xen.pdf

Here is a good feature comparison:
http://www.it20.info/misc/virtualizationscomparison.htm

If you still will have some specific questions about virtualization, feel free to write me and I will try to answer you.

I link che riporta Mindaugas sono un fantastico materiale di studio e di approfondimento ed anche di paragone tra i vari hypervisors, vi invito a leggerveli.

Da Manlio I.A. FrizziInformation Technology and Services Consultant and Contractor at Brain Force. Virtualization Evangelist.

hello Fabio, and, first of all, happy new year!
what you are saying is completely right: the rule of thumb for multi vCPU VMs is creating it only if you know that the application(s) you’re going to install/execute are compiled to use multi-threaded execution.
If not, do it 1-vCPU: the performance will be better.

Moreover there are some cases in which multi cpu will degrade the performances: Virtual Machines with Citrix TS installed on them must be 1-vCPU: this because Citrix TS will do a lot of context switches and ESX will do other context switches multiplying the overhead.

Another thing to take into count is having the right multiprocessor kernel installed: a lot of OS detect multi CPU and install the right kernel for the number of (v)CPU that have beeen detected: if you need SMP enabled kernel remember that, used on a 1-(v)CPU environment, it will perform very bad.

For the “best hypervisor” question… I have my ideas… in your list of hypervisor only one can be used in production environment…

hope to help
Manlio
http://virtualaleph.blogspot.com

La risposta di Manlio conferma i nostri dubbi relativamente alle performance di una VM multi vCPU se non accuratamente valutato il software che deve girarci sopra.

Ora vogliamo riportare un benchmark non ufficiale ma non di parte eseguito da Rick Vanover-MCITP, MCTS, MCSA, system administrator for Safelite AutoGlass. A 12-year IT veteran and online columnist for Virtualization Review.

L’articolo completo è pubblicato al seguente link Lab Experiment Hypervisors

Le piattaforme comparate sono:

VMware ESX 3.5
Microsoft Hyper-V
Citrix XenServer 5

Le specifiche hardware e delle virtual machine sono:

Guest Requirements

* Support Windows Server 2003 R2 with Service Pack 2 (x86 edition) as a guest operating system
* Permit the provisioning of guest virtual machines in one of two configurations:
* Memory at 1024MB, 10GB local drive space
* Memory at 2048MB, 20GB local drive space
* No CPU limits in place

Host Requirements

* Support an installation on the three parallel systems of identical configuration: Dell PowerEdge 2950 2×2 @ 3.0GHz, 16GB RAM, 360GB local storage on one single array (RAID 5)
* Permit use of local array for guest virtual machines

I test eseguiti sono riassunti nella seguente immagine:

testplan

Ed i risultati sono tutti nella seguente immagine:

testresults

Il test ha mostrato che a livello Hypervisor, ESX è ottimizzato per un numero minore di intensive workload. Per intensive workload che non può essere ottimizzata per memory overcommit, Hyper-V e XenServer dovrebbero essere considerati come i più indicati. Occorre però ricordare che questo test è un test specifico su SQL Server 2005 su una macchina virtuale Windows 2003 a 32 bit.

Be Sociable, Share!

Related Articles

Leave a reply

Your email address will not be published. Required fields are marked *