I just bought 2 MCX4121A-ACAT and met a very similar problem. The difference is I use SFP28 so the NIC works at 25Gbps speed, but I am not able to saturate the bandwidth between a Windows desktop and Ubuntu NAS server.
My observations are:
And what's confusing me the most is I have my Internet router with a MCX342 (10G NIC) connecting to nas, so nas plays a role as a bridge between desktop and router here. And when I test the performance between my desktop and router, it's only around 5Gbps with single thread iperf3. No matter how many parallelisms I set, the maximum bandwidth I can get when desktop is sending to router is less than 9Gbps. And again, if I run Ubuntu on my desktop, a single thread iperf3 can run at 9.4Gbps.
I have tried everything I can but just no luck with Windows. I don't know whether it's MCX4121's problem or it's Windows' problem or I made some subtle mistake.
My observations are:
- I tried run a Ubuntu live on my desktop, and it worked perfectly, a single thread iperf3 can run at 23.5Gbps for both direction
- Running Windows on my desktop, I can't use full bandwidth. The iperf3 test result is not stable, especially when Windows is receiving data from Ubuntu, sometimes it runs only at 6-7Gbps. Somehow, I think it's because Windows set TCP window size scaling factor to only 4, so the receiving window is only 256K. But I can't find a way to adjust that value anywhere and it has nothing to do with Linux sysctl parameters
- Speed for copying data from and to NAS with Samba is limited within 10G, the maximum speed I have ever got is 1.18G/s, in the meantime the task manager shows NIC workload is like 10.1Gbps then soon go down below 10Gbps. It gives me a feeling that Windows is deliberately limit the speed under 10Gbps
And what's confusing me the most is I have my Internet router with a MCX342 (10G NIC) connecting to nas, so nas plays a role as a bridge between desktop and router here. And when I test the performance between my desktop and router, it's only around 5Gbps with single thread iperf3. No matter how many parallelisms I set, the maximum bandwidth I can get when desktop is sending to router is less than 9Gbps. And again, if I run Ubuntu on my desktop, a single thread iperf3 can run at 9.4Gbps.
I have tried everything I can but just no luck with Windows. I don't know whether it's MCX4121's problem or it's Windows' problem or I made some subtle mistake.