[Openstack] KVM & Hyper-V Performance
Claudiu Belu
cbelu at cloudbasesolutions.com
Fri May 13 00:33:30 UTC 2016
Hello Gulseren,
First of all, I am liking the results. :)
Secondly, Windows and other Microsoft services work better on Hyper-V, it's only natural. :) This can explain the stable and higher performance, and lower cpu consumption on Hyper-V.
I am wondering if we can boost those results even more. For this, I have a couple of questions:
1. The VM's image, is it a VHD, or a VHDx? VHDx images typically perform better. You can check the format by running this in powershell:
Get-VHD -Path C:\path\to\disk.
2. What version of Hyper-V are you using?
3. Is your VM a Generation 1 VM, or Generation 2? Generation 2 VMs have been introduced in Windows / Hyper-V Server 2012 R2 and some of its features include faster boot times, and less host resource consumption and better VM performance, since it no longer has emulated devices. Please do note that the VM image must be specifically created for Generation 2 VMs, you can't attach any image to such a VM and expect it to work. For example, one restriction is that the image must be an VHDx.
If you got yourself a new Generation 2 VM image, in order to create a Generation 2 VM in OpenStack, you will have to add this property in the image's metadata: hw_machine_type=hyperv-gen2
In CLI, it would be:
glance image-update image_name --property hw_machine_type=hyperv-gen2
4. What are the specs of Hyper-V host? And more importantly, how many NUMA nodes does it have? You can find out by running this in powershell:
Get-VMHostNumaNode
If you have more than 1 NUMA node and if your Hyper-V Server has little free memory, there are chances that your VM's memory is split across multiple NUMA nodes. Hyper-V does this in order to fit all the VMs in the available memory, but for a performance cost.
By default, NUMA spanning is enabled, but you can disabled it. You will have to restart the vmms service if you do so:
Restart-Service vmms
Your VMs will have to be restarted as well. Now, whenever your VMs start, your VMs will not span multiple NUMA nodes. NOTE: if there is a VM that cannot entirely fit in any NUMA node, it will NOT start, even though it could easily fit with NUMA spanning enabled.
5. All Windows / Hyper-V Servers, as well as guests, have power config options. By default, they are set to "Balanced". You can set it to "High performance" by running this in powershell:
PowerCfg.exe /S 8C5E7FDA-E8BF-4A96-9A85-A6E23A8C635C
We've noticed a ~10-15% performance increase after we've done this. Try it, in both the Hyper-V host, and Windows guest.
Now, not all of these are going to improve the disk throughput, but they should still improve the general performance.
Also, just is just a FYI, we've done some performance testing using Rally with some Sahara / Hadoop scenarios. The results seemed to favor Hyper-V over KVM (both single cluster, and multiple cluster scenarios).
Best regards,
Claudiu Belu
________________________________
From: gulseren bulut [glserenbulut at gmail.com]
Sent: Thursday, May 12, 2016 11:14 PM
To: OpenStack General
Subject: Re: [Openstack] KVM & Hyper-V Performance
For the DB test which one is which? I don't see that information anywhere.
Chris
First secreenshot from hyper-v, second screenshot from kvm.
Which drivers (virtio) did you use in the Windows instances?
I used this iso https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso and viostor (Virtio Block Driver).
gb
2016-05-12 19:21 GMT+03:00 David Medberry <openstack at medberry.net<mailto:openstack at medberry.net>>:
Which drivers (virtio) did you use in the Windows instances?
On Thu, May 12, 2016 at 9:24 AM, Chris Friesen <chris.friesen at windriver.com<mailto:chris.friesen at windriver.com>> wrote:
On 05/12/2016 08:52 AM, gulseren bulut wrote:
Hello,
I done some tests for windows virtual server on KVM and Hyper-V.
All resources of VMs is same.
VM OS: Windows Server 2012 R2
SQL: MSSQL Server 2012 R2
4 GB RAM, 2 vCPUs
(virtio is used for guestos on KVM)
This is DB tpc test using HammerDB, VM on Hyper-V is stable more than KVM.
For the DB test which one is which? I don't see that information anywhere.
Chris
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack at lists.openstack.org<mailto:openstack at lists.openstack.org>
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack at lists.openstack.org<mailto:openstack at lists.openstack.org>
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20160513/c6c4c9e8/attachment.html>
More information about the Openstack
mailing list