5x throughput difference on iperf client vs server

I'm using a Netgear centria as an internet router, and I found out today that I was not reaching the ISP promoted bandwidth speed.

Of course I thought this was just one of those "Pay for 1000, get 100" things ISPs usually do when going popular, but unfortunately for me, I switched over the internet cable from the ISP to a computer under gigabit link and this effectively seems to be some sort of limitation on my router or misconfiguration.

Even though Netgear advertised this product to have all gigabit links, including Internet port as well, I literally get exactly 100 Mbps numbers on all the testing tools available out there.
As I mention before, I thought this value was too rounded to be HW limitation on my end, but the computer tests don't lie.

I went ahead and run a couple of iperf against the internal bridged part of the lan, all going through gigabit interfaces of course, and I found this really strange thing that is totally consistent across tests:

root@centria:~# iperf -s
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec   313 MBytes   261 Mbits/sec
[  4]  0.0-10.1 sec   328 MBytes   273 Mbits/sec
[  4]  0.0-10.1 sec   327 MBytes   271 Mbits/sec

root@centria:~# iperf -c remote
Client connecting to remote, TCP port 5001
TCP window size: 74.4 KByte (default)
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  65.8 MBytes  55.1 Mbits/sec
[  3]  0.0-10.0 sec  66.0 MBytes  55.3 Mbits/sec
[  3]  0.0-10.0 sec  66.1 MBytes  55.4 Mbits/sec

As you can see, there's a difference in performance on incoming and outgoing traffic of 5 times. I suspect this is also related to my main problem, which is paying 3 times more than I'm actually getting.

I did switch on hw and sw flow offload, with observable difference but not that significant. It went from 100mbps to 112mbps when using hw one.

I'm pending a test on using a port on the internal vswitch as incoming internet port to double check this is not some misbehaving on the internet port, but I kind of doubt it's going to change a thing.

Any ideas what parameters I could tune to fix this?

Once again, Occam's razor prevailed... It ended up being "bad" cable in the sense of it was not CAT6.

Don't always trust cables laying around. ... :sleepy:


also, running the iperf program on the router itself uses a lot of CPU so it isn't a realistic test. To properly benchmark a router run iperf through the router between two fast external machines.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.