I recently upgraded to Gigabit fiber with Century link. Using the modem/router provided by the ISP I'm able to get just under gig up/down on the wired connection. However, when I introduced my router into the mix (I set the ISP modem to transparent bridging) I'm only getting half of what I was able to get. Does anyone have any suggestions on where to begin diagnosing this issue?
For reference its the Netgear Nighthawk (R8000) using the latest Openwrt. Here's an example speedtest directly from the router. Here's an example of the speeds after introducing the router:
And here's an example before introducing the router (sorry for link, new users can only post one image)
htop and look at CPU loading.
Are you using "flow offloading" or is the CPU running NAT?
If I had to guess its using NAT. Flow offloading is unchecked in the firewall section.
CPU usage does spike to 100% during a speedtest... interesting.
OEM firmware typically performs the NAT in the switch chip, so that it "never" flows through the CPU. This can be enabled in certain recent builds of OpenWrt as well (for certain devices).
Unfortunately, as I understand it, if you want to do QOS/SQM (bandwidth shaping), the packets need to be managed by the CPU. I am not aware of any consumer-grade, wireless router that can handle gigabit rates through the CPU. Generally an AMD64 / x86_64, multi-core CPU with moderate speed is required to manage gigabit rates.
I don't have SQM or QOS enabled. Enabling flow offloading seemed to help my downstream a bit but it affected my upstream. I'm now getting 675/375.
Though the CPU is still maxing out during the speedtest.
I would think that conventional QOS is unnecessary when the ISP line is faster than any of your devices.
QOS on the LAN side could help prevent the router from swamping. But most likely you need a router with more CPU.