VMWare IO performance better than physical machine, weird ?
本帖最後由 929962616 於 2015-2-16 18:45 編輯
Recently I did a IO performance test against HP DL360 Gen9 with P440ar Raid Controller in RAID 10 mode.
Scenario RAW: Install CentOS 7.0 on physical machine
Scenario VM: Install ESXi 5.5, then install CentOS 7.0 in VM
Below is test result:
It seems VM's IO performance is better than RAW, is this normal ?
Your test data size was different. In your first test, you data size is 128GB, which is twice as much as your RAM size, so, any caching effect is gone.
However, when you do the test in VM, you just test with a 16GB file, and although you just allocate 8GB RAM to your VM, but the VM host can easily put your 16GB file totally in RAM, and you just see the caching effect.
Again, you're not comparing apple to apple. So, the comparison and hence conclusion is not meaningful.
I don't understand why your bonnie++ test with 64GB RAM allocated to a VM will fail. Anyway, if you want, redo the test with:
1) sufficient swap space (say 128GB) for your VM
2) install vmtools in your VM.
3) update your linux kernel / library to the latest version
Or another way to do your test is to go into your BIOS setup page, disable some RAM modules, say, leave 8GB or 12GB active, run VMware ESXi, and create your VM with 8GB RAM, do a test with at least 32GB data, and you'll be able to have some meaningful data. And also mind the RAM cache on your RAID card if there is any.
Give you a ballpark value:
7200rpm hard disk, sequential read performance on the fastest zone, around 100MB/s (mega bytes per second)
Even you run RAID 10, but if you get anything faster than 300MB/s on real hard disks, you're likely just measuring the speed of RAM.
I've no idea why bonnie++ crash, maybe 32bit version is not stable for PAE mode.
For your 3 suggestions, I think:
1. swap space should be not used in the test, so it can be ignored at all.
2. vmware tools may provide some kind of caching in driver, so won't use it when testing.
3. kernel and driver are last version already.
Once again, I installed a VM with CentOS 7 64bit as guest OS, compiled the bonnie++ successfully and finished running without problem.
Below is the result:
[toor@localhost bonnie++-1.03e]$ uname -a
Linux localhost.localdomain 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[toor@localhost bonnie++-1.03e]$ ./bonnie++
Writing with putc()...done
Reading with getc()...done
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.03e ------Sequential Output------ --Sequential Input- --Random-