Virt IO Performance
Saturday, October 4th, 2008One of the latest cool new virtualization features KVM offers, is “VirtIO”, which is paravirtualized networking – a fancy way of saying “Really fast networking that runs at or near native host speed”.
Although the tun/tap based networking we’ve been using for over a year has proven itself to be very fast and reliable, we’ve done some experimenting with VirtIO after attending this June’s KVM Forum in Napa.
We’ve applied some benchmarks from the KVM virtio instructions, here:
Using VirtIO NIC – Kernel based Virtual Machine
and came up with about 40% higher than their results, guest-to-host, even with no virtio:
Ubuntu Intrepid Ibex client, v.sep30, no virtio:
sysadmin@unconf-ubu810-oct3:~$ sudo iperf -c librehost.com -w 65536 -p 12345 -t 60
————————————————————
Client connecting to librehost.com, TCP port 12345
TCP window size: 128 KByte (WARNING: requested 64.0 KByte)
————————————————————
[ 3] local 216.218.243.155 port 60365 connected with 216.218.243.130 port 12345
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-60.0 sec 995 MBytes 139 Mbits/sec
sysadmin@unconf-ubu810-oct3:~$
Host/server:
root@librehost-h64:~# iperf -s -w 65536 -p 12345 -I 5
WARNING: option -I is not valid for server mode
iperf: ignoring extra argument — 5
————————————————————
Server listening on TCP port 12345
TCP window size: 128 KByte (WARNING: requested 64.0 KByte)
————————————————————
[ 4] local 216.218.243.130 port 12345 connected with 216.218.243.155 port 60365
[ 4] 0.0-60.0 sec 995 MBytes 139 Mbits/sec
root@librehost-h64:~#
After virtio installed & configured, showing ~5x speedup:
sysadmin@unconf-ubu810-oct3:~$ sudo iperf -c librehost.com -w 65536 -p 12345 -t 60
————————————————————
Client connecting to librehost.com, TCP port 12345
TCP window size: 128 KByte (WARNING: requested 64.0 KByte)
————————————————————
[ 3] local 216.218.243.155 port 36958 connected with 216.218.243.130 port 12345
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-60.0 sec 3.90 GBytes 559 Mbits/sec
sysadmin@unconf-ubu810-oct3:~$
And on the server/host:
root@librehost-h64:/vm/155# iperf -s -w 65536 -p 12345 -I 5
WARNING: option -I is not valid for server mode
iperf: ignoring extra argument — 5
————————————————————
Server listening on TCP port 12345
TCP window size: 128 KByte (WARNING: requested 64.0 KByte)
————————————————————
[ 4] local 216.218.243.130 port 12345 connected with 216.218.243.155 port 36958
[ 4] 0.0-60.0 sec 3.90 GBytes 559 Mbits/sec
In conclusion, with this 5X speedup, all our Ubuntu Intrepid Ibex-based vMachines will offer virtio installed soon; likely by the time Ibex is released.
Ask for it and we’ll be sure to install it by hand on your VM if so desired.
j