GenieACS ressources to scale up to >10k clients


I was wondering if it would be possible to get an idea of the scalability of GenieACS.

Considering the following:

  • The goal is to provision at least 12,000 clients.
  • Each client sends an “Inform” message every 2 minutes.

Would someone have any estimation of the required resources in terms of RAM, CPU, and HDD?
Do you have any experience or feedback to share?

Thank you in advance.
Kind Regards

ours handle about 5k of customers:

root@acs3:~# free -h
               total        used        free      shared  buff/cache   available
Mem:           7.8Gi       2.8Gi       3.7Gi       3.0Mi       1.2Gi       5.3Gi
Swap:          974Mi          0B       974Mi
root@acs3:~# df -h |grep sda
/dev/sda1        29G  4.7G   23G  18% /
root@acs3:~# uname -a
Linux acs3 5.10.0-14-amd64 #1 SMP Debian 5.10.113-1 (2022-04-29) x86_64 GNU/Linux

if you are having a bottleneck, then you might want to read this.-

IMHO not much really. Just make sure periodic inform is disabled and use presets with the proper events or connection request for each time you need to provision a CPE.

That’s how I handle things. YMMV.

Thanks for your feedback
I assume CPU load is not so much too.

I share the same way of tagging on boot to process download asynchronously (mixing tag with ip range, software version or other data to make différents batchs).

I was also wondering about multiple CWMP running in parallel, but not sure it can work properly and not sure I really need it.

Yes, cpu load is low, just switching between node and mongod, and about cwmp, I suggest you to see it for yourself: grab genieacs-sim and do some stress load against a test server. It has a parameter which allows you to fire a number of connections. You will need an older version of node.

root@acs3:~# ps -Af |grep node |grep cwmp 
genieacs     622       1  0 Jun05 ?        00:00:41 node /usr/local/bin/genieacs-cwmp
genieacs     705     622  0 Jun05 ?        00:13:59 /usr/bin/node /usr/local/bin/genieacs-cwmp
genieacs     708     622  0 Jun05 ?        00:14:29 /usr/bin/node /usr/local/bin/genieacs-cwmp
genieacs     710     622  0 Jun05 ?        00:14:09 /usr/bin/node /usr/local/bin/genieacs-cwmp
genieacs     713     622  0 Jun05 ?        00:14:21 /usr/bin/node /usr/local/bin/genieacs-cwmp
genieacs     757     622  0 Jun05 ?        00:14:14 /usr/bin/node /usr/local/bin/genieacs-cwmp
genieacs     771     622  0 Jun05 ?        00:14:09 /usr/bin/node /usr/local/bin/genieacs-cwmp
genieacs     774     622  0 Jun05 ?        00:14:38 /usr/bin/node /usr/local/bin/genieacs-cwmp
genieacs     788     622  0 Jun05 ?        00:14:30 /usr/bin/node /usr/local/bin/genieacs-cwmp

from the docs:

CWMP_WORKER_PROCESSES The number of worker processes to spawn for genieacs-cwmp. A value of 0 means as many as there are CPU cores available.

Yes indeed, a stress test with genieacs-sim is being considered.

Regarding CWMP_WORKER_PROCESSES, wow, I actually looked at the documentation but completely missed that parameter (RTFM again…), thank you very much! :slight_smile: