
HELP: memory problem in replication server system.
Quote:
> Here is a line from the log file of one of the replication servers in
> my system. I'm new to System10 replication server. The system is HP-UX.
> ERROR #7031 SQT(103:1 LNa_P.position) -m/memseg.c(702)
> Cannot expand memory since '64' memory maps already exist.
> At the same time one SQT and one DIST thread are down too.
> Any help in diagnosing this problem will be appreciated.
> Surya.
> PS: You can reply directly to me if you want.
Repserver's memory management uses segments as the lowest level of internal
allocation these segments can have sizes varying 256 bytes to 64KB.
Segments of the same size are grouped together in "maps".
When the server requests memory from the operating system it does so by asking
for a chunk of memory which it splits up into segments. For any chunk the
segments are all the same size. These chunks are identified by the memory
maps.
At startup the server requests one chunk of each size of segments (256, 1K
4K, 16K, 64K) so 5 memory maps are used. During runtime if it runs out of
a particular size of segment it allocates a new chunk using another memory
map. Memory maps are never released so it is possible to have a large number
of unused segments and still need to allocate a new chunk of a different size
segments.
The server only has 64 of these map structures available so once they are
used up any requests for new chunk of memory will get the above error.
The immediate solution is to restart the repserver as this will reset the
maps.
The size of the chunk allocated to each map is based on the servers memory
config. multplied by a scaling factor which I can't remember. The 5 chunks
allocated at startup are bigger than the ones allocated later and the total
which can be allocated is considerably bigger than the config. value.
I remember seeing a very good write up of this (a much better explanation
then mine) and other repserver questions, but I have lost my copy. If this
doc. is available on line anywhere I would be grateful for a pointer to it.
Cheers,
Pete.