In this blog article I’m going show how we can enable virtual machine-level Quality of Service (QOS) in Windows 2012 server HYPER-V. QoS is a set of technology that provide you with the ability to cost-effectively manage network traffic and to enhance user experiences in enterprise environments, small offices, and even home networking environments. When we get 10G NICs in the server it is important we manage the given bandwidth to each VM base of their workload. There are various methods you can configure the QoS. In this article I’m taking into consideration Single HYPER-V host which is hosting several VM’s and how we can manage the allocated bandwidth to each VM separately. You can assign QoS to each VM or each virtual switch level as well.
In production environment it is advisable to apply the QoS in switch level rather than individual VM level. Belo diagram show such scenario,
But in my demo I’ll focus on the highlighted VM below,
When right click and select settings we can see currently bandwidth management has not been setup yet,
Now moving back to the PowerShell prompt on the host computer, I’m going to allocate 10 MBPS for this VM,
Once that command completed you can copy a file from host computer to the guest VM and monitor the network speed. for the demonstration purpose I’ll copy large file from another guest to QoS enable VM,
Due to my test servers performance issues () you’ll see the file copy speed is way below 10 MBPS. never the less if you go back to the PowerShell and disable the QoS, while the file copy process is going on you’ll find the copy process quicken up,
Now this is a very simple demo but the big picture I want to bring is QoS is important when you planning for server virtualization and when balancing the workload. With 10G cards becoming commodity this is becoming essential feature to enable and use. You can find more information about HYPER-V QoS here.