CPU recommendations for 1Gbps w/PPPoE

Started by ck42, February 18, 2022, 05:12:49 PM

Previous topic - Next topic
February 18, 2022, 05:12:49 PM Last Edit: February 18, 2022, 05:16:21 PM by ck42
(I've been reading through a ton of threads and other sites, but can't seem to find anything definitive)

Started with m0n0Wall, now on pfSense, and looking to move to OPN. This is for home use.

As stated, I have a 1Gbps fiber connection that uses PPPoE. Trying to get a sense of what CPU horsepower I might need for a new box. Looking for CPU that can max out the 1Gb connection.

Need DHCP service and maybe a few other small services, but don't plan on running any sort of IPS or VPN or any other heavy services.

Need a solution that is 1U and is as low heat and low noise as possible but still gets the job done.
The search though seems to begin with the CPU.



If you read all the forums you'd know that GB and pppoe is a huge trouble in BSD world. You would need very high clock rate, no matter how many cores, since it's single threaded. And no guarantee you'll get full throughput.

Yep, I certainly understand that 'challenge' after reading through various posts....hence after searching and not coming up with any answers...is why I'm here asking.

Really all I'm wanting to know is...what minimum CPU (single core speed) would I need for this application?
Would a modern dual core @3GHz be sufficient? Higher? Lower? Would a high speed Celeron work? Or Pentium? Or Core i needed?  AMD something?


Found this in a week old comment in an OPN subreddit:

QuoteI have near gigabit internet service (900Mbps down / 180Mbps up - FTTH - GPON terminated on ISP's ONT) and PPPOE on OPNsense connected to CAT5E on ONT. I get full download speed using a Dell Wyze 5070 Extended which has 8gb RAM and a Pentium Silver J5005 CPU (4 x 1.5 GHz with boost to 2.8 GHz). When downloading 900Mbps the total CPU usage is about 34%.

So here we have someone claiming near full gig throughput on a LOWLY Pentium J5005. Base freq 1.5GHz, burst 2.8GHz. 10W TDP which is really nice. 

February 18, 2022, 08:15:43 PM #5 Last Edit: February 18, 2022, 08:33:32 PM by bunchofreeds
Get the highest speed for a single core you can basically.
There are a few tunables that help

net.isr.dispatch = deferred
net.isr.maxthreads = -1
net.isr.bindthreads = 1

I run OPNsense virtually on Proxmox 7
Hardware is a basic HP 8300 Elite SFF with i7-3770 (3.4GHz - 3.9GHz)
Basically a cheap 24/7 desktop but really quite powerful for my purposes.
Also using intel NIC's

With a standard install I get the full speed on my 900/400 plan over PPPoE. Speedtests usually 950
I then also run ntopng which drops it to about 750/400.

Edit - Just upgraded Proxmox 7.1-10 and a speedtest got 850 with everything running.
I run a few light load VM's so sharing will cause resource contention and affect speedtest results.

I've tried passing through the NIC's but this doesn't improve throughput so I prefer virtio and benefit from live migration to another HP desktop.

Hope this helps

Appreciate your feedback!
So, using a CPU benchmarking site, I look at the single core scoring and this gives me (hopefully) a way to compare CPUs. So if the 3770 work w/o problem, then that SHOULD give me a way to compare various CPUs (looking at their single core scoring).

One other thing I'm wondering about now - In light of the whole single threaded PPPoE thing, would more cores/threads in a CPU help any other part of the system run better? Or, for example, with a dual core CPU, with one core/thread doing all the PPPoE work, would the 2nd core/thread then be completely sufficient to run everything else?  Or would the 'everything else' part possibly benefit from a 4 core CPU so that 'everything else' would then have 3 cores vs just 1.
Basically, wondering if I should even bother looking at 4 core CPUs, or since dealing with PPPoE, is just a dual core (with proper single threaded scoring) be enough.

A lot of it comes does to your personal requirements.

PPPoE will use CPU0 from my reading and understanding. This is the first CPU in the queue and can cause issues when running at 100% for other services.

I personally run Proxmox which shares the CPU cores at the hypervisor to the guests. I get some benefit from this as I want to run multiple VM's on the same hardware, but am still limited by that first core when under high utilisation. I hardly ever max out my Internet link, and if I am its usually under controlled circumstances and I can expect other VM's to under perform.

If you are dedicating the hardware to you OPNsense and expect it to be running at full gigabit often, then two cores plus I'd recommend. And of course at the fastest GHz possibe.

Like others have said though - there are really no guarantees here.   

March 08, 2022, 11:03:02 PM #8 Last Edit: March 08, 2022, 11:15:00 PM by eas
One data point:

I have an HP T620 Plus with a 4-port Intel Ethernet card.

The CPU is an AMD GA-420CA, which is a lowish power (20W) 4-core 2GHz CPU. This CPU has a single-threaded passmark score of 667.

I get ~720down 750up over my CenturyLink Fiber (Gigabit Fiber with PPPoE) using OPNsense 22.1.2_1-amd64.
net.isr.dispatch = deferred
net.isr.maxthreads = 4

If I add - net.isr.bindthreads = 1, download drops and upload improves (610d/850u), it doesn't seem to make a difference whether I set maxthreads to -1 or 4.

One CPU core is saturated during the tests.

I figure I need at least 50% better single core performance to max out my connection. The Pentium J5005 mentioned above is in that ballpark, as is the Celeron J4105. I'd feel better with something that has at least 2x the single threaded performance.

Yes, and systems like that are available even with passive cooling, with a J4125 and 4x I225-V NICs:

https://www.amazon.com/gp/product/B09PHHXN9V

Depends on if you need 1U for rack mounting, though, but that is likely to have active cooling.
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

March 09, 2022, 03:39:53 PM #10 Last Edit: March 09, 2022, 05:35:32 PM by qarkhs
Newer devices with 10nm Elkhart Lake chips are starting to appear as well e.g. J6412 (10W).

https://www.cpubenchmark.net/compare/Intel-Atom-x6211E-vs-Intel-Celeron-J6412-vs-Intel-Atom-x6425E/4347vs4474vs4753

Do you have some recommandation for Elkhart based devices?
I could only find this:
https://german.alibaba.com/p-detail/Maxtang-1600441734696.html
which seems ok, but has only 2 LAN Ports. I would prefer something with more ports.

The Compulab Fitlet3 (https://fit-iot.com/web/), which is supposed to ship in April but can be ordered now, has up to 4 Intel LAN ports. I'm using a Fitlet2 with J3455 at the moment and I think there are probably a few other Fitlet2 users here.


In used fitlet2 with celeron CPU till recently, and it can do 1Gbps pppoe with ease. But i didn't run any additional plugins like suricata or zenarmor. For openvpn it can do 500mbps. Hope it helps, its a great little box just running a little hot.

Quote from: ck42 on February 18, 2022, 05:25:20 PM
Really all I'm wanting to know is...what minimum CPU (single core speed) would I need for this application?
Would a modern dual core @3GHz be sufficient? Higher? Lower? Would a high speed Celeron work? Or Pentium? Or Core i needed?  AMD something?

I'm running a ppoe/1gbps connection on an i7-6700 esxi server here - with the increased efficiency of v22.x I've been able to drop the vCPU allocation down to just 2 cores, and even with zenarmor on the lan side I never max out those two cores

without zenarmor I could almost certainly get away with a single vCPU

As others have said single thread speed matters for PPPoE - so I'd go with whatever option you can find that has the best single-thread performance (core i3 maybe? or some of the new AMD options).

Also remember the NICs matter too - you'll want to avoid anything with realtek NICs