Thanks for the answers. Here are the config file and the memory status right now. I didn't change the memory pool. I don't know how to interpret the memory log. Can you help me?
Config file
# ----------- global configuration parameters ------------------------ # vim:bg=dark
check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) dns_cache_init=no use_dns_cache=no disable_tcp=yes server_header="Server: SIP ROUTER" user_agent_header="User-Agent: SIP ROUTER" sip_warning=0 debug=2 memlog=1
port=5060
# ------------------ module loading ----------------------------------
mpath="/usr/local/lib/kamailio/modules/:/usr/local/lib/kamailio/modules_k/"
loadmodule "maxfwd.so" loadmodule "exec.so" loadmodule "tm.so" loadmodule "sl.so" loadmodule "dispatcher.so" loadmodule "textops.so" loadmodule "xlog.so" loadmodule "mi_fifo.so" loadmodule "regex.so" loadmodule "pv.so"
# ----------- setting module-specific parameters ---------------------
modparam("exec", "setvars", 0) modparam("dispatcher", "list_file", "/usr/local/etc/kamailio/servers.list") modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo") modparam("dispatcher", "ds_ping_interval", 5) modparam("dispatcher", "ds_probing_mode", 1) modparam("dispatcher", "ds_probing_threshhold", 3) modparam("dispatcher", "flags", 2) modparam("tm", "fr_timer", 3)
# ------------------ request routing logic ---------------------------
route {
# initial sanity checks: # messages with max_forwards==0 if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; };
# excessively long requests if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; };
# excessively long display name if (!pcre_match("$fn","^.{0,62}$$")) { sl_send_reply("403", "Forbidden - Display Name Max Size Exceeded"); exit; };
#Register if (method=="REGISTER") { if (from_uri=~".*(<?sip:[a-z][a-z0-9_.]{3,11}(\$[0-9]{1,3})?@voiprovider\.com(:[0-9]{4})?(;[^>]+)?>?) ?(;tag=[a-zA-Z0-9]{4,}.*)?$" ||
from_uri=~".*(<?sip:\$voipmonitor@voiprovider\.com(:[0-9]{4})?(;[^>]+)?>?) ?(;tag=[a-zA-Z0-9]{4,}.*)?$") { route(4); exit; }; sl_send_reply("403","Forbidden - Wrong domain or Username format"); exit; };
#Deny OPTIONS if (method=="OPTIONS") { sl_send_reply("404", "Not found"); exit; };
#Deny PING if (method=="PING") { sl_send_reply("404", "Not found"); exit; };
# INVITE if (method=="INVITE") {
if (from_uri=~".*(<?sip:[a-z][a-z0-9_.]{3,11}(\$[0-9]{1,3})?@voiprovider\.com(:[0-9]{4})?(;[^>]+)?>?) ?(;tag=[a-zA-Z0-9]{4,}.*)?$" || from_uri=~"@equip[0-9][0-9]?.voiprovider.com($|;|:|>)" || from_uri=~"@10.0.0.1($|;|:|>)" || from_uri=~"@10.0.0.2($|;|:|>)" || from_uri=~"@10.0.0.3($|;|:|>)") {
# Skype if (to_uri=~"#skype@") { route(2); exit; };
# Skype if (to_uri=~"%23skype@") { route(2); exit; };
# default route(1); exit;
};
sl_send_reply("403","Forbidden - Wrong domain or Username format"); exit;
};
# Default route(1); exit; } #Default (softswitches) route[1] { ds_select_dst("1", "0"); forward(); exit; } #Skype route[2] { ds_select_dst("2", "0"); forward(); exit; }
#Register route[4] { ds_select_dst("4", "0"); forward(); exit; }
Memory log:
Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: <core> [main.c:691]: Memory status (pkg): Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: fm_status (0x88d5c0): Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: heap size= 4194304 Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: used= 126576, used+overhead=169192, free=4025112 Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: max used (+overhead)= 204008 Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: dumping free list: Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 1 fragments no.: 1, unused: 0 bucket size: 8 - 8 (first 8) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 2 fragments no.: 2, unused: 0 bucket size: 16 - 16 (first 16) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 3 fragments no.: 8, unused: 0 bucket size: 24 - 24 (first 24) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 4 fragments no.: 1, unused: 0 bucket size: 32 - 32 (first 32) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 5 fragments no.: 3, unused: 0 bucket size: 40 - 40 (first 40) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 54 fragments no.: 1, unused: 0 bucket size: 432 - 432 (first 432) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 216 fragments no.: 20, unused: 0 bucket size: 1728 - 1728 (first 1728) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 2056 fragments no.: 1, unused: 0 bucket size: 2097152 - 4194304 (first 3989736) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: TOTAL: 37 free fragments = 4025112 free bytes Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: ----------------------------- Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: <core> [main.c:703]: Memory status (shm): Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: fm_status (0x2b982b03b000): Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: heap size= 33554432 Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: used= 3071760, used+overhead=3109608, free=30444824 Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: max used (+overhead)= 3235640 Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: dumping free list: Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 3 fragments no.: 2, unused: 0 bucket size: 24 - 24 (first 24) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 5 fragments no.: 8, unused: 0 bucket size: 40 - 40 (first 40) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 8 fragments no.: 19, unused: 0 bucket size: 64 - 64 (first 64) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 27 fragments no.: 1, unused: 0 bucket size: 216 - 216 (first 216) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 37 fragments no.: 1, unused: 0 bucket size: 296 - 296 (first 296) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 38 fragments no.: 22, unused: 0 bucket size: 304 - 304 (first 304) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 39 fragments no.: 2, unused: 0 bucket size: 312 - 312 (first 312) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 40 fragments no.: 1, unused: 0 bucket size: 320 - 320 (first 320) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 583 fragments no.: 25, unused: 0 bucket size: 4664 - 4664 (first 4664) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: hash = 2059 fragments no.: 1, unused: 0 bucket size: 16777216 - 33554432 (first 30318496) Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: TOTAL: 82 free fragments = 30444824 free bytes Sep 21 11:31:02 siprouter /usr/local/sbin/kamailio[766]: NOTICE: fm_status: -----------------------------
Santiago Soares
On Tue, Sep 21, 2010 at 5:29 AM, Daniel-Constantin Mierla <miconda@gmail.com
wrote:
For a shorter version of memory status you can set memory_summary=2 or 3:
http://www.kamailio.org/dokuwiki/doku.php/core-cookbook:3.0.x#mem_summary
This will show quickly if there is a leak. Cheers, Daniel
On 9/21/10 9:57 AM, marius zbihlei wrote:
On 09/21/2010 09:18 AM, Marius Zbihlei wrote:
Hello
Can you give us more information on the modules you are loading/ your specific config ?
Marius
Also, is it shared memory or private memory? If you have a dump of the memory distribution, can you spot anything out of the ordinary. As a tip look for functions in the ending part of the dump that repeat for multiple times. The lower offset is usually alloc'ed during module initialization so any big leak will happen at higher offsets (I don't know if this is the rule but this is what I observed).
Have you tried increasing the memory pool?
Cheers Marius
From: sr-users-bounces@lists.sip-router.org [ sr-users-bounces@lists.sip-router.org] On Behalf Of Santiago Soares [ santiagosoares@gmail.com] Sent: Monday, September 20, 2010 9:21 PM To: SR-Users; users@lists.kamailio.org Subject: [SR-Users] Memory leak
Hello,
We use Kamailio as a stateless load balancer. It runs on a VM, with 512 MB RAM, and it seems to have some kind of memory leak. The kamailio processes consume all available memory, until Kamailio crashes and restart. This occurs about once a day. Since it's stateless, and the restart is very fast, it's not a big deal, but I'd like to fix it. The strange thing is that I updated kamailio from 1.5.3 to 3.0.3 and the problem still ocurrs. I followed the instructions on http://www.kamailio.org/dokuwiki/doku.php/troubleshooting:memory in order to determine the cause, and stopped the traffic on the proxy. The allocated memory were not freed, after 1 hour the amount of free memory is still the same. Anybody has an ideia about what's happening, or how can I debug it?
Thank you!
Santiago Soares
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla http://www.asipto.com
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users