On recent versions of Hyper-V i found that many of my linux VMs (home assistant, docker hosts, etc) were really slow. This came to a head when i had terrible performance of portainer on my docker swarm and containers on the docker swarm were slow.
To cut a long story short the issue is Receive Segment Coalescing (RSC) and thanks to this site i learnt how to fix it.
Ether logon to each hyper-v host or use a remote PS session and issue the following command for the virtual switch the VMs are connected to. In my case the virtual switch is call External:
Set-VMSwitch -Name External -EnableSoftwareRsc $false
Alternatively if you want to do it for the whole hyperv host use:
netsh int tcp set global RSC=Disabled