I have run bonnie++ v1.96 on two different servers without any additional load. One server is a "physical" Dell server with 32GB RAM, the other one is a virtual instance with 14GB RAM. I have read in the bonnie manuals that I should use two times the size of RAM in my bonnie runs, so I used 64GB on the physical machine and 28GB on the virtual machine.
Now I want to compare the results, and I am wondering whether the results are comparable at all. The most interesting part is the latency part - on the physical machine, the values are about 10 times higher than on the virtual machine!
Can I take these results seriously (e.g. the virtual machine HD is much much faster) or does the different RAM size tamper the results?
Thanks! Jonas
An important thing to consider is that with many virtualisation solutions spare memory that the host has that can be used for cache/buffers can be used to cache data from virtual disk files. This might mean that your VM effectively sees the performance effect of read cahcing of much more RAM than the amount it has been allocated.
Furthermore some environments will allow writes to the vdisks to be delayed by the cache so even though the userland code in the VM tells the OS in the VM "don't return until this is written to the physical disk" and the OS in the VM thinks it is obeying this instruction, the host machine may still cause it to return before the data has been physically written. This could have a massive impact on the response measured by a benchmark like bonnie++. VMWare has an option to turn this behaviour on/off (IIRC is defaulted to off in all versions), others that support write buffering of vdisk operations presumably do too.