Hello
We've put Kamailio on a machine with a
SIP-Proxy role, we replaced another SIP proxy
implementation.
We started with the default 4Mb of PKG
Memory and 1024 Mb of Shared Memory but we had
messages like these in the logs:
2013-09-26
13:48:26,939 ERROR: app_perl
[kamailioxs.xs:371]: pv_sprintf(): pv_sprintf:
Memory exhausted!
2013-09-26
13:48:50,267 ERROR: app_perl
[kamailioxs.xs:371]: pv_sprintf(): pv_sprintf:
Memory exhausted!
2013-09-26
13:48:51,822 ERROR: <core>
[data_lump.c:197]: insert_subst_lump_after():
ERROR: insert_new_lump_after: out of memory
2013-09-26
13:48:51,823 ERROR: <core>
[parser/contact/contact.c:194]:
parse_contacts(): parse_contacts(): No memory
left
2013-09-26
13:48:51,823 ERROR: memcached
[../../parser/../ut.h:736]: pkg_str_dup():
could not allocate private memory from
available pool
2013-09-26
13:48:51,823 ERROR: <core>
[data_lump.c:373]: anchor_lump(): ERROR:
anchor_lump: out of memory
2013-09-26
13:48:51,823 ERROR: <core>
[dset.c:525]: rewrite_uri(): No memory left to
rewrite r-uri
2013-09-26
13:48:51,823 ERROR: <core>
[action.c:810]: do_action(): ERROR: do_action:
memory allocation failure
2013-09-26
13:48:51,823 ERROR: <core>
[msg_translator.c:2164]:
build_res_buf_from_sip_req(): ERROR:
build_res_buf_from_sip_req: out of memory ;
needs 357
2013-09-26
13:48:51,823 ERROR: <core>
[msg_translator.c:2164]:
build_res_buf_from_sip_req(): ERROR:
build_res_buf_from_sip_req: out of memory ;
needs 376
Then we started kamailio like below,
with 1024Mb of private memory (per process) :
/opt/kamailio/sbin/kamailio
-f /opt/kamailio/etc/kamailio//kamailio.cfg -w
/opt/kamailio/core_dir/corefiles -P
/opt/kamailio/var/run//kamailio.pid -m 1024 -M
1024 -u kamailio -g kamailio
Then after about 4 days
we realized that we have a steady increase of
used memory ( in the output of free command
the '-/+ buffers/cache:' row ), and we simply
restarted the kamailio process.
The machine has 12 Gb of
RAM , we run with children=32 . 1gb of memory
per process x 32 child processes means that we
are over the physical capacity of the machine.
The question is , are we
in any danger of running out of memory on this
box where we only run kamailio ? We don't want
to reach the point where the kernel starts
killing processes.
Shall we suspect some
memory leak in the app_perl module ? (we do
some http queries over SSL from a perl script)
Thank you.
Regards,
Dragos Oancea