Re: VirtIO Net Tuning

From: Marek Zarychta <zarychtam_at_plan-b.pwste.edu.pl>
Date: Wed, 25 Mar 2026 15:32:42 UTC
On 25.03.2026 at 16:20, Mark Saad wrote:
>
>
> On Wed, Mar 25, 2026 at 10:54 AM Michael Tuexen <tuexen@freebsd.org> 
> wrote:
>
>     > On 25. Mar 2026, at 15:06, Mark Saad <nonesuch@longcount.org> wrote:
>     >
>     > Hello All
>     >   I have been playing with FreeBSD 14.3-RELEASE and 15.0-REELASE
>     amd64 qemu powered vms on a Linux cloud hosting setup. I have
>     noticed that with VirtIO net ( vtnet ) interfaces there is some
>     sort of tuning required , or there is some sort of limitation on
>     the packets per second and overall throughput the nics can push. 
>     I am not able to get any one interface to push more then 6Gb/s
>     bursts and 5.5Gb/s sustained. Before I go off the deep end with
>     details has anyone run into this , is this a known issue ?
>     Hi Mark,
>
>     as indicated by Mike, there has been a lot of improvements to
>     vtnet in 14.4 and 15.0
>     such that no special tuning is required.
>     If you find that some tuning is necessary to improve things, I
>     would like to know,
>     since this is not intended.
>     I am not saying that the vtnet driver can't be improved, only that
>     the default
>     settings should not need tweaking.
>
>     Best regards
>     Michael
>     >
>     > --
>     > mark saad | nonesuch@longcount.org
>
>
> Mike / Michael
>   I just tried FreeBSD 14.4 and saw the same results . The simple test 
> is this.
> Two VMS in the same network . Each VM has 14.4-RELEASE from using the 
> IMAGE .
> Each VM has 8 cores 16G ram , one vtnet nic and some disk.
>
> fish 10.240.65.6 sending to bird 10.240.65.7.
>
> root@fish:~ # iperf3 -c 10.240.65.7 -p 8080
> Connecting to host 10.240.65.7, port 8080
> [  5] local 10.240.65.8 port 10106 connected to 10.240.65.7 port 8080
> [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
> [  5]   0.00-1.06   sec   386 MBytes  3.04 Gbits/sec    0 1.20 MBytes
> [  5]   1.06-2.04   sec   368 MBytes  3.17 Gbits/sec    0 2.29 MBytes
> [  5]   2.04-3.05   sec   394 MBytes  3.26 Gbits/sec    0 3.44 MBytes
> [  5]   3.05-4.01   sec   359 MBytes  3.14 Gbits/sec    0 3.92 MBytes
> [  5]   4.01-5.04   sec   395 MBytes  3.22 Gbits/sec    0 3.92 MBytes
> [  5]   5.04-6.04   sec   342 MBytes  2.86 Gbits/sec    0 3.92 MBytes
> [  5]   6.04-7.06   sec   426 MBytes  3.48 Gbits/sec    0 3.92 MBytes
> [  5]   7.06-8.02   sec   369 MBytes  3.25 Gbits/sec    0 3.92 MBytes
> [  5]   8.02-9.04   sec   422 MBytes  3.46 Gbits/sec    0 3.92 MBytes
> [  5]   9.04-10.02  sec   244 MBytes  2.08 Gbits/sec    0 3.92 MBytes
> - - - - - - - - - - - - - - - - - - - - - - - - -
> [ ID] Interval           Transfer     Bitrate         Retr
> [  5]   0.00-10.02  sec  3.62 GBytes  3.10 Gbits/sec    0        sender
> [  5]   0.00-10.02  sec  3.61 GBytes  3.10 Gbits/sec        receiver
>
> iperf Done.
> root@fish:~ #
>
> Running 15.0-RELEASE was not much of a difference.
>
>
> -- 
> mark saad | nonesuch@longcount.org

Hello Mark,

are you sure that vtnet(4) is the culprit ? What is the topology ? How 
are you interconnecting these VMs ?

  --
Marek Zarychta