I plan to DIY a x86 router. Need to add another NIC. There are two options. One is PCIe 2.0 x1 NIC, the other is USB 3.0 NIC. I want to know if there is any performance difference. I mean assuming same throughput like 940 Mbps, which one has lower CPU usage. Does anyone has similar experience?

If board and case allow it (reasonably easily), I would always prefer PCIe over USB 3.0.

While good USB 3.0 cards will give you full 1000BASE-T wirespeed (non-good™ ones might not), that is easier to accomplish with just about 'any' PCIe card (albeit not 32 bit (legacy-) PCI). From a mechanical perspective, PCIe tends to win as well, as the card firmly screws into the case and can't get dislodged (the later may not be a problem in a home environment, but imagine a professional setting with cleaning staff and only untrained on-site personnel)


Another vote for PCIe.
Network cards in expansion card format has been around for decades, so development/design is pretty commonplace and hard to go wrong.

Last time I checked a while back,
The Intel cards used less resources than those of Realtek.


Realtek's r8168 PCIe cards (driven by the r8169) are not as bad as their predecessors (rtl8029/ rtl8139), which brought them their reputation (and actually the linux drivers were better than their own windows drivers). At least for 1000BASE-T, you'd be hard pressed to find an x86_64 PCIe system where r8168 can't deliver full speed, while intel, marvell, broadcom could - around and above 5GBASE-T would be a different topic (as there hardware offloading starts to play a big role again).

In fact, I'm also considering 2.5G NIC, any suggestion? Thank you.

The Realtek 2.5GbE 8125 works really well with plain Linux for me.

That being said, Realtek is kinda the bottom of the barrel :wink:

If you're going for PCIe just go for Intel or Broadcom and save yourself a lot of time, it just works(tm) and vendor support is solid.

Yes another vote for PCIe, you will have a rock solid result. Other users have already provide argumentation.
Realtek is pretty common on motherboard or addon cars. Intel cards can be found easily too, and are more professional (dual/quadri NICs card). I'm using both vendors cards on various routers, full speed ahead.
I would consider an USB NIC just as a failsafe or temporary possibility.