[SR-Users] Question about debugging using `kamcmd pkg.stats`

Daniel-Constantin Mierla miconda at gmail.com
Fri Apr 8 14:02:28 CEST 2016


Hello,

On 08/04/16 13:42, Lucian Balaceanu wrote:
> Hi,
>
> Ok, then in my case mem_join is not enabled.
>
> So the scenario is plausible, right? 8M of free private memory doesn't
> mean neccesarily that there is a contiguous chunk of 200K. So such a
> big pkg alloc can fail?

yes, that is possible, depending on the version and the memory manager
you have.

With the recent versions, f_malloc does defrag on demand, meaning that
if no chunk of desired size is available, then will do defrag till it
merges chunks and gets to the needed size. Check sources of your
kamailio version in mem/f_malloc.c for fm_search_defrag() function.

Cheers,
Daniel

>
> Thank you
>
> On 08.04.2016 12:48, Daniel-Constantin Mierla wrote:
>> Hi Lucian,
>>
>> the mem_join is enabled by default -- I checked from 4.1.x to 4.3.x. In
>> the Makefile.defs should be a:
>>
>> C_DEFS+= -DMEM_JOIN_FREE
>>
>> In 4.4 I just noticed it was lost when I added the feature to select the
>> memory manger with command line option -x. I will fix it.
>>
>> Even MEM_JOIN_FREE is enabled at compile, you still need mem_join=1 in
>> your configuration file (the default value is mem_join=0). Also, you can
>> change the value for mem_join at runtime, via kamcmd/rpc commands.
>>
>> Cheers,
>> Daniel
>>
>>
>> On 08/04/16 11:18, Lucian Balaceanu wrote:
>>> Hi Daniel,
>>>
>>> Thank you for yesterday's input.
>>>
>>> By doing some debugging on the 'no private memory left' I came to the
>>> conclusion that there is enough private memory as a whole to allocate
>>> the required amount, but that there is no single free chunk big enough
>>> to accommodate the required size.
>>> This is a valid scenario when MEM_JOIN_FREE is 0, right?
>>>
>>> Btw, how can I determine if I have this MEM_JOIN_FREE set or not? I am
>>> looking in `kamailio -V ` output and in the kamailio.cfg and mem_join
>>> is not set. I cannot determine in which version MEM_JOIN_FREE is
>>> supposed to be set by default - how can I find this?
>>>
>>> Thank you,
>>> Lucian
>>>
>>> On 07.04.2016 11:30, Lucian Balaceanu wrote:
>>>> Hi again,
>>>>
>>>> I get the pkg mem error inside the mi_fifo module and this seems not
>>>> to be part of the  `kamcmd pkg.stats`.
>>>> I guess the only way to debug this mi_fifo process is by way of gdb
>>>> as in https://www.kamailio.org/wiki/tutorials/troubleshooting/memory,
>>>> right?
>>>>
>>>> Thank you,
>>>> Lucian
>>>>
>>>> On 06.04.2016 20:52, Lucian Balaceanu wrote:
>>>>> Hi Daniel,
>>>>>
>>>>> While debugging a 'no private memory left' issue by using `kamcmd
>>>>> pkg.stats` we stumbled upon data we don't understand. Could you help
>>>>> with some information?
>>>>>
>>>>> `kamcmd pkg.stats`returns free values of about 8M per process with
>>>>> an exception:
>>>>> kamailio with no apparent  problems:  `timer` process: free value:
>>>>> 8M    used value: 100M real_used: 308M.
>>>>> kamailio with no private memory left:  `timer` process: free value:
>>>>> 8/9M used value: 98M   real_used: 662M
>>>>> (both mentioned kamailios have roughly the same load)
>>>>>
>>>>> Are these timer values normal? What is this real_used value and how
>>>>> can it be bigger than the allocated pkg mem?
>>>>> Additionally, how come we don't see the fifo process pkg stats in
>>>>> the output of `kamcmd pkg.stats`?
>>>>>
>>>>> We get the error message when doing reloading backlists via kamctl
>>>>> fifo.
>>>>>
>>>>> Thank you,
>>>>> Lucian Balaceanu
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, Berlin, May 18-20, 2016 - http://www.kamailioworld.com




More information about the sr-users mailing list