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-per…
Best regards,
Henning
--
Henning Westerholt -
https://skalatan.de/blog/
Kamailio services -
https://skalatan.de/services
Kamailio security assessment -
https://skalatan.de/de/assessment