RPi4 routing performance numbers

Ok, all, some final numbers I guess... In the end I decided to run the RPi as my main router, in hopes of eventually retiring the j1900 based device I've been using and saving some power consumption and extending the life of my UPS. Also, having my router and my nfs fileserver be one-and-the-same box was causing problems (whenever I needed to do something to the internet... I'd also lose LAN connectivity as my machines would freeze waiting for NFS to come online).

So, my situation is a bit complicated, as I run a squid proxy on the router and use that to do some access controls and identify streams at layer 7 for QoS... meaning the Pi doesn't just have to route a gigabit, but actually proxy a gigabit through squid...

and it does. It's hard to measure a gigabit really because the speed test servers themselves tend not to be able to handle that much speed... but I was able to get upwards of 850Mbps from internet speed tests going through the squid proxy.

Idle percentages were about 1% on one core, and 25% on the 3 other cores. I could probably improve that by telling squid to use only 3 cores... it might not quite handle these speeds under 3 worker conditions... but I honestly don't care. If I get 700+ Mbps and low latency with high QoS that's great, so the fact I can get upwards of 850Mbps with squid is fabulous.

dslreports doesn't work for me anymore because of some certificate issue (the speedtest is ok, but bufferbloat borks)... However I ran mtr to google.com during that speed test and it was rock solid with less than 1 ms of bufferbloat on pings throughout the whole test (note, my pings go through a higher priority queue, I use QoS specifically so I get this kind of result for my high priority stuff, so without DSCP marks etc you wouldn't necessarily get the same result).

nevertheless, the Pi is capable of routing and proxying a gigabit with HFSC shaping all while still having CPU headroom to spare.

EDIT: another advantage to the Pi over an x86 box that does multi-functions is that I can have a micro-SD card ready-to-go with a known working config, and if I screw things up I can easily swap cards and be back to a known good config within minutes... for the x86 setup I have, I'd have to get a screwdriver and open the case :rofl: