Windows Server 2019 brings two features intended to boost network performance: Receive Segment Coalescing in the vSwitch and Dynamic Virtual Machine Multi-Queue.
Receive Segment Coalescing expands to Hyper-V virtual switches
Receive Segment Coalescing (RSC) is not a new idea. Microsoft introduced it in Windows Server 2012 to reduce the networking workload on the server CPU. Each network packet produces a processor interrupt, which requires the processor to stop its work and attend to the network traffic. In traditional physical systems, this network load was relatively slight, but with the advent of virtualization and the broad acceptance of VMs and containers -- each of which demands network support -- the burden on the network and processor can be far more pronounced.
Coalescing mitigates the network's load on the processor by offloading packet handling to the network interface card and enabling the NIC to combine incoming traffic into fewer -- but larger -- packets. This reduces processor interrupts and eases the network load on the processor. With RSC, it takes less processor work to handle more network traffic.
The problem with older RSC technology was it did not extend to Hyper-V virtual switches. But Microsoft developed Windows Server 2019 SDN features to fix this limitation and enable virtual workloads to take advantage of RSC when connected to virtual switches, which benefits software-defined networks that rely on virtual components, such as virtual switch (vSwitch) elements. RSC in the vSwitch is typically available without adding any specialized hardware or software components.
Dynamic Virtual Machine Multi-Queue spreads the CPU workload
The next Windows Server 2019 SDN technology is Dynamic Virtual Machine Multi-Queue (d.VMMQ), which improves the way processors distribute network load. As networks offer increased bandwidth, the processing required to support network traffic could potentially exceed the capabilities of a single processor. Previous technologies, such as Virtual Machine Queue and Virtual Machine Multi-Queue addressed this issue by enabling network traffic to be distributed among multiple processors in the system.
The problem is that these technologies also impose complexities in planning, monitoring and tuning to distribute network traffic properly. The d.VMMQ feature overcomes this challenge by automatically tuning the system on the fly to spread network overhead among processors in the most efficient way for each VM. For example, when network traffic is low, as few as one processor can handle all of the network traffic. As network traffic increases, d.VMMQ can expand to distribute network traffic among multiple processors. And as the network traffic falls off again, d.VMMQ can reduce the number of processors involved in handling the network load again.