Hi,
unfortunately there is no documentation. The pool was needed since a
particular memory manager was implemented (both from synchronization and
management point of view).
the most variable memory is the shared one - you can control its size
via the "m" command line parameter.
on pkg (private) memory has great impact only massive startup loads
(like usrloc, lcr, etc)...we are working on a design to overcome this.
regards,
bogdan
S G wrote:
Thanks Bogdan,
Is there any type of documentation on the memory management system for
openser? What are the pros/cons of statically allocating the pool this
way? I can see a need for dynamic memory in modules such as LCR where
routing tables could increase on the fly. I am looking into making my
own modifications to LCR module that will utilize very large routing
tables. It wouldnt make sense to have to recompile openser anytime
there was an increase in routing information. It would also seem a
waste to reserve all the system memory when not in use by the program.
Would there be issues if a module didn't utilize openser's memory
management?
-Sumeet
From: Bogdan-Andrei Iancu <[EMAIL PROTECTED]>
To: S G <[EMAIL PROTECTED]>
CC: [email protected]
Subject: Re: [Devel] openser memory
Date: Tue, 18 Apr 2006 11:06:03 +0300
Hi,
openser uses two pools of memory - one per process (private) and one
shared between the processes.
These pools are allocated at startup, so no additional memory will be
required from the system at runtime.
PKG memory is the private one and by default is set to 1M (1024*1024).
So, first see what memory is running out and then increase it.
regards,
bogdan
S G wrote:
I am getting errors of openser running out of memory. Yet there is
1.5 gigs of memory avaialbe on the system in question. It is
possible there is a bug in a module affecting other parts of
openser, but i have a question on the memory management.
I notice this define,
#define PKG_MEM_POOL_SIZE 1024*1024
and these lines in memory code,
char mem_pool[PKG_MEM_POOL_SIZE];
#ifdef PKG_MALLOC
/*init mem*/
#ifdef VQ_MALLOC
mem_block=vqm_malloc_init(mem_pool, PKG_MEM_POOL_SIZE);
#elif F_MALLOC
mem_block=fm_malloc_init(mem_pool, PKG_MEM_POOL_SIZE);
#else
mem_block=qm_malloc_init(mem_pool, PKG_MEM_POOL_SIZE);
#endif
How is PKG_MEM_POOL_SIZE used? Is openser not configured to use all
available memory?
Thanks,
Sumeet
_________________________________________________________________
Don’t just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/
_______________________________________________
Devel mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's
FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
_______________________________________________
Devel mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel