high CPU usage for 100Mbit/s transfer
Greetings
I'm diagnosing why my application is slow and I found the problem by writing a simple TCP client/server, where each side sends/receives 64k at a time.
The bottleneck is on the receiving end, which uses has a Realtek 8139 100Mbit/s NIC and running Windows 7. I'm able to get 11.9 MiB/s as expected, but the CPU usage is very high - 80% on 0th CPU and ~20% on 1st CPU. Task manager shows conhost.exe taking 25% CPU and 10% for my program.
When I try the same receiving program on Debian, I can still get 11.9 MiB/s, but the CPU usage is now only 1% (user & system).
On the sending side, the CPU usage is practically 0% in both Windows 7 and Debian.
I tried changing the TCP receive/send buffer sizes and disabled internet connection sharing (does extra packet processing?) on the receiving end, but it doesn't help.
Any ideas?
|