Lxd low upload speed

Using hetzner dedicated server, with latest version of lxd, my containers geting very low upload speed 4mb/s while my host card is 1gb/s on teh host machine i can test it and its exactly 1gb upload and download.
with lxd, am using macvlan networks, after creating the container, i specify the mac address provided from hetzner for the additinal ip.
with hetzner, they keep saying additional ip’s are 1gb also.
this type of server i have dose not have pass-through, that is why am using macvlan.
i also have followed lxd GitHub page for production configs, and i followed it all.
what would the reason am getting low upload speed on my containers? what should be done to get the actual speed of the port please?

Can you try creating a normal LXD bridge and attach a container to that, then test your speed from there?

If such routed networking through a LXD bridge behaves at full speed, then it’s likely an issue with either the macvlan driver or something going on at the nic or switch level.

An alternative then would be to setup a bridge for your wan port and have both host and containers attached to it. This would effectively work the exact same way as macvlan but not use the macvlan driver and nic support. This however still wouldn’t save you if the issue is related to shaping based on mac address somewhere on hetzner’s infrastructure.

Hi @stgraber, just quick test with host made bridge same result, with lxd made bridge only download ,no upload, i made sure to enable ip.v4 forwarding while making the bridge.


When you say “upload”…

Upload from where to where?

Uploading from your home to hetzner?

Uploading data from one hetzner to another hetzner server?

Hi, uploading from hetzner to any where. Or downloading from hetzner.

Okay wasn’t clear enough sorry…

Uploading to/from using what software/tool, what kind of data/file/content

Do you have any iperf etc measurement data that might compare perceived drop in performance


Hi, nothing special at all. pure container no configs nothing at all. but both container and host have this enabled.
up ip link set eth0 txqueuelen 5000 as it was advised by lxd production page on github for 10GB cards, i have 1 GB so went with 5000 instead of 10000.
just dd dummy file, using curl, using wget, using nginx enabled configs for large files…etc.
if you have better way testing the network performance please share.

No that info just helps picture what’s going on

Sorry, hope you understand

udp vs tcp,. ftp vs rsync results, etc

@stgraber Hi, with this infrastructure, am i able to have multiple bridges, each bridge have a public ip connected to it, using mac’s?
The need for this is to get nat for some containers using other public ip from the hosts.
would that be possible?