Virt IO Performance

Saturday, October 4th, 2008

banner_kvm_forum_2008

One 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