Please can somebody tell me what the recommended number of extensions for a Trixbox CE 2.6.1 system. I don’t mean the theoretical maximum - but the maximum that would still leave you with a useable system in terms configuration/management.
I have a Trixbox CE 2.6.1 system in my lab and have bulk created 10,000 (yes, ten thousand) extensions. However, I am finding that this large number of extensions leaves the system unamanageable - since every time a setting/config is changed and applied, it seems to get stuck on the “Loading…please wait” message for a long long long time. Looking at ntop shows that mysql is taking up 100% CPU during this period.
From my understanding of how FreePBX works (correct me if I’m wrong) is that it keeps it configuration data in mysql but still has to generate the appropriate configs files for Asterisk to use. I assume it is this conversion and generation that is taking the time and cpu resources. Thus, the more extensions you have the more resources it will take to perform the config generation.
As you can imagine, having to wait 15-30 mins for settings (even if it is just one parammeter change) to apply is not good or efficient!
What is the recommended maximum number of extensions that would still leave you with a system that is still responsive, useable and manageble?
I will carry out further tests - probably setups with 500, 1K, 2K, 3K, etc extensions
I should have given my server specs to give clearer picture:
CPU: 2 x Intel® Xeon™ CPU 3.00GHz
HD: 270G (RAID 1 mirrored)
As you can see, it is a relatively decent server.
The answer to this question is highly dependent on your devices (phones and trunks) and how much audio you are transcoding, mixing, and recording. I have heard several different rules of thumb regarding these limits, but have not seen any hard data.
I have done a fair amount of testing with bulk loading FreePBX. In my experience, up to about 2000 extensions the GUI is still reasonably responsive. With many extensions, you run into problems with recreating the config files (which you noticed), but you also run into problems when asterisk reloads to apply the new config files. Both of these situations (but mainly the asterisk reload) can make your entire phone system, not just the admin GUI, unresponsive. In other words the server just stops responding to trunks and phones until the configs finish loading. This is not a FreePBX issue, but an Asterisk issue. The solution is to use Asterisk Realtime Architecture to avoid Asterisk reloads. However, FreePBX does not work with Realtime, yet, even though a few of us are trying to move in that direction.
I currently have a production voicemail server with 450 accounts that is working fine, however, since it only has ten iax trunks and about twenty sip phones registered, it really isn’t handling any load beyond storing and playing back voicemail. This system has handled over 1500 calls an hour. That being said, I would advise you to create a lab that mirrors your real world application, then test with 50 active extensions actually making calls. Don’t forget to test conferencing, call recording, and voicemail at the same time. The number of extensions that you can load on the system has no relationship with the number of simultaneous calls the system can handle, so testing your configuration is the only answer.
I won’t repeat a lot of the good feedback that has been mentioned. I will say that there are many sites that run fine with a few hundred extensions. I will also ‘repeat’ what I’ve heard from various places that today’s Asterisk starts to have issues when processing over 200-300 simultaneous calls (where the media is flowing though Asterisk). Keep in mind though, if you use a generic ‘25% duty cycle’ figure, 200-300 simultaneous calls would be 800-1200 extensions…
Thank you for your feedback.
What you have stated has confirmed my fears about the scalability of the Asterisk/FreePBX solution.
I was going to test AsteriskNOW instead of Trixbox - but if it uses the same architecture then that will not solve my responsiveness (or lack of) issue.
I will have to investigate splitting the service across multiple servers (per 1000 extensions) or look in to a realtime Asterisk solution - any suggestions anybody?!
Just an update on my investigations.
I have tested with 1500 extensions and the FreePBX application time is about 55 seconds - which is just about bearable.
However, after the FreePBX configuration has been applied, I notice op_server.pl is also taking up 100% CPU - and takes about 15 seconds to execute. I believe this script is related to FOP and is executed to generate the FOP configuration file?
Since we looking to use Trixbox/FreePBX for large number of accounts then this FOP is not really of any use. Thus, I have disabled it in the /etc/amportal.conf configuration. However, I noticed that FOP is still accessible from the FreePBX interface. I assume FOP is then just using the existing (non-updated) configuration file?
How can FOP be disabled completely from the interface? I believe it is not yet implemented as a module within FreePBX?
Disabling FOP does not reduce the time FreePBX applies it configuration and returns the web interface to be used again. The op_server.pl script is executed afterwards.
Is there any way to improve the performance of FreePBX when generates the Asterisk config files?
I guess you should have a look at http://www.amooma.de/gemeinschaft/index.html.
This is a asterisk pbx with realtime implementation.
You can completely remove FOP from the FreePBX GUI by adding FOPDISABLE=true to your amportal.conf file. This is really helpful for large installations.
Thanks - I had already done this. However, you will find that FOP is still accessible via a link within the Trixbox and FreePBX GUI. What I want is to completely remove any links/references to it.
One option is to just remove the FOP path - currently “/var/www/html/panel” - by either renaming the directory or changing the “FOPWEBROOT” variable in amportal.conf. The appropriate html/php files would also need to be changed to remove any links to FOP in the Trixbox and FreePBX GUI.
I would be nicer if FOP itself was just a module in FreePBX, or a yum package in Trixbox.
To get the FOP links removed from the trixbox side of the menus and such you’ll need to ask them as we don’t touch their code. Also they have taken the FreePBX code and “forked” it applying there own fixes and improvements after that (sometimes breaking things in the process).
So it is possible that they are either not using the latest code and/or did/didn’t change something that is related to it working correctly.
You can re FreePBX a trixbox 2.6 box by following the upgrade instructions. To get them look on the left hand side of this site and select documentation, installation. At the bottom of that page select upgrade your system and look about 8 paragraphs down on the upgrade page for the directions.
So that you know the trixbox repo is missing modules as of yesterday so things like speed dial will not exist in the latest trixbox version (they call it pbxconfig 5.5) but will exist in the FreePBX version.