Any real world experiences of speeding up windows KVM guests disk speed?

yatesco

Well-Known Member
Sep 25, 2009
211
5
58
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:
Code:
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:
Code:
/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
 
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:
Code:
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:
Code:
/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. And use SAS drives.

if you use a slow configuration on the host you cannot expect fast io in the guest.
 
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.
 
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.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!