One thing I've run into when building my own 10gbps router that I didn't see mentioned - you probably need to disable power saving / frequency scaling. The handling of packets is done in software, so when you start a download and the flood of initial data comes in at 10gbps, your CPU will still be running at 600 MHz and unable to keep up. It ramps up within 5-50 milliseconds depending on CPU, but for a TCP download the sender will have already interpreted the dropped packets as congestion and reduced their upload rate.
You can monitor this with ethtool stats to see how many packets the NIC dropped due to host buffers being full.