[asterisk-users] High resident memory with 11.14.0 ?

James Lamanna jlamanna at gmail.com
Fri Nov 28 17:09:20 CST 2014


On Wed, Nov 26, 2014 at 3:20 PM, James Lamanna <jlamanna at gmail.com> wrote:

>
> On Tue, Nov 25, 2014 at 10:21 AM, James Lamanna <jlamanna at gmail.com>
> wrote:
>
>>
>> On Tue, Nov 25, 2014 at 8:14 AM, Matthew Jordan <mjordan at digium.com>
>> wrote:
>>
>>> On Mon, Nov 24, 2014 at 2:12 PM, James Lamanna <jlamanna at gmail.com>
>>> wrote:
>>> > Also, how big does the cache in frame.c grow to?
>>> > I've recompiled with MALLOC_DEBUG on that server:
>>> >
>>> > asterisk -rx "memory show summary"
>>> >
>>> > ....
>>> > 1780466242 bytes (1780181594 cache) in    2352909 allocations in file
>>> > frame.c
>>> > ...
>>> >
>>> > Seems like a ridiculous cache.
>>> >
>>>
>>> I'm not going to respond to your new thread, since it is the same
>>> discussion as this one.
>>>
>>> The frame cache is a per-thread local cache of frames that prevents
>>> having to re-allocate frames as they pass through Asterisk. Clearly,
>>> something is abusing it.
>>>
>>> I think you'll need to provide some more information on how you're
>>> producing this situation. Specifically:
>>>  * Channel technologies involved, and the formats on the channels
>>>  * Dialplan that reproduces the problem
>>>
>>> Are you using any non-core dialplan applications or channel drivers?
>>>
>>>
>> This PBX has about 100 registered SIP clients, along with 23 PRI
>> channels, 2 inbound/outbound SIP trunks and around 100 IAXModems registered
>> to it. It primarily handles faxing.
>> I am not using any non-standard channel drivers. I am using the T.38
>> gateway funcionality.
>>
>> The jist of the dialplan is this: (example of the PRI and a SIP trunk,
>> inbound)
>>
>> [pri-in]
>> exten => _X.,1,Set(__FROM_DID=${EXTEN})
>> exten => _X.,n,Set(FAX_IDX=700)
>> exten => _X.,n,Set(MAX_IDX=719)
>> exten => _X.,n,Goto(dial-hylafax,s,1)
>>
>> [sip-trunk-in]
>> exten => _X.,1(normal),Set(__FROM_DID=${EXTEN})
>> exten => _X.,n,Set(FAX_IDX=950)
>> exten => _X.,n,Set(MAX_IDX=959)
>> exten => _X.,n,Set(FAXOPT(gateway)=yes)
>> exten => _X.,n,Goto(dial-hylafax,s,1)
>>
>> [dial-hylafax]
>> exten => s,1,GotoIf($["${FROM_DID:0:1}" = "1"]?prune:cont)
>> exten => s,n(prune),Set(__FROM_DID=${FROM_DID:1})
>> exten => s,n(cont),GotoIf($[${FAX_IDX} <= ${MAX_IDX}]?tryfax:nofax)
>> exten => s,n(tryfax),Set(STATE=${DEVICE_STATE(Custom:iaxmodem${FAX_IDX})})
>> exten => s,n,NoOp(${STATE})
>> exten => s,n,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=INUSE)
>> exten => s,n,Dial(IAX2/iaxmodem${FAX_IDX}/${FROM_DID},60,g)
>> exten => s,n,Goto(s-${DIALSTATUS},1)
>> exten => s,n(nofax),Playtones(busy)
>> exten => s,n,NoOp(NO MODEMS AVAILABLE)
>> exten => s,n,Wait(20)
>> exten => s,n,Hangup()
>> exten => s-ANSWER,1,NoOp(IAXMODEM HANGUP)
>> exten => s-ANSWER,n,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=NOT_INUSE)
>> exten => s-ANSWER,n,Hangup()
>> exten => _s-.,1,Set(FAX_IDX=${MATH(1+${FAX_IDX},i)})
>> exten => _s-.,n,Goto(s,1)
>> exten => h,1,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=NOT_INUSE)
>>
>> The current state requires me to restart Asterisk almost every day.
>> I'm also seeing this on a completely different machine after upgrading
>> from Asterisk10 to 11.
>>
>>
> I'm wondering if this is a problem in the SLIN converter?
> I do use SLIN with iaxmodem.
>
>
Also of note,
A quick valgrind run and attempting to send a few faxes produces a bunch of
these in the valgrind output:

==30640== 217,259 bytes in 287 blocks are definitely lost in loss record
1,778 of 1,789
==30640==    at 0x4C267CC: calloc (vg_replace_malloc.c:467)
==30640==    by 0x4DC50E: ast_frdup (utils.h:523)
==30640==    by 0x47125F: __ast_queue_frame (channel.c:1284)
==30640==    by 0x1EF75589: __do_deliver (chan_iax2.c:3102)
==30640==    by 0x1EF76C5A: schedule_delivery (chan_iax2.c:4374)
==30640==    by 0x1EF8F497: socket_process_helper (chan_iax2.c:12010)
==30640==    by 0x1EF99C37: iax2_process_thread (chan_iax2.c:12030)
==30640==    by 0x56C458: dummy_start (utils.c:1192)
==30640==    by 0x5E359C9: start_thread (pthread_create.c:300)
==30640==    by 0x270326FF: ???
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20141128/8aaa834a/attachment.html>


More information about the asterisk-users mailing list