Link to home
Start Free TrialLog in
Avatar of Jaroslav Latal
Jaroslav LatalFlag for Czechia

asked on

performance of Virtual SQL server (Hyper-V)

Dear experts, do you have experience with 2012R2 Hyper-V virtualized SQL server performance.
I'm going to assign plenty of RAM and attach physical SSD hard drive RAID10 array to virtual server, but I'm afraid about degradation of CPU performance.

Regards,
Jarda
SOLUTION
Avatar of John Tsioumpris
John Tsioumpris
Flag of Greece image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Jaroslav Latal

ASKER

Thanks for answers. Maybe one additional question about CPU cores assigned to VM throw Hyper-V. When server has 16 cores and I assign 4 (maximum) in Hyper-V manager to the virtual server, is it OK? I need to assign maximum performance to the virtual SQL server.

Regards,
Jarda
Sure, you can assign 4 vCPU to a VM (or even more) when the host has 16 physical cores. Depending on how busy the host is, it may not speed up the VM and may slow it down. The reason being that the host will need to have 4 physical cores available before it can execute any instruction for the VM. If the host is really busy, this means that the VM will spend more time waiting for the CPU than if it had two vCPU, which would be easier to schedule than 4 vCPU.
When SQL is virtualized there are a number of key factors to consider:
 + IOPS needed for all databases
 + Memory required for all instances in the VM
 + Thread count required to process all database activity

Bottlenecks in our experience are as above:
 + Storage I/O
 + Memory and NUMA boundaries
 + Physical Core Count

NOTE: vCPUs = Threads to the physical host. All threads must be processed in parallel throughout the CPU pipe. If more vCPUs than physical cores on 1 CPU get assigned to the VM then CPU logic needs to bounce threads between physical CPUs. This costs in performance.