6

i have a KVM linux based virtual machines, as the network performance of the host is running perfect with 1 Gbps (on the internal network) and using iperf tools it show that the network is running perfect on the host, but guests have slow network performance as iperf result was so strange as it is not 100 Mbps and is not 1 Gbps, it's between 350 and 500 Mbps maximum. This is the result of runnin iperf -c servername -P 15:

[ ID] Interval       Transfer     Bandwidth
[ 17]  0.0-10.0 sec  68.6 MBytes  57.5 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  18.6 MBytes  15.5 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec  61.9 MBytes  51.9 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[ 11]  0.0-10.0 sec  16.0 MBytes  13.4 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[ 10]  0.0-10.0 sec  24.3 MBytes  20.4 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[ 15]  0.0-10.0 sec  20.2 MBytes  16.9 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[ 12]  0.0-10.0 sec  30.2 MBytes  25.3 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  36.2 MBytes  30.3 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  8]  0.0-10.0 sec  23.6 MBytes  19.8 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  9]  0.0-10.0 sec  24.2 MBytes  20.3 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[ 14]  0.0-10.0 sec  31.0 MBytes  25.9 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  7]  0.0-10.0 sec  16.6 MBytes  13.9 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[  6]  0.0-10.0 sec  18.8 MBytes  15.7 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[ 13]  0.0-10.0 sec  13.3 MBytes  11.2 Mbits/sec
[ ID] Interval       Transfer     Bandwidth
[ 16]  0.0-10.0 sec  29.6 MBytes  24.8 Mbits/sec
[SUM]  0.0-10.0 sec    433 MBytes    363 Mbits/sec

I tested different network models and the best result was with the virtio model any one please can help to get the full performance of network and be 1 Gbps.

I would like to add that when i execute the command brctl show I got the fbridge name

bridge id       STP enabled interfaces
br0     8000.d067e5fb7dec   no      eth0
                            vnet0
                            vnet1
                            vnet2
br2     8000.d067e5fb7dee   no      eth1
virbr0      8000.000000000000   yes

can this affect the network speed of the guest?

3 Answers3

5

Try changing ethernet driver settings.

/sbin/ethtool --offload eth0 gso off tso off sg off gro off 

If you experience low performance with the para-virtualized network drivers, verify the setting for the GSO and TSO features on the host system. The para-virtualized network drivers require that the GSO and TSO options are disabled for optimal performance.

sotirov
  • 216
4

For best network performance, use virtio drivers in the definition of the host in KVM.

For example:

<interface type='bridge'>
  <source bridge='virbr0'/>
  <mac address="46:AD:2B:48:00:00"/>
  <model type='virtio'/>
</interface>

This posssibly requires additionnal virtio drivers. They are found in a CD that can be mounted on the virtual host. (source code https://github.com/virtio-win/kvm-guest-drivers-windows and binary download https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.217-1/)

4

I suppose you already using virtio driver in your VMs, its a must to have decent network performance.

You can also try using quite new guest netdev model, which uses some advanced memory mapping techniques to achieve even better network performance. You VMs should use the same configuration as with virtio drivers; kvm parameters to set start VM should be like this (fix them for your needs):

-netdev tap,vhost=on,ifname=vnet0,id=guest0,script=/path/to/custom/tap-ifup,downscript=no \
-device virtio-net-pci,netdev=guest0,mac=00:16:3e:47:aa:53

With this configuration I've achieved 6 Gb/s.

artyom
  • 1,106