Hi all,
I have been comparing FreeBSD and opnsense network performance inside proxmox with virtio nics. Using iperf, I can push 4-5 Gbits from/to FreeBSD (vanilla install) to a Linux host. Doing the same with opnsense, and for that matter pfsense, gets me at best 300-500 Mbits. Routing performance is consistent with the latter number.
While iperf is running the intr{irqxxx, virtio} thread is taking ~50% and the kernel{virtio} thread another ~30 of a single core. I believe I disabled pf and it didn't seem to make a difference. In contrast, I am only seeing ~40% in the intr{} thread on FreeBSD.
Does anyone have a guess what might be going on?
is offloading enabled?
In the guests or in the hosts? Which offloading?
Bingo!
Disabling tso/lro fixed iperf performance from/to the opnsense guest. It didn't much for forwarding performance (vm->opnsense->vm) however. But this is a different ballgame.