Greetings,
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?
Best Regards,
Duarte Rocha
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:
http://www.evaristesys.com/blog/tuning-kamailio-for-high-throughput-and-perf...
Best regards,
Henning