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.
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!