[SR-Users] PDT ran out of pkg memory using pdt_list

JR Richardson jmr.richardson at gmail.com
Tue Jul 20 00:16:53 CEST 2010


> So I started seeing this issue with only 35K records in pdt database,
> I increased
> #define PKG_MEM_POOL_SIZE 8*1024*1024
> Then I was able to load 35K records with good results.  I increased
> record count to 60K records and hit the limit again, pdt_list would
> not work with same "no more pkg mem" error.
>
> I increased again:
> #define PKG_MEM_POOL_SIZE 16*1024*1024
> This allowed me to execute pdt_list with 60K to 120K records loaded.
>
> When I added 180K records in the database, I got the "no more pkg mem"
> error again.
> I increased again:
> #define PKG_MEM_POOL_SIZE 32*1024*1024
> This allowed me to execute pdt_list with 180K records loaded.
>
> I increased database record count to 240K and got the "no more pkg
> mem" error again.
>
> So I don't think it is prudent to just keep increasing
> PKG_MEM_POOL_SIZE.  Is this an architectural limitation with fifo
> pkg_mem, shouldn't this be a dynamic allocation if it's not within
> shmem and has no affect on core sip-router function?  While the
> pdt_reload and pdt_list is going on (takes a few seconds to load and
> list), I don't see any problems with the sip-router executions.  I
> guess I can just use the old fashion database query to look up routes
> instead of fifo pdt_list.
>
> Thanks.
>
> JR

So now I'm running out of shmem as well. After I loaded more than 320K
records in the pdt database table, I started getting these errors:
 0(17599) ERROR: pdt [pdtree.c:283]: bad parameters
 0(17599) INFO: pdt [pdt.c:490]: no prefix found in [7000011234]

shmem:real_used_size = 1247512
This parameter does not get above 1247512 without having a problem,
even though I have plenty of shmem available.

shmem:total_size = 33554432
shmem:used_size = 1229472
shmem:real_used_size = 1247512
shmem:max_used_size = 1247512
shmem:free_size = 32306920

I increased these parameters in config.h but that did not help:

/*used only if PKG_MALLOC is defined*/
#define PKG_MEM_POOL_SIZE 64*1024*1024

/*used if SH_MEM is defined*/
#define SHM_MEM_SIZE 64

So now it looks like there is some hard limit on the route size you
can deploy for the pdt module?  Is this the case or is there somewhere
I can increase the available shmem for pdt to use?

Thanks.

JR
-- 
JR Richardson
Engineering for the Masses



More information about the sr-users mailing list