Skip to content

VIRTIO Slow performance compared to Linux/FreeBSD #259

@Thalhammer

Description

@Thalhammer

Important notices

Before you add a new report, we ask you kindly to acknowledge the following:

Describe the bug
Virtio interfaces perform vastly slower than they should for no obvious reasons.

To Reproduce

Steps to reproduce the behavior:

  1. Install OPNsense on a kvm hypervisor like Proxmox
  2. Add a virtio interface
  3. Install iperf3 on vm and host
  4. Measure throughput to the virtio interface

Expected behavior
OPNsense is capable of performing similar to Linux or stock FreeBSD. For my system this is around 25Gbit/s (Linux) or 22Gbit/s (FreeBSD) without any changes/tweaks inside the respective vms and a default mtu of 1500.

Describe alternatives you considered
Right now my best bet is switching to a Linux based router like openwrt or vyos, however I am used to OPNsense and PFsense so I'd prefer to avoid that.

Screenshots

Relevant log files

Additional context
The issue is present on both OPNsense and PFsense. While performing the speedtest neither the host nor VM have excessive CPU usage, not even on a single core.
I have been told that increasing the mtu might improve the performance, however thats not an option for me because I have devices in my network that don't support that. In addition both Linux as well as stock FreeBSD are capable of performing well even without increased mtu.
The issue is not new to Proxmox 9 or OPNsense 25, it has existed since I use opnsense/pfsense (at least 5 years now), but soonish my internet is going to become fast enough for it to be a bottleneck.

Environment

OPNsense 25.7.1 (amd64)
Intel® Xeon™ CPU E5-2697 v3 (2 Sockets with 14C/28T each, the VM is allocated 4 of them)
Network Virtio
Hypervisor Proxmox 9.0.4 (Kernel 6.14.8-2-pve, qemu 10.0.2)

Metadata

Metadata

Assignees

No one assigned

    Labels

    upstreamThird party issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions