Register Login

MEMORY ALLOCATION

Updated May 18, 2018

1. User submits the request.
2. Dispatcher assigns the WP
3. WP requires memory to Roll -In the user context.
4. WP gets memory from local memory which is defined in the parameter ztta/roll_area. It gets only a part of it which is defined by parameter ztta/roll_first (20KB)
5. If the allocated memory is not sufficient then it gets allocated from Extended memory ztta/roll_extension.
6. If that is also not sufficient then it uses the remaining ROLL Area.
7. If that is also not sufficient then it uses HEAP/ PRIVATE Memory and the WP goes into PRIVATE Mode.
8. Heap memory is defined by the parameter

Abap/heaplimit=4GB
                        Abap/heap_area_dia

Transaction ST02 provides the memory utilization
9. Each dialogue uses abap/heap_area_dia and non dia uses abap/heap_area_nondia both process should not exceed abap/heap_area_total.

Memory : RAM is the first Memory. Out of this we don't want to allow SAP to utilize the whole memory.
Virtual Memory: Pagefile.sys

11-Aug-09

User ---> Dispatcher ---> WP ---> Rolls Its Memory
Requires Memory to Roll In to the Task Handler
Ztta/roll_first - 20KB
Extended Memory is used by all the Work Processes.
20 KB ztta/roll_first through ztta/roll_area
Extended Memory ztta/roll_extension : 512 MB
Come back to local Memory
If all the memory is consumed it cant come back so goes to the Heap/ Private Memory.

CASE STUDY

We have configured 20 WP in the Instance and we know pretty well that each user request consumes a minimum of 25MB of Memory

WP      MEMORY                 4GB                                        8GB                STATUS
            Roll_first                    Roll_extn        Roll_Area       Heap              
1          20KB                          512MB            19.980MB       2GB                PRIV
2          20KB                          512MB            19.980MB       2GB                PRIV
.
.
8
9          20KB                          0MB                19.980MB       5MB                PRIV

Rdisp/max_priv_time

                        When the process uses Heap Memory it is used in Heap/ Private mode. The processes which are in PRIV Mode cannot be timed out by

Rdisp/max_wprun_time
Rdisp/max_priv_time

So configure so that the process is timed out after this time (600 Seconds/ 10 Minutes) when the work process goes into PRIV mode it will not listen to rdisp/max_wprun_time=600sec. It will be released only after the task completion or Memory is exhausted(Abap/heap_area_dia)/ timed out by rdisp/max_priv_time. This situation is referred as Hour Glass Mode or WP Congestion. At this situation we can use DPMON or SM04 to terminate the user session. If not kill the process at OS level based on PID.


×