Memory allocation sequence to dialog work processes in SAP
- What is the memory allocation sequence to dialog work processes in SAP?
- When does a work process go to PRIV mode?
- How to avoid or minimize work process going to PRIV mode ?
- What are the SAP parameters used to define initial roll area, extended memory, heap memory, roll area ?
Memory allocation sequence to dialog work processes in SAP :
1. Initially , a defined roll area is used. This roll area is defined by the SAP parameter ztta/roll_first.
Usually ztta/roll_first is set to 1 in SAP so that only necessary amount is allocated to roll memory.
If the memory from the initial roll area( i.e. ztta/roll_first) is not
sufficient for the user context then comes extended memory.
- Extended memory is used until the extended memory is full or until the user quota is reached
Extended
memory is defined by the SAP parameter em/initial_size_MB and the user
quota for dialog work process is defined by the parameter
ztta/roll_extension_dia.
If this memory is also not sufficient, then
- The rest of the roll area is used. This roll area is defined by SAP parameter ztta/roll_area.
- The system is forced to use local heap memory (Private memory). Then the work process goes into PRIV mode
- either the limit of the heap memory for dialog work processes is reached (abap/heap_area_dia) or the entire heap memory of all work processes(abap/heap_area_total) for an application server reaches its limit.
- Operating system limit for allocation of memory
- The swap space in the host system is used up or the upper limit of the operating system address space is reached.
The
memory allocation strategy for dialog work processes, aims to prevent
work processes from allocating R/3 heap memory and thus entering PRIV
mode.
When
a work process enters PRIV mode, it remains connected to the user until
the user ends the transaction. Most of the time, we should try to
avoid the situation of work process going into PRIV mode for better
performance of the SAP system. This can be done by optimally defining
abap/heap_area_total parameter.
Memory allocation sequence to non dialog work processes in SAP
- What is the memory allocation sequence to non dialog work processes (background, update, en-queue and spool work processes in SAP?
- What are the SAP parameters used to define initial roll area, extended memory, heap memory, roll area ?
- What is the memory allocation sequence to non dialog work processes in Windows NT?
However
memory allocation sequence to non-dialog work processes is bit
different based on Platform. In Windows NT, memory allocation sequence
for non-dialog work processes is same as that of dialog work process
memory allocation sequence in other platforms.
Memory allocation sequence to non dialog work processes in SAP as below (except in windows NT) :
- Initially memory is assigned from the Roll memory. Roll memory is defined by SAP parameter ztta/roll_area and it is assigned until it is completely used up.
If the roll memory is full then
- Heap memory is allocated to the non-dialog work process. Heap memory is available until one of the following occurs :
- Either the limit of the heap memory for non-dialog work processes is reached (defined by the SAP parameter abap/heap_area_nondia) or the entire heap memory of all work processes of an SAP application server reaches its limit which is defined by parameter abap/heap_area_total.
- Operating system limits of allocating memory
- The swap space in the host system is completely used up. However this situation should not occur often which results in severe performance issues.
- If all the above mentioned heap memory is completely used up then a non-dialog work process can use the SAP extended memory defined by SAP parameter em/initial_size_MB.