9

We are seeing our software behaving unusually at one of customers where it is being run inside a Windows 2008 virtual machine. The host is VMWare ESX Server.

The biggest issue I have seen is our processes drop socket connections or socket connections timing out. Some of our processes communicate with each other over TCP sockets. In some cases we make socket connection to remote systems (e.g., WMI, JDBC).

I am lead to believe that the VM is starved of resources. We do not have access to ESX admin/performance dashboards. I have also learnt that any numbers that perfmon or task manager inside the host VM provide are not true indication of the host OS health.

I could write a program that does bunch of floating point math and prints out the time taken. Then compare that time to the same obtained on different VMs or real Windows boxes.

This approach is sufficient for us to be able to determine whether the root cause is indeed VM performance. However it would be much easier to convince the customer if there was a standard way or tool for doing this.

Is there one?

Ben Pilbrow
  • 12,041
  • 5
  • 36
  • 57
akirekadu
  • 191
  • 1
  • 3
  • I believe Windows 2008, and certainly Windows2008R2, allows you to look at new counters (and others) that show you the CPU frequency, memory etc specially for virtualisation. But the quickest way would be to ask the VM administrator - make sure they haven't oversubscribed the memory especially on the VM host (the host box might have 64GB, but the sum of the Virtual Machines on that host might have 80GB of RAM). Oh, and if this has just started to occur, then perhaps the VM host has become more heavily loaded. Ask them to move the VM guest to a less busy host. – Peter Schofield Apr 13 '11 at 21:34
  • Reminds me of this - Blame (Virtualization) http://lonesysadmin.net/2011/02/08/blame/ – Doug Luxem Apr 13 '11 at 21:51
  • Please share if you have any idea which are those counters. Right now I am playing with this URL to get some early indications http://www.fossiltoys.com/speed.html (perhaps this is not to reliable a test, but I looking to find a more dependable one) – akirekadu Apr 13 '11 at 22:34

2 Answers2

2

I tend to use the same products I use to benchmark physical hardware.

http://www.passmark.com/products/pt.htm

Skip the 3d test of course, but the others can be helpful, especially the disk and networking benchmarks. Make sure you are using the proper network & IO drivers, and make sure all your windows settings are optimized for VM.

Antonius Bloch
  • 4,680
  • 6
  • 29
  • 41
1

For testing the networking, I use iperf and netperf to stress test that.

For testing disk I/O, use sqlio which is another industry standard tool. Run both random and sequential I/O testing with different block sizes.

For the CPU/RAM testing, I can't think of anything for Windows off the top of my head.

Wim Kerkhoff
  • 901
  • 1
  • 5
  • 12