[SR-Users] Memory allocation

Henning Westerholt hw at kamailio.org
Wed Dec 19 22:57:29 CET 2018

Am Mittwoch, 19. Dezember 2018, 19:25:08 CET schrieb Duarte Rocha:
> I have some things that i want to udnerstand about Kamailio's memory
> allocation.
> My settings are 1024Mb for shared memory and 12Mb for private memory.
> I'm running Kamailio on a machine with CentOS7 and 2Gb of RAM. As i
> understand, at startup Kamailio will allocate 1024+12*number_of_processes
> megabytes of memory. Is this correct?
> When i set up Kamailio to run with 150 processes, after starting, i still
> have 500Mb of free RAM and therefore not allocated to any process. That
> goes against what i wrote earlier.
> What is the best way to plan for memory specs in my machines according to
> the desired number of processes and shared\private memory defined?

Hello Duarte,

Kamailio will allocate the shared memory pool under load at run time, not at 
startup. The private memory pool is allocated at startup. Therefore you will 
see a lower memory usage. I just tested it on my machine, with the default 
config (8MB PKG, 64 MB SHM) it is like this:

         9.86 Mb ./kamailio 
         9.86 Mb ./kamailio 
         9.86 Mb ./kamailio 
         9.86 Mb ./kamailio 

If you expecting a really heavy loaded setup and using certain memory 
intensive modules I would suggest to increase the PKG mem pool to 24 or 32 MB. 
Then decrease the number of children e.g. to the number of CPU cores. 150 
processes is too much in my opinion. For normal setups 16MB PKG and 512 MB SHM 
should be enough, with 8 to 16 processes. Kamailio is pretty efficient.

Alex wrote a really detailed blog article about tuning, you'll find some 
chapter about process setup as well:


Best regards,


Henning Westerholt - https://skalatan.de/blog/
Kamailio services - https://skalatan.de/services
Kamailio security assessment - https://skalatan.de/de/assessment

More information about the sr-users mailing list