Hello,
I have installed the "redhat" driver rolling around the webs and I can say that the performance in block department is satisfying.
As for the network driver - it is severely lacking. I have found other reports of similar issues though I cannot remember exactly where now. While the driver itself does work, the performance is a problem. Let me elaborate.
First everything seems to work ok, but soon after certain volume of traffic goes through the thing will freeze for a while. For example, I start copying 500 mb file. I will get 200 MB done superfast (50MB/s). Then everything will freeze for a while. After that copying resumes a bit slower for a few seconds and again, everything freezes.
So apparently things work ok if there is not much data moving around but with more traffic things get out of hand. I should test whether the virtio driver is faster than 100mbit realtek at all...
So any ideas about this? Everything seems to work allright on my ubuntu guest. Oh, a bit about my config:
Ubuntu 10.4 host, KVM, bridged networks. 2 clients for now, one ubuntu 10.4, other win2008. Got a dell poweredge server with gigabit ports and everything seems to be working quite ok after some fiddling. This could be a problem though, network I/O is quite important and 10 mbps or so is not really enough. Seems like some small buffer problem to me though, like a buffer gets filled and not flushed so the driver fix might be around the corner?
edit: Installed this: http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
Should I go over to the fedora people? Anyway other experiences might still help.
Neikius,
Yes, you should upgrade to the latest version. Check out the following post which shows what version your network driver should be after upgrading.
http://www.linux-kvm.com/content/latest-windows-virtio-drivers
This is also the same drivers included in the cdrom image in the download links at the front page of www.linux-kvm.com.
Actually, the date is ok (10. aug. 2010), while the version I have is 6.0.209.605
And the balloon device says it can't be started, guess I don't have it enabled server-side?
Neikius
Can you try using the e1000 emulated drivers and see what kind of performance you get? For reference see the following post on installing it
http://www.linux-kvm.com/content/how-do-you-use-e1000-option-windows-guest
Re balloon driver, I think more is needed on the guest side. Will have to enable server side also. Still playing around with that myself.
The memory ballooning driver for Windows 7/2008 may not work because Windows automatically recognizes it as a "PCI standard RAM Controller". You can look at the properties of this system device and under details make sure that "Location information" shows the same PCI device that kvm/qemu set for the memory ballooning driver (in my case, it is PCI bus 0, device 5, function 0).
Be sure to go back to the Driver tab and update your driver to the actual balloon driver for this device rather than trying to manually install it by hand.
http://bit.ly/virtiowin1160
Hi Haydn, others
Just spent couple of days in performance measurements guest<->host, and here the results, for your comments. This special case of networking inside the VM is my use case - need to provide fast access to shared storage on the host to all VMs via network (how else?)
Setup
-----
Host: 2x AMD Opteron 6168, 64Gb, Scientific Linux 5.5 x86_64 (RH 5.5 rebuilt)
Guest1: Windows 2008 R2 HPC server, 8 vCPUs, 4GB RAM, virtio driver from 1.1.16 package OR e1000 8.3.2.8 from the Windows distro. Both interfaces are on the standard virbr0.
Guest2: Scientific Linux 5.5 (same as host), 4 vCPUs, 1GB RAM, virtio driver from stock distro (doesn't tell version with modinfo!)
Performance measured with iperf in both direction, taking host as 192.168.122.1 (gateway for virbr0 private net) and guest connected to the virbr0 and having dhcp-assigned address in the same network.
Virtio driver on Linux guest
----------------------------
Good performance in both directions - 2-3 Gbit/s. Everything is fine. :) Could possibly push higher with tuning, but ok for now.
Virtio driver on Win2008 guest
------------------------------
Good performance in direction Guest->host - 2Gbit/s
Poor performance host->Guest - 500Mbit.
Setting up higher tcp windows in iperf doesn't help in the latter case, except for reducing cpu utilization, which was some 170-300% (i.e. 3 amd physical cores) Driver advanced options din't help, except setting higher MTU size. With high MTU 9000 or 16K host-to-guest rate reaches 700-800 Mbit/s. Note that you have to set the same MTU size on the host's corresponding vnetX interface
Playing with Windows tcp window scaling and offload options (via netsh) doesn't help either. Iperf reports that default tcp window size is 8k. I could not find how to set it up manually - any tips?
Adding more streams in iperf doesn't help to get greater total rate. In fact, in all cases there was one stream that was taking over and giving dominating rate and other streams gave negligent throughput - no balancing at all across streams.
e1000 driver on Windows guest
-----------------------------
Reverse picture!
Rates host-to guest reaching 900Mbit-1Gbit with standard MTU. Multiple iperf streams are balanced ok.
However poor performance on guest-to-host - no more than 500Mbit using jumbo frames and some 400Mbit using standard MTU=1500 - little improvement using jumbo frames.
In all cases increasing Rx and Tx buffers number is not really helping.
Conclusion and questions
------------------------
Seems like virtio is great when packets flow from from guest to the host, but something significantly slows down in the reverse direction for Win 2008 R2 guest, which hurts my use case a great deal...
What could be the cause of it? Is this windows architecture itself, or possibly a bug the virtio net driver implementation for Windows?
More general question - is there a hope to achieve even greater rates host<->guests, i.e. in the range of 10G? Is 10G only possible to push by a VM outside of the host?
Also, for the info - intel is not updating e1000 driver for Win2008R2 or Win7 - whatever you get packaged is the latest, which is from 2006. I managed to install a version 8.3.15.0 for Windows 2008 standard (not R2), but that one gave no difference in performance and was also dated 2008.
cheers
Artem.
--Never forget to thank KVM developers for excellent work
Hello,
I have exactly similar performance issue like "datamove" reported!
The only difference is in my test-case that:
- I use Host: 4x AMD Opteron 6172, 128Gb, CentOS 5.5
- I use Windows7 Ultimate as guest, with Redhat virtio-win-1.1.16
My iperf shows:
Good performance in direction Guest->host - 3.5Gbit/s
Poor performance host->Guest - 500Mbit.
What is the problem?
Cheers,
Mike
Hi,
I'll soon have an opportunity to make another set of tests using Intel 5600 cpus and Scientific Linux 6.0 (same RH6.0). I wonder if it make some difference here...
cheers
Artem.
--Never forget to thank KVM developers for excellent work
"First everything seems to work ok, but soon after certain volume of traffic goes through the thing will freeze for a while. For example, I start copying 500 mb file. I will get 200 MB done superfast (50MB/s). Then everything will freeze for a while. After that copying resumes a bit slower for a few seconds and again, everything freezes."
I have exact the same problem. Only my HOST and my GUESTS are all Ubuntu Server 10.04 (LTS) 64 bit!!
It's just of couple of minutes ago I posted a message...
But is it maybe possible that the problem is not the network,
but the performance of the virtual harddisk???
Hello ALL!
I know it for sure!!! Problem solved (for me)! ;-)
https://www.nnbfn.net/2011/03/convert-kvm-qcow2-to-lvm-raw-partition/
Good to see others try too. Gotta check if there are any new drivers soon, maybe drivers are crippled on purpose?
Anyway, I have raw images since the beginning so the latter is not the case.
hi
i'm using the 1.1.16 virtio drivers with Windows 2008. mixed results with running 2 Win2008 instances on one physical host.
virtio-net: guest os crash every day , no probs with e1000
virtio-disk: seems to be ok
overall: clock problems on guest (>1min/h), random crashes on i/o.
Host: HP ML350 G5 (Intel Xeon E5420), Debian Squeeze, qemu-kvm 0.12.5
Guest: Win 2008, backed by LVM volume
Hi,
Try the lastest Virtio drivers (virtio-win-1.2.0-1).
virtio-win bug fix and enhancement update:
https://rhn.redhat.com/errata/RHBA-2011-0782.html
Cheers
Post new comment