Jump to content

Multiple Core CPU Usage


Recommended Posts

You can run multiple PBX instances on the same server. This way you can make sure no CPU resources are wasted. The setup is a little bit more complex as you will have to explicitly bind the sockets to IP addresses and the startup script will be more complex.


Eventually we will be ready with the next generation that can abstract from the CPU, but that will not help you today.

Link to comment
Share on other sites

Thank you. We do need to setup the PBX in this way as we are currently wasting PBX resources and the almost maxing our CPU on the single core.


We are using CentOS and the PBX is in a hosted environment with multiple domains.


We can make the changes ourselves but will need some guidance please.


- Do you have experience setting up multiple PBX instances that are bound to separate cores before?

- Are there any issues that can arise by doing this?

- How do you bind the PBX software to a certain IP address?

- What changes need to be made in the startup script? And how do you do this please?


Thank you very much.

Link to comment
Share on other sites

We have added the setting for the process affinity couple of years ago because of the topic. It is not very straight forward. Of course there are issues; first of all it is still one server and one memory and one hard drive (even when using SSD), it will not scale 100 % linear will the number of processors. But for sure you will get much more out of your server than with just one process on it.


You need to bind the HTTP, SIP, LDAP, TFTP sockets to their specific IP addresses. They have all the same syntax, ip:port, e.g. Inbound traffic is relatively simple; outbound can be tricky because the OS really needs to present that IP address when sending out packets, especially UDP. Maybe the routing table needs some tweaking. The RTP port range can in theory overlap between the PBX, but it might make sense to have them separately to reduce the chances of allocation conflicts or also bind them to a specific address.


There are several ways to do this with the script. One pragmatic way it to think of each PBX instance as a desperate service, e.g. pbx1, pbx2, pbx3 (each one have its own script in /etc/init.d based on the current startup script) so that they each can be start and stopped separately. Then they can run in separate directories, e.g. /usr/local/pbx1, /usr/local/pbx2 and so on.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...