Server 2019 Hyper-V slow network file transfer due to receive segment coalescing (RSC)

7
receive segment coalescing

What is receive segment coalescing?

Receive Segment Coalescing (RSC) is an offload technology in Windows Server and Windows 10 that can help reduce how much of the CPU is used in network processing.

RSC works by using the network interface card (NIC), which looks at the data from incoming packets and strips them before combining — or coalescing — these segments into a singular packet. The NIC will then send this coalesced packet to an application, resulting in the CPU needing to intervene much less on the receive-side. This, in turn, allows the CPU to take care of other important tasks, including increased productivity and scalability support. RSC only supports the receive-side of network traffic, so it does not affect outgoing network traffic.

To use RSC, administrators must have a network adapter card that is RSC-capable. If the organization has a virtualized environment, the NIC must also be able to support single-root I/O virtualization.

What versions of Windows is this affecting?

This issue affects Windows 10 and Windows Server 2019 (Hyper-V, GUI, Core and Nano).

RSC is not part of Windows 7 and so is not affected by this issue either as a stand-alone client or when accessing a Server 2019 via SMB.

What performance difference are we talking about?

Prior to disabling RSC on the VM
Prior to disabling RSC on the VM
With RSC disabled on the VM
With RSC disabled on the VM
With RSC disabled on the V-Switch
With RSC disabled on the V-Switch
Disable-NetAdapterRsc * effect on performance

Data write (upload) increased by roughly 6% and data read (download) by a huge 25.8%

Can I implement this fix live?

Yes, this can be done live with no adverse effects on either the Host, VM or Client machines. See the video below demonstrating running the Disable-NetAdapterRsc * on a Server 2019 server with minimal loss of pings and file transfers auto restarting.

How do I implement this fix?

To implement this fix you can run the command below in a PowerShell Admin console. This will disable RSC on all network adaptors.

Disable-NetAdapterRsc *

To disable RSC on a specific Network Card first you will need to know the name of the card which can be found by running the command below in a PowerShell Admin console.

Get-NetAdapter

Take note of the adaptor name you wish to disable RSC on and run the command below in a PowerShell Admin console substituting NAME for the name of the adaptor to disable RSC on.

Disable-NetAdapterRsc -Name “NAME”

What about Hyper-V?

Microsoft state that’s as default RSC is set to Enabled. You can check this using the command

Get-VMSwitch -Name NAME | Select-Object *RSC*

To disable RSC on all Hyper-V switches run the below in a PowerShell Admin console.

Get-VMSwitch | Set-VMSwitch -EnableSoftwareRsc:$FALSE

Or to disable RSC on a given Hyper-V switch first find the name of the switch by running the command below in a PowerShell Admin console

Get-VmSwitch

Take note of the switch name you wish to disable RSC on and run the command below in a PowerShell Admin console substituting NAME for the name of the switch to disable RSC on.

Set-VMSwitch -Name “NAME” -EnableSoftwareRsc:$FALSE

What if I need to re-enable RSC?

Re-enabling RSC is as simple as it was to disable and again can be done with no downtime required.

If you want to re-enable RSC on your Hyper-V switch you can use the below command

Set-VMSwitch -Name “NAME” -EnableSoftwareRsc:$TRUE

And to re-enable of a network adaptor this can be achieved with

Enable-NetAdapterRsc *

Found priceless insights in this blog? Support the author’s creativity – buy them a coffee!

7 thoughts on “Server 2019 Hyper-V slow network file transfer due to receive segment coalescing (RSC)

  1. Thanks for the article, but there seem to be a misinformation. You state that Windows 7 is not affected by this issue, while it is exactly the opposite case.
    Due RSC not being known to Windows 7 it gets hugely negative effected, we noticed. All our Windows 10 clients were connecting to network shares on a virtual Windows 2019 Server just fine. Opening pictures all fast, but all Windows 7 clients had delays, when opening pictures, so big, that the program became unresponsive after a minute and longer.
    Disabling RSC for the fileserver alone, already drastically changed the outcome for those Windows 7 clients, having no issues any longer.

    1. Thanks for the info. Windows 7 is now no longer supported by Microsoft and such no longer receives security updates. With this being the case I suggest you upgrade to Windows 10 to ensure you are secured.

      1. If it would be so easy to upgrade the OS in the industry … but some software just doesn’t get updated or it is too expensive (like we are still using Inventor 2010, but for Windows 10 x64 you need a new version which costs per year as much as we paid for a lifetime licence).
        I’m happy I am finally able to switch to Server 2019 from 2008 R2. So IRL there are surely still Windows 7 computers being used in companies, that’s why I thought, the hint could still be worth something.

        And with some issues that came with Windows 10 patches or issues like accessing \\.\globalroot\device\condrv\kernelconnect leading to instant BSOD in Windows 10, but not Windows 7 – it is a mixed thing regarding OS security and a company’s stability.

  2. We noticed that prior to the Disable-NetAdapterRsc that our Hyper-V guests were exhausting TCP ports to the point where they could no longer even run gpupdate or make SQL connections. However, netstat did not show any connections, so these were somehow “phantom” requests that were getting stuck in an executable space, because if we restarted services that could no longer make connections, they were suddenly able to again for a period of time before this would happen again. Very bizarre indeed!

Leave a Reply

Your email address will not be published. Required fields are marked *