My LAN have 2000 users, wifi + wired
The WAN have 4Gbps
My router is CCR1036-8G-2S+ , LAN and WAN all use the 10G SFP+ port to 10Gswitch
when i do the Simple configuration lan-ip\wan-ip\dhcp\nat\default-route,the network worked well, high bandwidth and low delay,when the online users at 1500 and bandwidth at 2Gbps ,The CPU utilization rate is about 10%-15% ,nice day!
but now I need do the bandwidth control, one ip down-speed max-limit 50Mbps,so i used ( mark-packets + queue-tree + pcq ) to do it
In the past, I usually do this without any problems , Of course, the number of users and bandwidth was not as large as it is now
Now when the number of users increases, the CPU utilization rate rises linearly. When the number of users reaches 1000 and the bandwidth reaches 1Gbps, the CPU utilization rate reaches 100%
Bandwidth enforcement is CPU intensive, so you’ll have to pour in more CPU. There is no way to optimize the current setup without affecting its behaviour (pcq per each individual user simply must create as many virtual queues as there are users). And yes, it will require a reconfiguration of the topology, at least you’ll have to give half the users another gateway IP, so that they were sending their traffic through the second router.
A scalable solution with load distribution is always better than replacing one all-in-one-box by another single one with more horsepower. The highest step to cross is the one between “one” and “more than one”; whether “more than one” is actually two or twenty doesn’t matter much.
Both PPPoE and DHCP are designed for redundancy and load balancing - you can run multiple servers in the same L2 domain, all of them will respond to clients’ discovery requests with a random delay, and each client will choose the first response and finish the address acquisition/tunnel establishment with the server that has sent that response. So at the client-facing side of the server cluster, the load distribution among the individual servers is this easy. In the DHCP case, each DHCP server has to assign itself as the default gateway to each served client; if you assign public IPs to your clients, the task is a bit more complex as you’ll need dynamic routing to divert traffic from one router to another at the internet-facing side, or in turn simpler if you statically link particular clients to a particular router instead, thus losing redundancy for them. With CGNAT addresses, it makes no difference for the clients what address they get, so a different subnet for each server and static routing at their internet facing side will do.