I have an application that's running in both dedicated and virtual server environments (all Windows Server 2008 R2). Given nearly identical specifications of the servers (memory, processors), the application running on the virtual server drastically underperforms the one running on the dedicated server in terms of time to execute a complex task, taking 2 times as long to execute. During this task, the processor utilization of the virtual server continually runs at about 30% although it rarely goes above that level. The dedicated server processor utilization never goes above 5%. There's plenty of free memory on both servers and I don't see any disk read/write bottlenecks.
I want to be able to recommend that the virtual server needs more resources to improve performance but I'm not sure what those resources should be as it doesn't appear that anything is overtaxed based on the performance indicators.
Is there something I'm missing in terms of why my application runs so much slower on the virtual server given the same application?