Archive for August, 2006

VMPerfMon: Measure real usage within a VM

Since the release of VI3, VMware has also introduced a GuestSDK. What they have done is open up VMware Tools so your own applications can talk to it and request information about the real outside world, especially about resource consumption. The nice thing about using the GuestSDK is that you can get information fast and very frequent. VMware support querying the VMware Tools for information by at least 4 times a second without major overhead and I have found out in practice you can go much higher then that.

The only sample code I got my hands on was written in C+ and I am not an excellent C+ programmer, but was able to create a working graphical performance monitor. It shows you the actual perfomance the VM is using (while running itself within the VM) and also displays stats like how much Mhz the VM can access, etc.

Screenshot VMPerfMon

In the screenshot you can see how it works. The VM is actually limited to 711Mhz, which is only a subset of the actual CPU power available and is running the ‘cpubusy’ program that just creates a 100% load. The windows performance monitor thinks the VM is doing 100% cpu usage, while VMperfmon is showing a steady 22% cpu usage.

If you want to download the software, go to the download page

VMware VI3 Hidden Feature: Better Time Management

Having proper time reporting in a Virtual Machine as always been a challange and there are many ways to solve this. You can use the buildin Time Sync from VMware Tools or use things like Active Directory or NTP. For most applications this works fine, but if you want to run things like benchmark tools this is not sufficient. The more a Virtual Machine get stressed, the worse it’s time sync will go.

VMware is shipping with VI3 and experimental VMware Descheduled Time Accounting service. This service will manage time for a VM much better, especially in the times when a VM is not scheduled to run because of a busy system.

So how do you get this VMDTAS, well easy, just do a full or custom installation of VMware tools. When doing a custom install check the ‘VMware Device Drivers” option and you will find the Descheduled Time Accounting options. After you have installed this, it is NOT active yet. There is now a new service in your VM that has to be started manually as it’s default state is to only start manually. You can change this to automatic ofcourse.

So if you want to run benchmarks in your VMs and want a more accurate time reporting, use this new service. I also have written a while a go a small program that actually measures the time drifting within a VM, you can find it here.

If you want to read more about the new experimental time driver, check out this VMware PDF

Nice benchmarking report using VMware ESX and IBM WebSphere

IBM and VMware have published a nice benchmarking report about running VMware ESX with IBM Wehsphere. It shows the result of running Websphere in a virual machine on a 4-way and 8-way machine and compare it against physical performance. It also compares using vSMP against an Uni VM. The test is done with ESX 2.5.3. One of the amazing result is that running on a 8-way machine with virtual machines gives an better performance then the physical results!

You can read the paper here