You are on page 1of 23

SAP Memory

Management (an
Overview)

SAP Memory Management


SAP Memory areas overview :
- SAP Buffer
- SAP Roll Memory
- SAP Extended Memory
- SAP Heap Memory
- SAP Paging Memory
- Fixed Local Memory of the SAP work Process
Main factors in configuring SAP Memory :
- Physical Main Memory (RAM)
give attention to ratio between physical and virtual memory
- Operating system options and restrictions
compare between 32 and 64 bit system architecture

Memory management fundamental :


The word memory virtual memory
physical main memory + swap space
local memory + shared memory
The maximum amount of virtual memory that can be allocated is limited by two
variable :

- Result of physical hardware restriction


- Maximum address space permited by operating system
The Operating System manages two type of memory :
-Local memory
allocated precisely to one operating system process
-Shared memory
accessible to multiple operating system process

User Context
Reffered :
Data which is generated by transaction process
Variables, Internal table & screen list
New sesion = new user context
Data is stored independently in different memory areas
Stored in SAP roll memory, SAP extended memory, & SAP Heap Memory
Sesions divide into :
External sesion opened explicitly by user
Internal sesion Opened implicitly by program
submit, call transaction, call dialog, call screen, call function
in update task, call function in background task, and call
function starting new task.

Process Flow

Pres.
server

SAP Application Sever

DB Server

Table
buffer

Dispatcher
Queue

dispatche
r

SAP
GUI

SAP Extended
Memory

Program
buffer
DDIC
Buffer

Databas
e
buffer

SAP Roll
Memory
Work Process

DB Process

Work Process

DB Process

Work Process

DB Process

SAP Roll Memory


Local SAP Roll area of work process
- The initial part of user context stored
- Each SAP work process can only access its own roll area
Shared SAP Roll Area
- Accessible to all of instance work processes
- Buffer to temporary keep user context when a user is assigned to
new work process
- Roll in

: copying user context from shared roll area to local roll area

- Roll Out : copying user context from local roll area to shared roll area

Roll buffer (shared memory)


Roll area
(local)

Roll area
(local)
copy

copy

Work
Process1

ztta/roll_first

ztta/roll_area

Roll file (disk)

Roll Buffer (shared)


Roll
(local)

Work
Process2

rdisp/roll_SHM

Roll In /
Roll Out
Roll file

rdisp/roll_MAXFS

SAP Roll area parameters


- ztta/roll_first

: First amount of roll area used in a dialog WP

- ztta/roll_area

: size of the local SAP Roll area in the work process

- rdisp/ROLL_SHM

: size of SAP roll Buffer

- rdisp/ROLL_MAXFS

: size of entire shared SAP roll area

SAP Extended Memory


Shared memory which mostly of user context stored
All SAP work process can edit stored user context directly
Roll in rather only copied the address (pointer) of where a user context
located on the SAP extended memory.
makes roll process much faster

em/initial_size_MB

ztta/roll_extension

SAP Extended Memory main parameters :


em/initial_size_MB : size of SAP extended memory allocated when
the SAP instance starts up
em/blocksize_KB : size block which split SAP Extended Memory
ztta/roll_extension : maximum size of a user context in the SAP Extended
memory

SAP Heap Memory


Area which allocated variably as local memory as required.
Released after a transaction is complete.
SAP Heap Memory main parameters :
abap/heap_area_dia

: quotas oh SAP heap memory that a dialog


process can allocated.

abap/heap_area_nondia : quotas oh SAP heap memory that a nondialog


process can allocated.
abap/heap_area_total

: size that can be allocated in total by all work


process.

abap/heaplimit

: Workprocess restart limit of heap memory

Heap
Memory
(local)

abap/heap_area_(non)dia
abap/heap_area_total

Sequence in which memory is allocated (dialog work process) :

UserIndependent
Data

User Context

Roll memory to

Roll memory to

Roll memory to

Roll memory to

zttz/roll_first

zttz/roll_extension

zttz/roll_area

abap/heap_area_dia

Copying data
during context
change

Mapping the data during


context change

- Data stays in work process


- No context switch possible
- Work process in private mode

Sequence in which memory is allocated (non-dialog work process) :

UserIndependent
Data

User Context

Roll memory to

Roll memory to

Roll memory to

zttz/roll_area

abap/heap_area_dia

zttz/roll_extension

Copying data
during context
change

Mapping the data during


context change
- Data stays in work process
- No context switch possible
- Work process in private mode

SAP EG Memory and SAP Paging Memory


Data can be stored globally between user context
SAP Extended Global Memory
Used to store data across user context
Allows fast & copy-free switching based on mapping.
Substracted from SAP Extended Memory to calculate the remaining
storage space
configured using em/global_area_MB parameters

SAP Paging Memory


Object that stored in the SAP Paging Memory :
ABAP data cluster stored temporarily with ABAP statement
IMPORT/EXPORT FROM/TO MEMORY

Parameter transferred when programs and transaction called


SUBMIT REPORT, CALL TRANSACTION, CALL DIALOG, CALL SCREEN,
CALL FUNCTION IN UPDATE TASK, CALL FUNCTION BACKGROUND
TASK, CALL FUNCTION STARTING NEW TASK

Data extracts created by statement EXTRACT (up to basis 4.5)


SAP Paging Memory Main Parameters :
rdisp/PG_MAXFS : Size of SAP Paging Memory
rdisp/PG_SHM

: Size of SAP Paging Buffer (shared memory)

Error caused by SAP Paging Memory :


TSV_TNEW_PG_CREATE_FAILED
SYSTEM_NO_MORE_PAGING

Server
Global Memory (shared memory)

Local memory

SAP buffers

Additional local

(contains e.g SAP Programs)

heap memory (if required)

SAP roll buffer


Extended Memory
SAP paging
buffer

(User Context)

Local

Local

Local

memory

memory

memory

1:1

1:n
SAP Roll File
SAP Paging File

Work

Work

Work

Process

Process

Process

Configuring & Monitoring SAP Memory Areas


Main Objective :
Performance
Stability

Main Factors to be considered :


Physical Main Memory (RAM)
Swap space or paging file of the operating system
Operating system restriction

Next points to be considered :


Total Main Memory Requirement
Number of Computer
Several SAP instances per computer
SAP extended memory and roll buffer
Memory for SAP work process
Database Instance

Zero administration memory magement :


PHYS_MEMSIZE parameter defines how much of a computers total physical memory
should be used for the SAP instance.

Address Space Restriction (Unix)

em/initial_size_MB
User Context

User Independent
WP
Local

abap/heap_area_(non_)dia

SAP

Roll

SAP Extended Memory

SAP Heap Memory

Buffers

Memory

(Shared)

(local)

(Shared)

(Shared)

Address Space
SAP Work
Process

Address Space Restriction (Windows)

em/initial_size_MB
SAP Extended Memory Total

em/address_space_MB
User Context

User Independent
WP
Local

abap/heap_area_(non_)dia

SAP

Roll

SAP Extended Memory

SAP Heap Memory

Buffers

Memory

(Shared)

(local)

(Shared)

(Shared)

Address Space
SAP Work
Process

Assistance With Troubleshooting


Error because of incorect memory area configuration :
Operating System can not start because the operating system
cannot provide the requsted memory area
Session terminations User is logged off
ABAP Program termination.
Four error factors :
Program errors (e.g endless loop)
SAP Profile parameters are set incorectly
The Swap Space on the operating system is not large enough
Configuration parameters of the operating system are set incorectly
or OS limits have been reached.

ABAP Program Termination :


The memory of user context is used up :
STORAGE_PARAMETERS_WRONG_SET, SYSTEM_ROLL_IN_ERROR,
TSV_TNEW_BLOCKS_NO_ROLL_MEMORY, TSV_TNEW_PAGE_PAGE_ALLOC_FAILED,
TSV_TNEW_INDEX_NO_ROLL_MEMORY
System can not create the program buffer because there is not not sufficient shared memory at that time
PXA_NO_SHARED_MEMORY
The Program encounters a memory bottleneck during an operation in the database interface
DBIF_RTAB_NO_MEMORY, DBIF_RSQL_NO_MEMORY
The Program encounters a memory bottleneck during sorting.
EXSORT_NOT_ENOUGH_MEMORY
Attemp to create error log fails after a terminated program due to lack of memory.
RABAX_CALLING_RABAX
The SAP paging memory is used up
SYSTEM_NO_MORE_PAGING, TSV_TNEW_PAGE_ALLOC_FAILED
The memory for SET/GET parameter (SPA/GPA memory) is used up.
SET_PARAMETER_MEMORY_OVERFLOW
Volume limit of memoy allocated to single call (ztta/max_memreq_MB) is set too low
SYSTEM_NO_ROLL

- End of
Presentation -

You might also like