Syncthing performance slow when using virtual switches

When virtual switches are being used the network speed drops to a 100kbps. When running syncthing without virtual switches it works fine.

Going to need a lot more detail to diagnose anything (OS, infrastructure, etc.), but at least for me, I haven’t seen that issue with the VMs I set up for my employer and they’re all connected to virtual switches. The most recent one I benchmarked was syncing data at almost line speed, nearly maxing out the connection from my laptop.

1 Like

I am using windows 11 with hyperV, I tried syncing from one device to another. The devices are connected with 5ghz wifi. Without the virtual switches speed is good.

So you’ve got a pair of bare-metal boxes running Windows 11 each connected to a wireless router, and each box is got a VM (with Syncthing) hosted by Hyper-V?

Still not enough details about how the VMs, virtual switches wireless network adapters (type, model, brand) are all interconnected.

The bare-metal host machine is windows 11, and VMs on it are running linux. There are other bare-metal machines running windows 11 on the same network.

I am running syncthing on bare-metal machines only. The communication between syncthing instances is slow, only when virtual switches are active.

So, there’s just one bare-metal Windows 11 host with Hyper-V that has a virtual switch sharing a wireless NIC. Is the virtual switching in NAT or bridge mode?

Is the bare-metal Windows 11 Hyper-V host one of the Syncthing devices?

There are many bare-metal machines, some on them have their own virtual machines and some are used by people individually.

All host (baremetal) machines have syncthing. There is no vm to host communication between hosts and vms

Syncthing communication with machines that have virtual switches is slow, i.e. if a machine has a virtual switch syncthing is slow on it.

Some machines are wireless and some using ethernet. But it has no impact on network speed.

The virtual switches are Hyper-v Virtual Ethernet Adapter. The network is set to private.

Okay, so you do have additional virtual machines on multiple Hyper-V hosts.

Okay. Note that your earlier posted said “The devices are connected with 5ghz wifi.”

(Note that a virtual switch can use private addressing whether it’s in NAT or bridged mode.)

So unfortunately without a complete picture of the hardware, network, Hyper-V and other details, I can only make an educated guess based on the limited available information.

The problem definitely isn’t Syncthing. The symptoms you’ve described match a years long known issue with Windows 10/11 when it’s acting as a router/switch, especially when combined with Hyper-V.

The Virtual Switch in hyper-V don’t support NAT.

It’s been a while since Hyper-V was my primary hypervisor (I was also a former user of its predecessor, Virtual PC), but any virtualization platform that doesn’t offer NAT won’t have to worry about expending effort to support users for very long. :smirk:

As for Hyper-V and NAT…

https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network

That is true it has a few limitations in terms of networking, but it has great support from powershell. If I could just figure out why syncthing is slow over this network but other apps seems fine.

Here is complete info about the virtual ethernet


MacAddress                                       : [Redacted]
Status                                           : Up
LinkSpeed                                        : 1 Gbps
MediaType                                        : 802.3
PhysicalMediaType                                : Unspecified
AdminStatus                                      : Up
MediaConnectionState                             : Connected
DriverInformation                                : Driver Date 2006-06-21 Version 10.0.22621.1
DriverFileName                                   : VmsProxyHNic.sys
NdisVersion                                      :
ifOperStatus                                     : Up
ifAlias                                          : vEthernet (stage_1)
InterfaceAlias                                   : vEthernet (stage_1)
ifIndex                                          : 20
ifDesc                                           : Hyper-V Virtual Ethernet Adapter #2
ifName                                           : ethernet_32778
DriverVersion                                    : 10.0.22621.1
LinkLayerAddress                                 : [Redacted]
Caption                                          :
Description                                      :
ElementName                                      :
InstanceID                                       : [Redacted]
CommunicationStatus                              :
DetailedStatus                                   :
HealthState                                      :
InstallDate                                      :
Name                                             : vEthernet (stage_1)
OperatingStatus                                  :
OperationalStatus                                :
PrimaryStatus                                    :
StatusDescriptions                               :
AvailableRequestedStates                         :
EnabledDefault                                   : 2
EnabledState                                     : 5
OtherEnabledState                                :
RequestedState                                   : 12
TimeOfLastStateChange                            :
TransitioningToState                             : 12
AdditionalAvailability                           :
Availability                                     :
CreationClassName                                : MSFT_NetAdapter
DeviceID                                         : [Redacted]
ErrorCleared                                     :
ErrorDescription                                 :
IdentifyingDescriptions                          :
LastErrorCode                                    :
MaxQuiesceTime                                   :
OtherIdentifyingInfo                             :
PowerManagementCapabilities                      :
PowerManagementSupported                         :
PowerOnHours                                     :
StatusInfo                                       :
SystemCreationClassName                          : CIM_NetworkPort
SystemName                                       : [Redacted]
TotalPowerOnHours                                :
MaxSpeed                                         :
OtherPortType                                    :
PortType                                         :
RequestedSpeed                                   :
Speed                                            : 1000000000
UsageRestriction                                 :
ActiveMaximumTransmissionUnit                    : 1500
AutoSense                                        :
FullDuplex                                       :
LinkTechnology                                   :
NetworkAddresses                                 : [Redacted]
OtherLinkTechnology                              :
OtherNetworkPortType                             :
PermanentAddress                                 : [Redacted]
PortNumber                                       : 0
SupportedMaximumTransmissionUnit                 :
AdminLocked                                      : False
ComponentID                                      : vms_mp
ConnectorPresent                                 : False
DeviceName                                       : [Redacted]
DeviceWakeUpEnable                               : False
DriverDate                                       : 2006-06-21
DriverDateData                                   : 127953216000000000
DriverDescription                                : Hyper-V Virtual Ethernet Adapter
DriverMajorNdisVersion                           :
DriverMinorNdisVersion                           :
DriverName                                       : \SystemRoot\System32\drivers\VmsProxyHNic.sys
DriverProvider                                   : Microsoft
DriverVersionString                              : 10.0.22621.1
EndPointInterface                                : False
HardwareInterface                                : False
Hidden                                           : False
HigherLayerInterfaceIndices                      : {27}
IMFilter                                         : False
InterfaceAdminStatus                             : 1
InterfaceDescription                             : Hyper-V Virtual Ethernet Adapter #2
InterfaceGuid                                    : [Redacted]
InterfaceIndex                                   : 20
InterfaceName                                    : ethernet_32778
InterfaceOperationalStatus                       : 1
InterfaceType                                    : 6
iSCSIInterface                                   : False
LowerLayerInterfaceIndices                       : {25}
MajorDriverVersion                               :
MediaConnectState                                : 1
MediaDuplexState                                 : 0
MinorDriverVersion                               :
MtuSize                                          : 1500
NdisMedium                                       : 0
NdisPhysicalMedium                               : 0
NetLuid                                          : [Redacted]
NetLuidIndex                                     : 32778
NotUserRemovable                                 : True
OperationalStatusDownDefaultPortNotAuthenticated : False
OperationalStatusDownInterfacePaused             : False
OperationalStatusDownLowPowerState               : False
OperationalStatusDownMediaDisconnected           : False
PnPDeviceID                                      : ROOT\VMS_MP\0000
PromiscuousMode                                  : False
ReceiveLinkSpeed                                 : 1000000000
State                                            : 2
TransmitLinkSpeed                                : 1000000000
Virtual                                          : True
VlanID                                           :
WdmInterface                                     : False
PSComputerName                                   :
CimClass                                         : ROOT/StandardCimv2:MSFT_NetAdapter
CimInstanceProperties                            : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties                              : Microsoft.Management.Infrastructure.CimSystemProperties


I’d benchmark this with iperf. If iperf shows the same performance, it’s probably easier to ask on a Hyper-V related forum/subreddit.

The lack of enough details, plus conflicting information really does make it difficult to diagnose the problem and provide help…

For example, how is it possible that both “syncthing is slow over this network” (in reference to a virtual Ethernet interface), and the following quote from an earlier post are both true at the same time?

If Syncthing is running only bare-metal, it cannot be binding to a virtual NIC provided by Hyper-V.

I solved the problem, anyone else who faces the same problem, please visit. A virtual switch slows Host’s connection to other physical devices | Windows 11 Forum (elevenforum.com) :v:

I solved the problem, anyone else who faces the same problem, please visit. A virtual switch slows Host’s connection to other physical devices | Windows 11 Forum (elevenforum.com) :v: