ESXi: Video encoding performance much lower on ESXi versus non-virtualized machine?

jmk396

Gawd
Joined
Jul 22, 2004
Messages
787
I'm using ESXi 5.1 and for some reason the video encoding performance is much lower than my non-virtualized system (with almost identical hardware; the ESXi hardware is actually more powerful).

What can I have configured wrong?

The ESXi host has an Intel Xeon E3-1320 (4 cores with hyper-threading for 8 logical processors). The guest operating system is Windows Server 2012 and I've tried assigning different combinations of vCPU (4 processors with 2 cores each, 8 processors with 1 core each, etc) but nothing seems to help.

The guest operating system shows 100% CPU usage (inside the operating system) across all processors, but the vSphere Management Console only shows about 50% CPU utilization across the system.

Can anybody help me out?
 
Try just assigning 4 cores and see what happens. HT doesn't count as a real core.

Try 2 Cores too and see what happens.

Are there other hosts running on this VM server?
 
The hypervisor needs CPU itself for overhead as well, so by assigning all the logical CPUs, your CPU Ready delays are probably through the roof. Give it 6 and see what happens.

I'm also not a big fan of relying on hyperthreading as a 'logical CPU' as some things need the long pipelines available on the cores.
 
Yes, I have the latest VMware tools and I have also tried configuring about 2, 4, or 6 vCPUs but it doesn't matter.

The ESXi host only shows about 50% total CPU utilization for the entire server (for ALL VMs) so something still isn't right. I have other VMs running, but as I mentioned it only shows about 50% total CPU usage for the entire ESXi machine.
 
Are VMs or Resource pools with CPU reservations present?
Is the server part of an HA cluster and thus the 50% are reserved for failover?
 
It's a standalone ESXi server, so unless it's not configured correctly it shouldn't be part of a fail-over cluster or anything like that.

How can I check to make sure it's not configured incorrectly?

Also, I didn't setup any CPU or memory reservations but where can I double-check that?
 
Does the application utilize CUDA, and does the comparison system have a GPU?
 
It's a standalone ESXi server, so unless it's not configured correctly it shouldn't be part of a fail-over cluster or anything like that.

How can I check to make sure it's not configured incorrectly?

Also, I didn't setup any CPU or memory reservations but where can I double-check that?

Select the VM - Edit settings - Tab "Resources": that's the place where you find limits & reservations for CPU, memory and disk.
If the VM is in a Resource Pool you might want to check the limits and reservations of the pool too.

Can you give some additional information about the CPU load? Just take a look at the task manager which process(es) are responsible for the load.

What do you mean with video encoding performance? Does the windows GUI feels sluggish and sticky (e.g. while dragging windows) or do you run some actual video encoding application.

You should verify if the VM is actually using the enhanced video driver that comes with vmware tools. For quite some time the installation of vmware tools (especially in Windows server VMs on ESXi) did not change the video driver from MS standard to VMware SVGA. If your VM isn't using the vmware driver you can easily update it through device manager - Display adapters - update driver - browse computer for driver - point to "C:\Program Files\Common Files\VMware\Drivers" including subfolders - and go.
 
Back
Top