net/asterisk13: memory leak under 12-CURRENT?

O. Hartmann ohartmann at walstatt.org
Thu Sep 28 06:11:57 UTC 2017


On Wed, 27 Sep 2017 09:05:42 +0200
Guido Falsi <madpilot at FreeBSD.org> wrote:

> On 09/26/2017 15:41, O. Hartmann wrote:
> > On Tue, 26 Sep 2017 15:06:23 +0200
> > Guido Falsi <madpilot at FreeBSD.org> wrote:  
> 
> > Since I run net/asterisk with automatic module loading (I'm new to
> > asterisk), this is very likely and might cause the problem somehow.
> >   
> 
> You can exclude single modules from autoloading via modules.conf.
> 
> >> Not sure, restarting the daemon should free any leaked memory the daemon 
> >> has. If a killed process leaves memory locked at the system level there 
> >> should be some other cause.  
> > 
> > Even with no runnidng asterisk, memory level drops after the last shutdown
> > of asterisk and keeps that low. Even for weeks! My router never shows that
> > high memory consumption, even under load.  
> 
> But while asterisk is running does the memory usage increase unbounded
> till filling all available memory or does it stabilize at some point?

While Asterisk is running, it doesn't consume much memory, but stopping
Asterisk, I would expect that the claimed memory is freed again. It isn't, not
all memory is freed. Starting Asterisk then again from this reduced memory
level, it claims its memory, "stabilzes" at a certain point while running and
again, stopping Asterisk leaves the free memory now at a much lower level never
been leveld out - as I said.

I played this game last night ~ 20 times until the free memory dropped beneath
3 GB after asterisk has been shut down. This morning, the level was at the same
low level as I left it. The router has nothing special to do, the workload is
not memory consuming even for weeks! And if there is load, after the load went
away, the memory consumption always leveld out and freed memory.
> 
> Asterisk is relatively memory hungry, especially with all modules
> enabled. It also caches and logs various information in RAM, even doing
> "nothing" it will cache and log that "nothing" activity. If memory does
> stabilize after some point it's not really a leak but it's standard
> memory usage. To reduce it you should disable all unused modules.

I don't understand here. Even if Asterisk is memory hungry - it has ~ 3 GB to
use. But after stopping it, it should free the memory. BUT the system is then
after the stop with less memory! that is the point. Not the running asterisk's
memory consumption bothers me, but the fact, that after 20 start and stops and
waiting for days the memory once gone is never put back.

At the moment, I have mpg123 suspect doing nasty things, because the
vanishing memory is more prominent and indicated when voicemail system has
been used and mpg123 started. Not touching VM subsystem seems to free the
whole memory claimed by asterisk after stopping asterisk, apart from maybe
buffers claimed by the OS released later (I did no thourough investigations on
that).
 
> 
> > 
> > The question would be: how to use vmstat to give hints for those familiar
> > with memory subsystems to indicate a real bug?
> > 
> > I tried to find some advices, but maybe my English isn't good enough to make
> > google help.  
> 
> I'm not able to give you a correct indication, but if the memory usage
> is not increasing indefinitely but is stabilizing I'd say it's not
> really a leak.
> 



More information about the freebsd-current mailing list