OpenSER has its own memory manager. Even if you have lot of memory in the system, OpenSER will use only the memory size it was configured, and you may get “out of memory” errors sooner than expected. This does not mean that there is a memory leak, but insufficient allocated size for your subscriber population. Common cases for large needs of private memory are: loading user location contacts, doing NAT pinging. The latest development version overcome the first issue by implementing database FETCH support. The other cases will be taken in consideration very soon.
By default the size of private memory chunk used by each OpenSER process is 1 MB.
To increase the size of private memory you need to compile OpenSER from sources. Once you get the sources from CVS or openser.org's download site, do following steps:
- edit 'config.h' and search for next lines:
/*used only if PKG_MALLOC is defined*/ #define PKG_MEM_POOL_SIZE 1024*1024
- change the value of PKG_MEM_POOL_SIZE to desired size, for example to have 4MB of private memory:
#define PKG_MEM_POOL_SIZE 4*1024*1024
- recompile and reinstall OpenSER
make all; make install;