PDA

View Full Version : Any real world experiences of speeding up windows KVM guests disk speed?



yatesco
02-02-2010, 01:13 PM
Hi all

I have a plain proxmox 1.5 install using the 2.6.24-10-pve kernel. I have installed a couple of Windows 7 virtual machines by just following the defaults using the default network (rtl8139) and hard disk (IDE) drivers. I have also assigned it 2048MB RAM and a 64GB (raw) disk.

There are two of these virtual machines running.

The physical box is a Xeon 3350 with 8GBRAM:

pveperf:


CPU BOGOMIPS: 22537.28
REGEX/SECOND: 884055
HD SIZE: 19.38 GB (/dev/md1)
BUFFERED READS: 62.26 MB/sec
AVERAGE SEEK TIME: 22.92 ms
FSYNCS/SECOND: 409.48
DNS EXT: 59.63 ms
DNS INT: 14.01 ms (qfijonah.com)


and hdparm -tT /dev/sda:


/dev/sda:
Timing cached reads: 9454 MB in 2.00 seconds = 4729.96 MB/sec
Timing buffered disk reads: 200 MB in 3.02 seconds = 66.26 MB/sec


Not the biggest and fastest box, sure, but pretty decent.

The problem is that disk IO is terrible within the virtual machine. I am running Windows XP in VMWare Fusion on my MAC *laptop* which performs significantly faster in terms of disk IO.

The main application I am running is a SQL transformer which reads in one row from DB1, mutates it and sticks it in DB2 (both DBs are on the same virtual machine as the transforming Java process). So lots and lots of little reads and writes.

(I know about optimising DBs and connections)

So, my question - do any of you have any real world experience of improving disk IO for windows guests? For example:

- does using the new kernel make any difference (no containers here, only KVM)
- is qcow2 faster *and stable*
- do the virtio drivers make any different and *are they stable*
- would using an LVM device directly (instead of a file on an LVM device) improve things
- is there anything I can do in the guest itself to speed things up?

I am deliberately not giving any figures (like unzipping an X MB file takes Y seconds, or probably minutes ;)) other than the comparison to running VMWare Fusion on a laptop.

Many thanks all

tom
02-02-2010, 01:21 PM
Hi all

I have a plain proxmox 1.5 install using the 2.6.24-10-pve kernel. I have installed a couple of Windows 7 virtual machines by just following the defaults using the default network (rtl8139) and hard disk (IDE) drivers. I have also assigned it 2048MB RAM and a 64GB (raw) disk.

There are two of these virtual machines running.

The physical box is a Xeon 3350 with 8GBRAM:

pveperf:


CPU BOGOMIPS: 22537.28
REGEX/SECOND: 884055
HD SIZE: 19.38 GB (/dev/md1)
BUFFERED READS: 62.26 MB/sec
AVERAGE SEEK TIME: 22.92 ms
FSYNCS/SECOND: 409.48
DNS EXT: 59.63 ms
DNS INT: 14.01 ms (qfijonah.com)
and hdparm -tT /dev/sda:


/dev/sda:
Timing cached reads: 9454 MB in 2.00 seconds = 4729.96 MB/sec
Timing buffered disk reads: 200 MB in 3.02 seconds = 66.26 MB/sec
Not the biggest and fastest box, sure, but pretty decent.

The problem is that disk IO is terrible within the virtual machine. I am running Windows XP in VMWare Fusion on my MAC *laptop* which performs significantly faster in terms of disk IO.

The main application I am running is a SQL transformer which reads in one row from DB1, mutates it and sticks it in DB2 (both DBs are on the same virtual machine as the transforming Java process). So lots and lots of little reads and writes.

(I know about optimising DBs and connections)

So, my question - do any of you have any real world experience of improving disk IO for windows guests? For example:

- does using the new kernel make any difference (no containers here, only KVM)
- is qcow2 faster *and stable*
- do the virtio drivers make any different and *are they stable*
- would using an LVM device directly (instead of a file on an LVM device) improve things
- is there anything I can do in the guest itself to speed things up?

I am deliberately not giving any figures (like unzipping an X MB file takes Y seconds, or probably minutes ;)) other than the comparison to running VMWare Fusion on a laptop.

Many thanks all

you run software raid on the host? if yes, throw it away and go for hardware raid controller, e.g. one from Adaptec (http://www.adaptec.com/en-US/products/Controllers/Hardware/sas/performance/SAS-5805Z/). And use SAS drives.

if you use a slow configuration on the host you cannot expect fast io in the guest.

yatesco
02-02-2010, 01:50 PM
if you use a slow configuration on the host you cannot expect fast io in the guest.

That is my point though (although I wasn't explicit) - the performance on the host is far greater than that on the windows guest. For example, copying a 500MB file in the windows VM takes 30% to 50% as long as doing it natively on the host (i.e. about 15 seconds compared to 7-10 seconds including sync).

I think you can guess where I host my machine, which are very cheap. Unfortunately I think you might be right - possibly time to rethink.

tom
02-02-2010, 01:57 PM
That is my point though (although I wasn't explicit) - the performance on the host is far greater than that on the windows guest. For example, copying a 500MB file in the windows VM takes 30% to 50% as long as doing it natively on the host (i.e. about 15 seconds compared to 7-10 seconds including sync).

I think you can guess where I host my machine, which are very cheap. Unfortunately I think you might be right - possibly time to rethink.

yes, file copy performance is not as good as it could be but the KVM project is working on that. BTW, OVH is offering high performance servers with Proxmox VE as well.