UBUNTU-VM acts as a router to route traffic over wireguard (UBUNTU-VM is within a proxmox VE). NAS is an old WD EX2, which is not on wireguard, traffic from it passes through the proxmox UBUNTU-VM.
The problem is that bandwidth from NAS going outside to VPS is very slow, only 300KB/s (transfer C above) (NAS --> UBUNTU-VM --> VPS). If I mount the NAS on UBUNTU-VM using NFS, the transfer is acceptable (around 2.5 MB/s, my internet is 25 Mbits/s up and down).
I tried getting a file from another linux VM via scp (same as above) and the bandwidth is also slow (300KB/s). However, when I installed wireguard and scp directly using its wireguard IP, the transfer is OK (around 2.5MB/s).
I suspect there's some throttling happening in the UBUNTU-VM when routing traffic, but I don't know where to look. I already tried enabling multiqueue and set it to 8 (at the time of this writing my VM cores are 8), and ran "ethtool -L ens18 combine 8" per the documentation but it did not improve the bandwidth (still at 300KB/s).
I tried switching the VM Network Device model from VirtIO to Intel E1000 and the transfer initially begins with 1.6 MB/s speed and throttles back down to 300KB/s (VirtIO doesn't have a burst like this, same with the other models).
Also tried RPS using this guide but it didn't help.
What do you think is causing the bandwidth throttling when traffic is going through the UBUNTU-VM within the proxmox VE?
Last edited: