Hi
I have a hyperthreading capable P4 (2.8), though HT was disabled in the BIOS for the tests below. This is a 3 GB RAM system running Ubuntu Linux (6.06.1, clean and minimum install) and VMware server (downloaded yesterday).
I also have 4 x SATA disks, though I should say that all disks are on the same PCI bus (33MHz, 32 bit). The hardware is a Dell Optiplex gx270, for the test below I used the onbaord sata controller.
Using LVM I have created various metadevices
raid0 over 2 disks (md0) mounted as /raid0
raid1 over 2 disks (md1) mounted as /raid1
single disk partition (sda7) mounted as /noraid
On each metadevice I created an ext3 file system, and mounted. Under each of these mount points I installed another copy of Ubuntu (so 3 VMs in total), each using a 5 GB virtual disk, all pre-allocated and NOT split into 2GB chunks. each VM with 768 MB RAM (kickstart is great for this!).
I also enabled the option to disable page trimming, and set useNamedFile=FALSE as suggested by some searching of these forums and elsewhere. Since everything was "clean" installed I don't expect any fragmentation issues come into play?
This is the performance I get on the host, using bonnie++ with following options
bonnie++ -r 1024 -s 6g -u root -n0 -f -d /raid0/
bonnie++ -r 1024 -s 6g -u root -n0 -f -d /raid1/
bonnie++ -r 1024 -s 6g -u root -n0 -f -d /noraid/
Version 1.03 -
Sequential Output------ --Sequential Input- --Random-
-Per Chr- \--Block-- -Rewrite- -Per Chr- \--Block-- \--Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
host-r0 6G 128192 33 50419 13 138371 16 282.7 0
host-r1 6G 69504 19 32539 10 87986 10 210.7 0
host-noR 6G 65631 17 28854 7 66487 6 199.5 0
That performance is about what I expected, the host being able to provide decent I/O throughput. BUT on the VMs the story was different:
bonnie++ -r 1024 -s 2g -u root -n0 -f -d /test
bonnie++ -r 1024 -s 2g -u root -n0 -f -d /test
bonnie++ -r 1024 -s 2g -u root -n0 -f -d /test
(of course on each VM /test is actually a virtual disk sitting on top of the underlying host-side metadevices)
Version 1.03 -
Sequential Output------ --Sequential Input- --Random-
-Per Chr- \--Block-- -Rewrite- -Per Chr- \--Block-- \--Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
guest-r0 2G 44231 55 25321 44 72603 69 288.2 3
guest-r1 2G 26306 56 6203 15 23551 19 280.6 3
guest-noR 2G 34266 42 19942 35 57773 49 385.3 3
In all cases the performance is significantly poorer (30%-70% poorer), in particular the raid-1 case (the one I actually want to use!) the I/O performance is very poor.
Is there anything I can/should do here? The test scenario seems to fairly accurately match my planned real deployment (1 VM for apache/wiki, one for small scale e-mail server, and one for a samba server), so I'm hopeful to get the best I/O performance I can get from the hardware/software. Does VMware virtual disks layer introduce such a significant bottleneck into the I/O?
Ideas/comments? As an aside, I'm not sure whether to enable HT or not - might the fact that Linux will "see" 2 CPUs confuse VMware at all? I did not yet find a definitive recommendation on that.
Kevin
PS: For the real systems I had planned to use a hardware raid card, and raid5 over all 4 drives (which would be connected to the LSI megaraid card). But in that case, so far, I have not been able to persuade decent (host-side, nothing to do with VMware) raid5 performance out of the raid card yet ... I might end up using software raid after all ....