bhyve Network performance of FreeBSD guest

Hello.

I am starting to explore bhyve on this old hardware:
hm.model: Intel(R) Pentium(R) CPU G645 @ 2.90GHz
ram: 4GB
ada0: ATA8-ACS SATA 3.x device
root is on ZFS

i have inslalled 3 VMs on this machine:
1) FreeBSD 14 (UFS)
2) OpenBSD 7.4
3) Debian 12

All have same parameters: 20GB virtio-blk disk, 512MB RAM, 2 x vCPU, virtio-net network interface and are connected to the same bridge.

My first measurement was network from host to guest. On each guest is running: iperf -s

and connection is started from host machine: iperf -c 10.0.0.x

results are here:
1) Debian -> 2.85 Gbits/s
2) OpenBSD -> 857 MBits/s
3) FreeBSD -> 532Mbits/s

Surprisingly FreeBSD has the worst results.

I tried some tweaks like this, but without any noticeable change:
hw.vtnet.csum_disable=1
hw.vtnet.tso_disable=1

Then I tried communication between two guest:
Debian VM <-----> Debian VM => 800-1100Mbits/s
FreeBSD VM <----> FreeBSD VM => 60-100Mbits/s

What could be couse of such radical difference in network throughput? I have tried emulated e1000 network interface too but it was much worse. I have increased RAM to 1GB as another try but it was almost same.

Any ideas please?

Thank you.
 
I've done extensive testing of freebsd, openbsd, netbsd, ubuntu server and alpine linux very recently. The latter two get wire speeds as bhyve guests on a -current bhyve host, testing to a stable-14 workstation. FreeBSD 14-p5 performed the worst in iperf3 testing - 35% of line speed, twice as bad as a 13.4 vm.

depending on your host interface, try `ifconfig interface -lro -tso -vlanhwcsum -vlanhwtso`
 
Back
Top