2010/4/8 Daniel-Constantin Mierla miconda@gmail.com:
Do I miss something? is it possible to log allocated and freeded memory without generating so many logs?
the goal is to see the places where the memory was allocated. That will give the proper hints about the leak.
What you can do is to print pkg status only when you send SIGUSR1 -- I attached a patch for that.
Great, I'll use it in the standby server and will test with SIPp in order to determine the possible memory leak.
In this way, a restart does not print pkg and shm status, so it is fast. At runtime, when you send SIGUSR1 to a pid, the others can work just fine, so processing should not be affected that much. Use kamctl ps to spot the pid of an udp worker.
For this purpose I've created a bash script which does the job for me :) I attach it.
In the production server (no mem debugging compiled) I've created a cron job which invokes the attached script every 5 minutes. Then with other scritp I filter the PKG status from kamailio log file (rsyslog logs it to a separate file) and get this output:
Apr 8 13:55:01 kamailio[11770]: used= 190936, used+overhead=250696, free=16526520 Apr 8 13:55:01 kamailio[11770]: max used (+overhead)= 258464 Apr 8 13:55:01 kamailio[11758]: used= 191176, used+overhead=250648, free=16526568 Apr 8 13:55:01 kamailio[11758]: max used (+overhead)= 257864 Apr 8 14:05:01 kamailio[11770]: used= 190936, used+overhead=250696, free=16526520 Apr 8 14:05:01 kamailio[11770]: max used (+overhead)= 258464 Apr 8 14:05:01 kamailio[11758]: used= 191176, used+overhead=250648, free=16526568 Apr 8 14:05:01 kamailio[11758]: max used (+overhead)= 257864
I cannot determine the memory leak cause with this, but I can determine that some memory exists if the 'used' value is increased, right?
Thanks a lot.