[OpenSER-Users] [OpenSER-Devel] Memory dump for OpenSER 1.3.1 which slowly leaks memory

Bogdan-Andrei Iancu bogdan at voice-system.ro
Fri Jun 6 17:15:42 CEST 2008


Hi Klaus,

I discarded the mysql option as a potential problem as in this module, 
all the mem ops are transparently done by the mysql client library - as 
a user of the lib, there are very small chances to screw up something 
that will lead to mem leak, without having worst side effects (like out 
of sync errors).

On the other hand, libxml2 give you (as user of the lib) more 
flexibility in playing with data (xml and attr nodes), so the chance to 
get a undetected leak is much, much higher.

Regards,
Bogdan

Klaus Darilion wrote:
>
>
> Bogdan-Andrei Iancu schrieb:
>> Hi Henning,
>>
>> Thanks for the hint.
>>
>> So, your openser processes should use as private memory:
>>     (8/*udp*/ + 1/*timer*/ + 1/*attendant*/ + 1/*fifo*/) * 1 = 11M
>>
>> So, overall, all openser processes will use 11 + 128 = 139M plus 
>> memory requested directly from the OS.
>>
>> looking at your numbers:
>>
>> <quote>
>>
>> # ps -C openser -o vsz,rss
>>   VSZ  RSS
>> 234124 12636
>> 369940 159392
>> 369940 158840
>> 369940 158860
>> 370340 159220
>> 369804 158696
>> 370068 158932
>> 370204 159048
>> 370464 159344
>> 234124 20904
>> 234124 9484
>> 234128 7952
>> 234124 7948
>> 234124 7880
>> 234124 7880
>> 234124 7880
>> 234124 7880
>> 234124 7880
>> 234124 7880
>> 234124 7880
>> 234124 8332
>>
>> </quote>
>>
>> it is clearly that you have 8 workers (2 - 9) - the rest of the 
>> processes have a similar VSZ and RSS, so no more mem is required form 
>> the system.
>>
>> For the workers, I guess there are some script function (from some 
>> modules) that are directly requesting memory (and not via openser mem 
>> manager). Looking at your list:
>>
>> <quote>
>>
>> loadmodule "mysql.so"
>> loadmodule "sl.so"
>> loadmodule "tm.so"
>> loadmodule "usrloc.so"
>> loadmodule "auth.so"
>> loadmodule "auth_db.so"
>> loadmodule "maxfwd.so"
>> loadmodule "mi_fifo.so"
>> loadmodule "nathelper.so"
>> loadmodule "perl.so"
>> loadmodule "registrar.so"
>> loadmodule "rr.so"
>> loadmodule "textops.so"
>> loadmodule "uri.so"
>>
>> </quote>
>>
>> there are none of the modules that use libxml2 or expat, but I see 
>> you are using perl - there were some past problems with mem leaks due 
>> this module, so you may try to take out the module and see if the 
>> leak is still present.
>
>
> what about mysql? It uses the mysql library which probably will use OS 
> memory allocator and not openser's memory allocator.
>
> regards
> klaus
>





More information about the Users mailing list