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 [glserenbu...@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 
<openst...@medberry.net<mailto:openst...@medberry.net>>:
Which drivers (virtio) did you use in the Windows instances?

On Thu, May 12, 2016 at 9:24 AM, Chris Friesen 
<chris.frie...@windriver.com<mailto:chris.frie...@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@lists.openstack.org<mailto:openstack@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@lists.openstack.org<mailto:openstack@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@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack

Reply via email to