Hi,
In case someone is interested, I have tried to run a comparison between
the new Virtio network driver and e1000 emulation.
This is more of a real life home usage example, I have used my personal
firewall setup for the tests. Your results may vary. I have issued pfctl
-Fa for the tests. The tests were done against an old Dell D600 running
Ubuntu.
I have not run any tests on the storage driver, but using it the KVM
guest feels much faster, especially booting or shutting down is really
fast for me.
Host (Ubuntu 12.04 LTS, Intel MB DB65AL, i3-2120T CPU) performance:
# iperf -t 30 -i 1 -c 1.1.1.150
------------------------------------------------------------
Client connecting to 1.1.1.150, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[ 3] local 1.1.1.100 port 51260 connected with 1.1.1.150 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 89.6 MBytes 752 Mbits/sec
[ 3] 1.0- 2.0 sec 87.4 MBytes 733 Mbits/sec
[ 3] 2.0- 3.0 sec 87.9 MBytes 737 Mbits/sec
[ 3] 3.0- 4.0 sec 87.6 MBytes 735 Mbits/sec
[ 3] 4.0- 5.0 sec 88.5 MBytes 742 Mbits/sec
[ 3] 5.0- 6.0 sec 87.2 MBytes 732 Mbits/sec
[ 3] 6.0- 7.0 sec 87.8 MBytes 736 Mbits/sec
[ 3] 7.0- 8.0 sec 87.9 MBytes 737 Mbits/sec
[ 3] 8.0- 9.0 sec 87.9 MBytes 737 Mbits/sec
[ 3] 9.0-10.0 sec 87.6 MBytes 735 Mbits/sec
[ 3] 10.0-11.0 sec 87.8 MBytes 736 Mbits/sec
[ 3] 11.0-12.0 sec 88.0 MBytes 738 Mbits/sec
[ 3] 12.0-13.0 sec 87.9 MBytes 737 Mbits/sec
[ 3] 13.0-14.0 sec 87.8 MBytes 736 Mbits/sec
[ 3] 14.0-15.0 sec 88.5 MBytes 742 Mbits/sec
[ 3] 15.0-16.0 sec 87.2 MBytes 732 Mbits/sec
[ 3] 16.0-17.0 sec 87.2 MBytes 732 Mbits/sec
[ 3] 17.0-18.0 sec 88.6 MBytes 743 Mbits/sec
[ 3] 18.0-19.0 sec 87.2 MBytes 732 Mbits/sec
[ 3] 19.0-20.0 sec 87.5 MBytes 734 Mbits/sec
[ 3] 20.0-21.0 sec 87.9 MBytes 737 Mbits/sec
[ 3] 21.0-22.0 sec 88.0 MBytes 738 Mbits/sec
[ 3] 22.0-23.0 sec 87.9 MBytes 737 Mbits/sec
[ 3] 23.0-24.0 sec 87.8 MBytes 736 Mbits/sec
[ 3] 24.0-25.0 sec 87.9 MBytes 737 Mbits/sec
[ 3] 25.0-26.0 sec 87.4 MBytes 733 Mbits/sec
[ 3] 26.0-27.0 sec 87.9 MBytes 737 Mbits/sec
[ 3] 27.0-28.0 sec 87.8 MBytes 736 Mbits/sec
[ 3] 28.0-29.0 sec 87.8 MBytes 736 Mbits/sec
[ 3] 29.0-30.0 sec 87.8 MBytes 736 Mbits/sec
[ 3] 0.0-30.0 sec 2.57 GBytes 737 Mbits/sec
OpenBSD 5.2 Generic with e1000 emulation:
Host CPU at 110-120%
# iperf -t 30 -i 1 -c 1.1.1.150
------------------------------------------------------------
Client connecting to 1.1.1.150, TCP port 5001
TCP window size: 17.0 KByte (default)
------------------------------------------------------------
[ 3] local 1.1.1.2 port 8018 connected with 1.1.1.150 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 15.0 MBytes 126 Mbits/sec
[ 3] 1.0- 2.0 sec 15.8 MBytes 132 Mbits/sec
[ 3] 2.0- 3.0 sec 17.5 MBytes 147 Mbits/sec
[ 3] 3.0- 4.0 sec 17.5 MBytes 147 Mbits/sec
[ 3] 4.0- 5.0 sec 17.5 MBytes 147 Mbits/sec
[ 3] 5.0- 6.0 sec 17.1 MBytes 144 Mbits/sec
[ 3] 6.0- 7.0 sec 17.0 MBytes 143 Mbits/sec
[ 3] 7.0- 8.0 sec 18.5 MBytes 155 Mbits/sec
[ 3] 8.0- 9.0 sec 17.4 MBytes 146 Mbits/sec
[ 3] 9.0-10.0 sec 17.4 MBytes 146 Mbits/sec
[ 3] 10.0-11.0 sec 17.6 MBytes 148 Mbits/sec
[ 3] 11.0-12.0 sec 16.8 MBytes 141 Mbits/sec
[ 3] 12.0-13.0 sec 15.9 MBytes 133 Mbits/sec
[ 3] 13.0-14.0 sec 18.4 MBytes 154 Mbits/sec
[ 3] 14.0-15.0 sec 17.6 MBytes 148 Mbits/sec
[ 3] 15.0-16.0 sec 17.4 MBytes 146 Mbits/sec
[ 3] 16.0-17.0 sec 17.5 MBytes 147 Mbits/sec
[ 3] 17.0-18.0 sec 17.5 MBytes 147 Mbits/sec
[ 3] 18.0-19.0 sec 17.5 MBytes 147 Mbits/sec
[ 3] 19.0-20.0 sec 17.5 MBytes 147 Mbits/sec
[ 3] 20.0-21.0 sec 16.0 MBytes 134 Mbits/sec
[ 3] 21.0-22.0 sec 16.2 MBytes 136 Mbits/sec
[ 3] 22.0-23.0 sec 18.6 MBytes 156 Mbits/sec
[ 3] 23.0-24.0 sec 15.9 MBytes 133 Mbits/sec
[ 3] 24.0-25.0 sec 16.9 MBytes 142 Mbits/sec
[ 3] 25.0-26.0 sec 16.8 MBytes 141 Mbits/sec
[ 3] 26.0-27.0 sec 16.5 MBytes 138 Mbits/sec
[ 3] 27.0-28.0 sec 16.9 MBytes 142 Mbits/sec
[ 3] 28.0-29.0 sec 17.5 MBytes 147 Mbits/sec
[ 3] 29.0-30.0 sec 17.2 MBytes 145 Mbits/sec
[ 3] 0.0-30.0 sec 513 MBytes 143 Mbits/sec
OpenBSD 5.2 Generic with Virtio patches:
Host CPU at 130-140%
# iperf -t 30 -i 1 -c 1.1.1.150
------------------------------------------------------------
Client connecting to 1.1.1.150, TCP port 5001
TCP window size: 17.0 KByte (default)
------------------------------------------------------------
[ 3] local 1.1.1.2 port 47265 connected with 1.1.1.150 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 20.6 MBytes 173 Mbits/sec
[ 3] 1.0- 2.0 sec 25.4 MBytes 213 Mbits/sec
[ 3] 2.0- 3.0 sec 23.4 MBytes 196 Mbits/sec
[ 3] 3.0- 4.0 sec 28.1 MBytes 236 Mbits/sec
[ 3] 4.0- 5.0 sec 26.6 MBytes 223 Mbits/sec
[ 3] 5.0- 6.0 sec 24.1 MBytes 202 Mbits/sec
[ 3] 6.0- 7.0 sec 22.1 MBytes 186 Mbits/sec
[ 3] 7.0- 8.0 sec 21.4 MBytes 179 Mbits/sec
[ 3] 8.0- 9.0 sec 21.5 MBytes 180 Mbits/sec
[ 3] 9.0-10.0 sec 24.1 MBytes 202 Mbits/sec
[ 3] 10.0-11.0 sec 27.4 MBytes 230 Mbits/sec
[ 3] 11.0-12.0 sec 24.9 MBytes 209 Mbits/sec
[ 3] 12.0-13.0 sec 24.2 MBytes 203 Mbits/sec
[ 3] 13.0-14.0 sec 26.2 MBytes 220 Mbits/sec
[ 3] 14.0-15.0 sec 20.9 MBytes 175 Mbits/sec
[ 3] 15.0-16.0 sec 25.5 MBytes 214 Mbits/sec
[ 3] 16.0-17.0 sec 28.0 MBytes 235 Mbits/sec
[ 3] 17.0-18.0 sec 22.8 MBytes 191 Mbits/sec
[ 3] 18.0-19.0 sec 21.9 MBytes 184 Mbits/sec
[ 3] 19.0-20.0 sec 26.9 MBytes 225 Mbits/sec
[ 3] 20.0-21.0 sec 22.4 MBytes 188 Mbits/sec
[ 3] 21.0-22.0 sec 25.5 MBytes 214 Mbits/sec
[ 3] 22.0-23.0 sec 27.6 MBytes 232 Mbits/sec
[ 3] 23.0-24.0 sec 18.8 MBytes 157 Mbits/sec
[ 3] 24.0-25.0 sec 17.6 MBytes 148 Mbits/sec
[ 3] 25.0-26.0 sec 19.8 MBytes 166 Mbits/sec
[ 3] 26.0-27.0 sec 21.1 MBytes 177 Mbits/sec
[ 3] 27.0-28.0 sec 27.5 MBytes 231 Mbits/sec
[ 3] 28.0-29.0 sec 28.1 MBytes 236 Mbits/sec
[ 3] 29.0-30.0 sec 28.2 MBytes 237 Mbits/sec
[ 3] 0.0-30.0 sec 723 MBytes 202 Mbits/sec