I’m experiencing a rather peculiar issue with network speed in a FreeBSD virtual machine and Linux containers running on IncusOS. The VM network interface and containers are tied to a physical interface via a bridge.
Download speed is capped to about 10-100 Mbps. The virtual machine was created with incus-migrate from a raw image.
To eliminate potential image issues, I’ve deployed the same image to a few different machines and hypervisors. I’ve also deployed the same Ubuntu and Debian container to other incus hosts.
Bluefin (Fedora based bootc image) + Incus 6.18 - full network speed
Bluefin (Fedora based bootc image) + libvirt - full network speed
XCP-ng 8.3 LTS - full network speed
Containers and FreeBSD virtual machine achieve full gigabit on every other machine/platform. Only IncusOS is experiencing this. Sometimes, I’m able to achieve 250 Mbps but not for long. Most of the time, network speed is about 10-20 Mbps.
Most my IncusOS boxes are on at least 10Gbps but I just tested network throughput on a random Thinkpad I’ve been using for testing on consumer-grade stuff and it’s behaving as expected:
The plot thickens … It appears that only transfers from WAN are affected.
Internal traffic is behaving as expected, iperf3 is able to saturate the link to a different machine in the same local network.
Downloads from apt or pkg repos are extremely slow. speedtest-go can sometimes get to 200 Mbps, it’s usually hovering at 30 Mbps while consistently hitting 900+ Mbps on any other physical machine or incus container/VM that’s not running on IncusOS.
Ah, it could be some fun around TCP window sizing or something?
There are a variety of algorithms for that stuff, though why it would only affect that particular system is a bit odd.
Fresh Debian 13 install on the same hardware with kernel, zfs and incus from Zabbly repositories.
On the host, I am able to saturate 1 Gbps fiber connection to the Internet.
In containers (ubuntu, debian) and FreeBSD VM that’s not the case. If I’m lucky, I get 200-230 Mbps down. Most of the time, it’s between 12 and 50 Mbps.
Containers and VM are connected to the LAN via unmanaged bridge.
I think it’s safe so say that this is caused by the Realtek r8169 driver.
I was able to find numerous reports about slow download speed. I’m even able to reproduce it on the host. If I start a download or fire up a speed test right after boot, download speed is between 20 and 30 Mbit/s for the first couple of tries. After that, I’m getting 900+ Mbit/s as expected.
When the host is struggling, VMs and containers are struggling too. When the host download speed settles, VMs and containers get about 200 Mbit/s.