[SR-Users] Memory leak

Santiago Soares santiagosoares at gmail.com
Tue Sep 21 16:41:20 CEST 2010


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 at 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 at 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 at lists.sip-router.org [
>>> sr-users-bounces at lists.sip-router.org] On Behalf Of Santiago Soares [
>>> santiagosoares at gmail.com]
>>> Sent: Monday, September 20, 2010 9:21 PM
>>> To: SR-Users; users at 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 at 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 at 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 at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20100921/ea893c1a/attachment-0001.htm>


More information about the sr-users mailing list