Over the years, I've written about transitioning to faster ethernet here at home with standard copper 10GBASE-T (10GbE) cabling, beginning back in 2018. This works fine even with Cat-5e in the walls of my home (although some renovations use Cat-6). More recently, my home network was upgraded to 2.5GbE for any device that can benefit, with standard 1 gigabit/s fallback.
Last month, I needed another 10GbE network interface card (NIC) and noticed that we're now seeing inexpensive Marvell mGig AQC113C NICs available, upgrades from the AQC107 cards I have been using. So I grabbed a QFly NIC-10G (~US$75) to try out. There are other similar products like the NICGIGA (very unfortunate name).
The card offers 10G/5G/2.5/1GbE speeds and below (100/10Mbps) for compatibility. The new chip operates at only 4W running 10G speed (I believe the AQC107 is estimated at ~6W) making it even cooler-running for heavy loads.
As you can see in the picture of the card above, the interface is still PCIe x4 wide. Even though the AQC113C chip is capable of PCIe 4.0 which can do 16Gbps/lane bidirectionally (so even a x1 interface is fast enough), in order to be compatible with more common PCIe 3.0 (8Gbps/lane so will need at least x2 for full performance) motherboards and lower, it's a x4 card. I suspect in the future, we'll see x1 cards meant to run in PCIe 4.0 and latest 5.0 motherboards (32Gbps/lane!).
I was pleasantly surprised by the completeness of the QFly box considering the low price:
We have a low-profile bracket, extra screws, small pamphlet manual discussing driver installation, both a CD and USB stick with drivers, and even a screwdriver.
For me, I installed it in my Windows Server 2019 machine and it's compatible with the same driver I had been using for the ASUS AQC107 card (3.1.6 worked fine for Server 2019, but not the latest 3.1.8 which works well in Windows 11). Keep an eye on the Marvell website for newer driver/firmware versions and other OS like Mac and Linux.
Since my network switches are compatible with jumbo frames, I set my receive and transmit ring buffer size to 3000 each to keep it simple (26MB RAM x 2 for receive and transmit). Other settings like Energy-Efficient Ethernet, large send offload, checksum offload, adaptive interrupt moderation, left on by default:
Regarding buffer size, I've seen the recommendation for transmit buffer to be 2x receive buffer size and have used that in the past. I don't see a reason unless there's a difference in how the kernel manages the interrupts based on the in/outbound data. I suppose if you want lower latency especially when receiving data, lowering the receive buffer size could be useful. In general, larger buffer size reduces packet loss by making sure data doesn't overflow during the time between kernel interrupts (and reducing the number of interrupts decreases CPU load), but can increase latency for apps needing the data sitting in the buffer (in particular real-time applications like gaming).
So how fast is the card? Here's a current network map and the 1-hour iPerf speed test between the ASUS XG-C100C (AQC107 chip) in my Workstation and the new QFly (ACQ113C chip) in the Server computer. There are two switches along the path, the QNAP QSW-M2108 and Netgear GS110MX:
|Using latest iPerf3.16 x64:
Workstation: "iperf3.exe -s -i 60"
Server: "iperf3.exe -c 192.168.1.10 -t 3600 -i 60 -l 128k"
Excellent. Average 9.88Gbps across 60 minutes running full tilt with 4TB transferred across the hour. I was doing some light blog editing in the first 30 minutes, there's a web server, Roon server (not playing music at the time) running in the background causing some of the fluctuations. Lowest minute average was still at 9.71Gbps while editing the blog.
|Notice the white 4-pin JST power connector if needed on the female PCIe end. Not needed for the low-power 10GbE network card.
|Friction is strong enough for the extender's connection with the ASUS card to remain in place.
|Stable, fast network = Serenity.