I have four hypervisor hosts. They are all running VMWare Server 2.0.2 Build 203138. Hosts 1-3 are Windows Server 2003 Enterprise SP2, 32-bit. Host 4 is Windows Server 2008 R2 Standard. I have 5 guest VMs: 1 each on Host 1-3, and 2 on Host 4 (a beefier host). All 5 VMs are clones of each other--copy and paste, boot up (well, edit .vmx files first and such). The guests are thus all *identical* other than that they have a different IP address, etc. The guests are CentOS 5.9.
Now then, all was hunky dory on Hosts 1-3. The guests were fine and run a certain application for us.
I copied-and-pasted one instance of the VM guest to Host 4, making two copies.
I booted both of those, and configured the guest (IP address, etc.).
So far, great. I now have 5 VMs instead of 3, running across a total of 4 hosts.
But I noticed that the *exact* same application running the *exact* same configuration on the VMs on Host 4 uses 3 times the memory as its clone brothers. 3 times!
I tried to address this in the application itself, which involves Java. But nothing there helped.
So, I am completely puzzled. To the guest VM (CentOS), there is NO difference from the other VMs. It's literally a copy-and-pasted clone of the others. Why in the world would the same application running under the same OS and completely copied use THREE TIMES the RAM?
The only difference I can think of is that hypervisor hosts 1-3 are 32-bit and hypervisor host (VMware Server host) #4 is 64-bit. But the guest is the same guest!
Does anybody have any idea why what should be as close to mirror image copies as possible would result in radically different application memory usage within the guest on one single host?
(NOTE: both the VM guests running on Host 4 have this higher memory usage. Guests 1-3, running respectively (one each) on Hosts 1-3, do not have the high memory usage in the application).