t0rzzz wrote:
I believe it might be a PCI limitation, as it seems like it takes only 8x lanes, limiting the bandwidth to a total of 8GT (and also 8Gb, it won't go any little faster).
Ok, two quite fundamental things there. First, the pictures I found of the XG-C100C show a card that has a x4 physical interface, so it can't possibly run as either x8 or x16. Even if it was a x16 card, you could only run it as x8 on a desktop platform with a GPU, as there's only a single x16 on mainstream desktops (which would be split as x8+x8 if you have two x16 cards installed). Second, 8GT is not 8Gbits. The transfer rate in GT/s is based on the PCIe version, not the lane count. PCIe 3.0 is 8GT/s and PCIe 4.0 is 16GT/s. The rate is then multiplied by the number of lanes for the total bandwidth. 8GT would be roughly 8Gbits per lane, so 32Gbits for a x4 card.
It's not immediately clear to me what PCIe version is implemented on the XG-C100C, but I'd guess it should be at least 3.0. The motherboard slot will slow down to the card's speed, for things like a 3.0 card in a 4.0 slot (and similarly for a 4.0 card in a 3.0 slot).
I'm honestly not 100% certain of exactly the rate you should be seeing, as I've not played around with iperf. For normal application usage, roughly 1Gbyte/s would be quite reasonable for a 10Gbit/s interface, to allow for protocol and encoding overheads. So, if you're calculating 1Gbyte x 8 bits = 8Gbits, and that's the application data rate, that would be roughly full performance on a 10Gbit interface. It's common practice in networking to use 10:1 as a rough estimate for bits:bytes (rather than 8:1), to allow for the overheads.
I can't say for certain, but I think you may not have a problem to solve.