Measurement study · 68 production gateways
Capacity & sizing

“How many subscribers fit on this box?”
We measured 68 of them. The usual answer is a guess.

Every BNG datasheet in the industry answers this with a single number. We went and correlated subscriber count, packet rate and CPU consumption across 68 production gateways carrying 288,676 real subscribers at eight independent operators. Subscriber count predicts your traffic almost perfectly. It predicts your CPU not at all.

It is the first question every operator asks, and the honest answer is that the number on the datasheet cannot know. Not because the vendor is lying — because subscriber count is the wrong axis, and the fleet data says so plainly.

68
production gateways measured
288,676
live subscribers behind them
+0.90
correlation: subscribers → traffic
−0.16
correlation: subscribers → CPU

The measurement

For every gateway we took the live subscriber count, the forwarded packet rate summed across its physical interfaces, and the CPU actually consumed. CPU percentage on its own is meaningless across mixed hardware — 10% of an 80-core server is eight cores of work and 10% of a 24-core server is two and a half — so every figure below is converted to busy cores: the real amount of silicon doing work.

Subscriber count → traffic
+0.90
Subscriber count → CPU consumed
−0.16
Packet rate → CPU consumed
−0.13
−1 (inverse)0 (no relationship)+1 (perfect)

Read the top bar and the bottom two together, because that is the entire finding. Subscribers tell you what your uplinks must carry, and they tell you almost exactly. Subscribers tell you nothing whatsoever about how much CPU that will cost you — and neither does the traffic itself.

Subscribers plotted against CPU consumed, 68 production gateways Each dot is one gateway. The points form no upward trend: gateways with many subscribers appear at both low and high CPU, and the busiest CPU belongs to gateways with few subscribers. 42 34 25 17 8 0 0k 2k 4k 6k 8k 10k Subscribers on the gateway CPU cores actually busy Gateway A Gateway B Gateway C

Every gateway in the study, plotted. If subscriber count drove CPU, these points would climb from bottom-left to top-right. They do not. The three gateways discussed below are circled: the busiest CPU in the fleet belongs to one of the smallest subscriber counts.

A gateway detail screen showing CPU usage at 44.9% beside a 44-core count, memory, disk and active session graphs.
Why percentages alone mislead. This gateway reports 44.9% CPU — but the figure only means something next to the core count beside it. 44.9% of 44 cores is nearly twenty cores of work; the same percentage on a 24-core box is half that. Every number in this document is converted to busy cores for exactly this reason.

What that looks like on real hardware

Three gateways from the study. Same software, same forwarding path, all in production right now.

GatewaySubscribersForwardedCores installedCores actually busy
Gateway A8,3602.29 Mpps561.68
Gateway B10,3362.39 Mpps449.46
Gateway C2,2000.54 Mpps3217.25

A and B carry the same traffic. 2.29 Mpps against 2.39 Mpps — within five percent of each other. One does it on 1.68 busy cores, the other needs 9.46. That is 5.6× the silicon for the same work.

C is the case that breaks datasheet sizing outright. A quarter of Gateway A's subscribers, less than a quarter of its traffic — and ten times the CPU. Any capacity number derived from subscriber count would have put A and C on the same hardware.

So what does decide it?

Not the subscriber count, and not the packet rate. What is left is the part a datasheet has no access to: the configuration you run and the hardware you run it on. Which features are enabled and in which mode. Whether the NIC has enough queues for the cores you have. Whether interrupts land on the cores doing the forwarding. Whether session termination sits in the kernel or on the fast path. Whether a neighbouring workload shares the machine.

Predictable

Your uplink

Subscriber count gives you this to within a few percent, and it holds across every operator we measured. Plan bandwidth from your subscriber base with confidence.

Not predictable

Your CPU

No relationship to subscribers or to traffic. It is set by configuration and hardware, which vary per deployment — so it has to be measured, not assumed.

Therefore

Measure your own

The only number that means anything for your box is the one taken from your box, under your config, at your busy hour.

How we answer it instead

Because the honest answer is “it depends on your deployment”, we stopped shipping a headline capacity number and shipped the measurement instead. Every BNGSOFT gateway reports subscriber count, forwarded packets and consumed CPU continuously. The Capacity Advisor in NOC2 turns that into the answer for that gateway: how much headroom is left, at the busy hour, on the hardware and configuration actually in service.

The datasheet method

One number, derived from a lab profile that has no subscribers in it.

Assumes your feature set, your traffic mix and your NIC match the test rig.

Cannot tell you whether you are Gateway A or Gateway C — and the gap between them is 10×.

The measured method

Your gateway, your configuration, your busy hour, sampled continuously.

Headroom expressed in the units that constrain you: busy cores, packets, and link capacity.

Recomputed as your subscriber base grows, so the answer stays current instead of ageing.

The Capacity Advisor screen: a fleet headline giving remaining subscriber room across seventy gateways, then per-gateway cards showing subscribers at peak and right now, traffic, packet rate, CPU, per-subscriber demand and what limits each one.
The answer, per gateway, with its working shown. Each card gives the headroom and then the arithmetic behind it — subscribers at peak and right now, packet rate, CPU, and the measured per-subscriber demand — so the figure can be checked rather than trusted. Note the cards that decline to answer: a gateway carrying almost nobody has no per-subscriber cost to extrapolate from, and saying so is more useful than a number that would be invented.

What this does not claim

This is a correlation study, not a benchmark. It says subscriber count and packet rate do not predict CPU consumption across a real fleet. It does not isolate which configuration or hardware factor dominates — that varies per gateway, which is the point.

Every gateway here runs the same forwarding platform. The 10× spread is not a comparison between vendors. It is the spread within one platform, caused by deployment differences — which is exactly why a single published number cannot describe your box.

The window is short. Correlations are computed over a three-hour sample across 68 gateways. Longer windows change individual gateways; they have not changed the finding.

The one number worth quoting

If you need a planning figure today, use the one that is actually predictable. Across the same fleet, at the busy hour, subscriber demand sits in a strikingly tight band — and unlike CPU, it travels between operators. That measurement is the companion to this document.

Size your uplinks from your subscriber count. Size your CPU from your own telemetry. One of those two is a solved problem and the other cannot be solved on paper — and most sizing exercises get this exactly backwards.

About the data. Figures are taken from production telemetry across eight independent operators. Gateways are identified as A, B and C only; no operator name, hostname, site, region or subscriber identifier appears in this document, and no per-operator figure is published. Correlations are Pearson coefficients over 68 gateways with more than 200 active subscribers. CPU is converted to busy cores as cpu% × installed cores ÷ 100 so that machines with different core counts are comparable. Packet rates are counter deltas over the sample window, summed across physical interfaces only, with bonded members excluded to avoid double counting. About the screenshots. Every screen shown is a real production console. Gateway hostnames are replaced with placeholders before the image is captured, and no operator name, site, region, subscriber identifier or address appears in any image. CPU models are left intact: they describe hardware, not a customer.