Windows 10/11: Poor network transfer performance, high Windows 11 CPU load – Part 1

Windows[German]When transferring data over a network, Windows has an amazing but unattractive effect. If you copy data between machines with Windows 10 and Windows 11, Windows 11 consumes 2 to 3 times more CPU power than Windows 10. In addition, the data transfer performance of a TCP/IP connection depends on the direction of the data transfer. Or in short, in Windows 11, there is a significant performance problem in network transfer when data is received. A blog reader has done various experiments and left the results to me. In Part 1, I prepare the topic and outline what came out of the measurements.

Discovery: TCP optimization

I recently reported on the problem of Microsoft's "de-optimization" of the TCP stack in the blog post Microsoft's TCP mess, how to optimize in Windows 10/11. Within the article I pointed also out the possibility of optimizing this by adjusting the TCP parameters. This can definitely improve network performance noticeably. Blog reader Alexander, aka MysticFoxDE, who wrote a script for the optimization, stayed on the topic. During tests he found another big problem in Windows 11 when transferring data over a network. He sent me his findings over the weekend (thanks for that) and I'll try to summarize them in two blog posts.

Test scenario with 2 workstations

As a test scenario, Alexander had two high-performance workstations , one with Windows 11 22H2 Enterprise, and one with Windows 10 Pro 22H2 (both on current patch level) connected directly with a patch cable. Both computers were equipped with a 10 Gigabit NIC. The driver versions for the network card were also identical.

Before measuring the network throughput between the workstations using PsPing64.exe, he reset the TCP stack, ran his TCP optimization script, restarted Windows, and then measured. That should rule out any unoptimized TCP settings as the cause. Alexander then proceeded to measure the bandwidths when transferring data from one station to the other, alternating measurements when transferring data from Windows 11 to the Windows 10 workstation and then from Windows 10 against Windows 11 as the server.

Glaring differences in bandwidth

The following image shows the average bandwidth when measuring the data transfer performance from the Windows 11 system (acting as PsPing client) to the workstation with Windows 10 (acting as Ps Ping server).

Data transfer Win 11 to Win 1o -> PsPing value
Data transfer Win 11 to Win 10 -> PsPing -value

The bandwidth is given with 1 GB/second on average. According to Alexander, this value is okay and was to be expected. Then he measured the bandwidth in the other direction, i.e. the Windows 10 workstation (PsPing client) measured the data transfer rate at the Windows 11 system (PsPing server).

Data transfer Win 10 to Win 11 -> PsPing value
Data transfer Win 10 to Win 11 -> PsPing -value

The data transfer rate dropped to 89 MB/s. Alexander did several measurements of TCP performance with different parameters and never got above 600 MB/s. He posted the relevant results in this Spiceworks community thread. During the tests he tried different optimizations of the TCP settings and wrote me about the final result:

Especially the speed when sending data from the workstation with Windows 11 (PsPing client) to the workstation with Windows 10 (PsPing server) was absolutely OK with 1GB/s and without RSS (Receive Side Scaling).

In the other direction, i.e. when the Windows 10 workstation (Ps-Ping server) sent data to the Windows 11 system (PsPing client), the performance was good at 500-600 MB/s, but did not come close to the [performance] in the other direction.

More measurement results can be found on administrator.de in this thread. The result is that a Windows 11 system serving as the receiver severely limits the transfer performance over the network, even though the TCP parameters were optimized.

Different CPU load during transfer

In an addendum, Alexander then had a few words to say about the CPU load on the two workstations. The short statement:

I also found out why the data flows well in one direction and not so well in the other.

Namely, if I now send data with a block size of 4K from the W11 workstation towards the W10 workstation, then the Windows 10 workstation needs the entire power of the first core of the i7-8700K CPU, which runs at 4300 MHz, when receiving the data at about 828.34 MB/s.

Sprich, das W11 verbrennt beim Empfang von Daten über das Netzwerk, mehr als doppelt so viel CPU-Leistung, als es ein W10 macht. Die haben definitiv ein riesiges Problem im Bereich des NIC Empfangspuffer Handlings. Das hat überhaupt nichts mehr mit Effizienz und oder Green-IT zu tun!

Es wurde dann die Vermutung geäußert, dass es sich um einen Implementierungsfehler handelt und Alexander schrieb: "Microsoft hat erst dem letzten einen Fehler in der Pufferbehandlung der NIC, behoben. Ich würde jetzt behaupten, dass sie das entweder nicht gründlich gemacht haben oder neue eingebaut haben." Dies erwies sich jedoch nach weiteren Tests als Fehlschluss, da die Ursache in einer ganz anderen Ecke zu suchen ist. Dieses Thema wird in Teil 2 behandelt werden.

Similar articles:
Microsoft's TCP mess, how to optimize in Windows 10/11
Windows 10/11: Poor network transfer performance, high Windows 11 CPU load – Part 1
Windows 11: Optimize network transfer performance and CPU load – part 2

This entry was posted in issue, Windows and tagged , , . Bookmark the permalink.

Leave a Reply

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