0% found this document useful (0 votes)
172 views4 pages

Memory Based Crashes

Many parameters can help in managing memory for Domino. Using these parameters is a MUST on partitioned servers. Memory fragmentation can be done from memory dumps or in an nsd.

Uploaded by

osama abushama
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
172 views4 pages

Memory Based Crashes

Many parameters can help in managing memory for Domino. Using these parameters is a MUST on partitioned servers. Memory fragmentation can be done from memory dumps or in an nsd.

Uploaded by

osama abushama
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Memory Based Crashes

###########################################
### FATAL THREAD 9/83 [ nserver:074c: 2096]
Exception code: c0000005 (ACCESS_VIOLATION)
###########################################
@[ 1] 0x6018eb23 nnotes._Panic
@[ 2] 0x6018e8ec nnotes._Halt
@[ 3] 0x60113480 nnotes._AccessAllProtected
@[ 4] 0x6004ec4f nnotes._AccessAll
@[ 5] 0x6004fb45 nnotes._ProcessGlobalEvent
@[ 6] 0x6019abc7 nnotes._OSPerformGlobalEvent
@[ 7] 0x6018f7ff nnotes._DEBUGDumpHandleTable
@[ 8] 0x6011347a nnotes._AccessAllProtected
@[ 9] 0x6004ec4f nnotes._AccessAll
@[10] 0x6004fb45 nnotes._ProcessGlobalEvent

1. Memory Management

Domino on AIX / Solaris /Linux has different address space, as Domino


is a 32 bit application, by default it should have an address space of
2^32 =4GB , but by design development has enforced limitations on
these address spaces

AIX 2.25 GB
Solaris 3GB
Linux 3GB
W32 2Gb
iSeries 2GB

Many parameters can help in managing memory for Domino and


sometimes combinations can be used to control memory, especially for
server having 2GB or less RAM.
From R5 and still valid

NSF_BUFFER_POOL_SIZE ,
NSF_BUFFER_POOL_SIZE_MB and
PercentAvailSysResources

From R6

ConstrainedSHM and
ConstrainedSHMSizeMB

From R7

The variable "MEM_AddressableMemSizeMB=VALUE" can be used to


override our default setting for the amount of memory Domino will see as
"addressable" memory (where VALUE is in megabytes, and the default varies
by platform). this parameter will be checked by server and can not be set
below 128mb or higher than OS addressable memory.

Using these Parameters is a MUST on partitioned servers.


WHY?

Partition who gets memory first , keeps it.

2. Memory Leaks

How to find a leak in a memory dump or in an nsd?


By Handle or by Size leak?

Use TOP 10 Tables in nsd's

What to do next? Trapleak or not to Trapleak


What blocks can be ignored
Why is UBM_BUFFER block very high in size

UBM_BUFFER = ( 3 / 8 ) x Addressable Memory Space

Ex:

AIX box with 4 GB and 2 Domino partitions having


ConstrainedSHMSizeMB = 1800 in each notes.ini

UBM_BUFFER= 3/8 * 1800 = 675MB


3. Memory Fragmentation

Difficult to spot , but can be done from memory dumps , can be from
OS or from private memory
a good example on AIX that can cause fragmentation is the env
parameter MALLOCMULTIHEAP , L2 and L3 always advice not to use
MALLOCMULTIHEAP as it causes crashes sometimes and can not
improve Domino performance more than 5% max.

usage of PRIVATE_DPOOLSIZE_THRESHOLD for private memory

Starting with Notes/Domino 6.0.2 a new notes.ini variable is available


that allows you to control the threshold at which allocations are
directed to system memory.

PRIVATE_DPOOLSIZE_THRESHOLD=maxbytes, where maxbytes is a


value in the 65536 to 524288 range (= 64 KB to 512 KB, with 512 KB
being the default when the parameter is not present).

4. 3rd party and Java heaps

Memory dumps and nsd's can not detect how much 3rd party
applications are using, OS tools might be needed
when using java applications advice using JavaMaxHeapSize and
JavaMinHeapSize in the notes.ini
5. Memory corruption

How to find memory corruption in nsd? keyword is corrupted

example:

** Checking POOL MEMBER 1/3


ERROR (35): POOL (0x11b3) is corrupted @1026260
Last Block(idx=110, off=16976, type=free): size = 26268, end @1026259
16972: 162E 43A8 669C 494C 4500 AFFF 162E 43A8 '..C(f.ILE./...C('
16988: 6690 494C 4500 AFFF 162E 431C 0008 E261 'f.ILE./...C...ba'
17004: FFFA 0096 F091 2B18 0000 0000 0000 0000 '.z..p.+.........'
17020: D243 10DC 3047 1118 0010 0000 0000 0000 'RC.\0G..........'
17036: 0000 0000 3046 F5D4 0000 0000 0000 0000 '....0FuT........'
17052: 0001 0000 F093 1C18 3047 1014 0000 0000 '....p...0G......'
17068: F093 2014 0000 0000 0000 0001 0000 0000 'p. .............'
17084: 0000 0000 0001 53DC 3047 2554 0000 0000 '......S\0G%T....'
17100: 3046 AFFF 162E 53DC 0C68 2B18 0000 0000 '0F/...S\.h+.....'
17116: 0000 0000 3047 10F8 0000 0000 3047 2554 '....0G.x....0G%T'
17132: 0000 0000 0000 0000 3046 EC34 0000 05AE '........0Fl4....'
17148: 0000 0000 0000 0001 162E E261 FFFA 000E '..........ba.z..'

and not the following

ERROR (0): Monitor client data is corrupted

You might also like