Hi, according to the wiki page:
http://www.kamailio.org/dokuwiki/doku.php/troubleshooting:memory
In order to detect a possible memory leak (in PGK or SHM) a good way
is enabling memory debugging and shuting down the server, so:
"the memory manager will dump the memory status. Normally most of the
memory is cleaned during shutdown. If there is memory leak, it should
be visible as not-freed memory."
But I would like to know how exactly to detect if there is a memoty
leak by inspecting the SHM/PKG status, something like this:
-----------------------------------------------------------------------------------------------------------------------------
[32715]: Memory status (pkg):
[32715]: fm_status (0x701a40):
[32715]: heap size= 16777216
[32715]: used= 189696, used+overhead=247392, free=16529824
[32715]: max used (+overhead)= 247392
[32715]: dumping free list:
[32715]: hash = 1 fragments no.: 1, unused: 0#012#011#011
bucket size: 8 - 8 (first 8)
[32715]: hash = 2058 fragments no.: 1, unused: 0#012#011#011
bucket size: 8388608 - 16777216 (first 16530136)
[32715]: TOTAL: 2 free fragments = 16530144 free bytes
[32678]: Memory status (shm):
[32678]: fm_status (0x7fa57921c000):
[32678]: heap size= 67108864
[32678]: used= 16, used+overhead=35872, free=67072992
[32678]: max used (+overhead)= 2821064
[32678]: dumping free list:
[32678]: hash = 1 fragments no.: 45, unused: 0#012#011#011
bucket size: 8 - 8 (first 8)
[32678]: hash = 2 fragments no.: 4, unused: 0#012#011#011
bucket size: 16 - 16 (first 16)
[32678]: hash = 3 fragments no.: 16, unused: 0#012#011#011
bucket size: 24 - 24 (first 24)
[32678]: hash = 4 fragments no.: 2, unused: 0#012#011#011
bucket size: 32 - 32 (first 32)
[32678]: hash = 5 fragments no.: 1, unused: 0#012#011#011
bucket size: 40 - 40 (first 40)
[32678]: hash = 6 fragments no.: 1, unused: 0#012#011#011
bucket size: 48 - 48 (first 48)
[32678]: hash = 7 fragments no.: 39, unused: 0#012#011#011
bucket size: 56 - 56 (first 56)
[32678]: hash = 8 fragments no.: 1, unused: 0#012#011#011
bucket size: 64 - 64 (first 64)
[32678]: hash = 9 fragments no.: 1, unused: 0#012#011#011
bucket size: 72 - 72 (first 72)
[32678]: hash = 10 fragments no.: 2, unused: 0#012#011#011
bucket size: 80 - 80 (first 80)
[32678]: hash = 15 fragments no.: 1, unused: 0#012#011#011
bucket size: 120 - 120 (first 120)
[32678]: hash = 25 fragments no.: 1, unused: 0#012#011#011
bucket size: 200 - 200 (first 200)
[32678]: hash = 40 fragments no.: 5, unused: 0#012#011#011
bucket size: 320 - 320 (first 320)
[32678]: hash = 112 fragments no.: 1, unused: 0#012#011#011
bucket size: 896 - 896 (first 896)
[32678]: hash = 128 fragments no.: 4, unused: 0#012#011#011
bucket size: 1024 - 1024 (first 1024)
[32678]: hash = 129 fragments no.: 2, unused: 0#012#011#011
bucket size: 1032 - 1032 (first 1032)
[32678]: hash = 224 fragments no.: 1, unused: 0#012#011#011
bucket size: 1792 - 1792 (first 1792)
[32678]: hash = 258 fragments no.: 3, unused: 0#012#011#011
bucket size: 2064 - 2064 (first 2064)
[32678]: hash = 473 fragments no.: 1, unused: 0#012#011#011
bucket size: 3784 - 3784 (first 3784)
[32678]: hash = 1026 fragments no.: 1, unused: 0#012#011#011
bucket size: 8208 - 8208 (first 8208)
[32678]: hash = 2049 fragments no.: 2, unused: 0#012#011#011
bucket size: 16384 - 32768 (first 16512)
[32678]: hash = 2051 fragments no.: 1, unused: 0#012#011#011
bucket size: 65536 - 131072 (first 98336)
[32678]: hash = 2056 fragments no.: 1, unused: 0#012#011#011
bucket size: 2097152 - 4194304 (first 2621440)
[32678]: hash = 2060 fragments no.: 1, unused: 0#012#011#011
bucket size: 33554432 - 67108864 (first 64287800)
[32678]: TOTAL: 137 free fragments = 67072992 free bytes
-----------------------------------------------------------------------------------------------------------------------------
This is, how should look this SHM/PKG status example (after shutdown)
in case there is a memory leak? how to detect not-freed memory?
it does not look as a dump with memory debugging on.