I realize this clip below was for the KVM, but I thought I'd share my findings as many Virtualizers have compenents like these in common, or can be tested in a similar fashion. I post this here because the comments on this page were helpful to me and I've got some related content below too.
Anyway, please enjoy and try for yourself in order to determine what the best combo is for you.
Also remember you may have to trade speed for bandwidth....
Three machines present as follows:
10.0.4.52 running fc13 host with kvm 0.12, br0 off of eth0
10.0.4.222 running fc10 as guest os, varying but runs lighttpd/lighty with the server-status page enabled for those in the subnet....
10.0.4.53 running fc13 with kvm 0.12
***Note that the e1000 driver does NOT provide these gains if host enviro is fc12!!!
In order to test and find the most ideal (for our combination)
Shutdown machine (not just reboot). Change driver.
Then Run test cases against each driver
case1: favorable short ping like a marketer would advertise.
case2: longer ping, 40-50 times to allow for fair snapshot
case3: ping whilst doing ab attack as follows:
ab -n 15000 -c 20 -k
http://10.0.4.222/server-status & ping 10.0.4.222
Note the the ab attach is peformed from a fourth machine in the same subnet with apache/lighty...
But also note that this isn't the important benchmark over the ping 1 and 2, and the iperf
Results:
case4 - running iperf -s on server and iperf -c 10.0.4.222
e1000 1rtt min/avg/max/mdev = 0.154/0.196/0.244/0.026 ms
e1000 2rtt min/avg/max/mdev = 0.133/0.188/0.247/0.031 ms
e1000 3rtt min/avg/max/mdev = 0.246/7.568/102.257/25.346 ms
e1000 [ 3] 0.0-10.0 sec 811 MBytes 680 Mbits/sec
virtio 1rtt min/avg/max/mdev = 0.393/0.455/0.595/0.049 ms
virtio 2rtt min/avg/max/mdev = 0.394/0.447/0.558/0.039 ms
virtio 3rtt min/avg/max/mdev = 0.486/0.744/1.403/0.334 ms
virtio [ 3] 0.0-10.0 sec 1.06 GBytes 908 Mbits/sec
pcnet 1rtt min/avg/max/mdev = 0.262/0.316/0.490/0.050 ms
pcnet 2rtt min/avg/max/mdev = 0.236/0.824/7.877/1.683 ms
pcnet 3rtt min/avg/max/mdev = 0.299/3.136/10.048/3.027 ms
pcnet [ 3] 0.0-10.0 sec 447 MBytes 374 Mbits/sec
rtl8139 1rtt min/avg/max/mdev = 0.188/0.214/0.252/0.021 ms
rtl8139 2rtt min/avg/max/mdev = 0.162/0.219/0.324/0.043 ms
rtl8139 3rtt min/avg/max/mdev = 0.347/3.099/7.139/2.312 ms
rtl8139 [ 3] 0.0-10.2 sec 15.2 MBytes 12.5 Mbits/sec
hypvDef 1rtt min/avg/max/mdev = 0.183/0.202/0.220/0.014 ms
hypvDef 2rtt min/avg/max/mdev = 0.164/0.257/3.019/0.376 ms
hypvDef 3rtt min/avg/max/mdev = 0.292/3.162/6.884/2.775 ms
hypvDef [ 3] 0.0-10.3 sec 15.1 MBytes 12.3 Mbits/sec
ne2kpci 1rtt min/avg/max/mdev = 0.365/0.383/0.416/0.030 ms
ne2kpci 2rtt min/avg/max/mdev = 0.312/11.844/69.885/25.413 ms
ne2kpci 3rtt min/avg/max/mdev = 0.401/50.870/206.575/72.708 ms
ne2kpci NA: <1MB??? STALLED. NOTE ping min is poor, avg is worse!
Some other abandonned thoughts on this:
Network options, in the host environment, such as bridge...
Bridged networking
Network Address Translation (NAT)
VDE (Virtual Distributed Ethernet) networking
Internal networking
Host Alias??? Sure, you could ugly-hack a ton of the faster but lower bw interfaces...
Host-only networking
Not attached
TUN works with IP frames
TAP works with Ethernet frames. NOTE TUN is lower to kernel...
PPP vs?
A file that has at least some relationship to my favorite new e1000e driver...
/etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Serdes) (rule written by anaconda)
# Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Serdes) (rule written by anaconda)
# PCI device 0x8086:0x1098 (e1000e) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:48:94:53:6b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x1098 (e1000e) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:48:94:53:6a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"