I'm using an early 2009 Mac Pro as a server that's running a number of services in docker containers. Because the computer is too old to use the latest version of Docker, I have these docker containers running inside a linux VirtualBox VM using
However, I noticed that all of them have poor upload speed. It serves data to local connections over gigabit ethernet at around 20 MiB/s when it should be going at or around 100 MiB/s. Remote connections tend to go at around 1.0-1.5 MiB/s when my internet connection's bandwidth is 2.5 MiB/s. So it's able to utilize about 20-50% of the available bandwidth -- quite poor!
I've found that this is the case for multiple different services running inside a docker container, so it's not just the fault of one service. One way I tested this was by running a simple Python HTTP server in one of the docker containers and found it had exactly the same poor upload speed as every other service. The same server running outside the VM had no issues with slow upload speeds.
Is there anything I can do to improve VirtualBox's upstream network performance?
I did see this thread in serverfault suggesting that the issue is VirtualBox's buffer sizes when VirtualBox is set to NAT mode. However when I tried tweaking those settings it made the issue considerably worse, not better. Making the buffers as large as I could simply got me back to the same poor upload speed I had before.