sap memory

41
Memory Management

Upload: ashok-reddy

Post on 05-Dec-2015

278 views

Category:

Documents


2 download

DESCRIPTION

sap memory management buffers concept

TRANSCRIPT

Page 1: sap Memory

Memory Management

Page 2: sap Memory

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 permitted by operating system

Page 3: sap Memory

Memory Areas- Shared Memory & Local Memory

• Shared memory

• Work

• process• Work

• process• Work

• process• Work

• process• Work

• process• Work

• process• Work

• process

• All work processes

• of one instance

• Local Memory

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

Page 4: sap Memory

Virtual Memory

Page 5: sap Memory

SAP Memory used in Principle

Page 6: sap Memory

SAP Buffers in Shared Memory

Page 7: sap Memory

Extended Memory

Page 8: sap Memory

Allocated Memory Areas

Page 9: sap Memory

Roll Buffer in Shared Memory

Page 10: sap Memory

SAP Paging Buffer in Shared Memory

Page 11: sap Memory

SAP Memory Areas - Overview

Page 12: sap 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

Page 13: sap Memory

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

Page 14: sap Memory

Memory Allocation Concepts – Work Processes Processing One Step at a Time

• Data

• for user

3

• Data

• for user

1

• x

• Dialog • Dialog

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• work

• Process 1

• work

• Process 2

Page 15: sap Memory

Roll Out

• Dialog

• Exit

• Data

• for user

1

• Data

• for user

3

• Dialog

• Copy

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• work

• Process 1

• work

• Process 2

Page 16: sap Memory

Roll In

• Data

• for user

1• Data

• for user

3

• Data

• for user

4

• Dialog• Dialog

• Copy

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• work

• Process 1

• work

• Process 2

Page 17: sap Memory

Roll and Paging Area of the Dialog Work Process

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• Paging

• area

• Roll

• area

• User context objects such as:

• Authorizations

• Set/Get Parameters

• (Internal tables)

• (Report lists)

• Memory for specific

• ABAP commands

• work

• Process 1

• Dialog

Page 18: sap Memory

Memory Allocation Sequence 1

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• Dialog

• 1st: • A defined initial part of the roll area is used

• Extended

• Memory

• (shared)

• Roll area

• Paging

• area

• work

• Process 2

Page 19: sap Memory

Memory Allocation Sequence 2

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• Dialog

• 2nd:• Extended

memory is used until…

• Roll area

• Paging

• area

• Extended

• Memory

• (shared)

• Mapping

• work

• Process 2

Page 20: sap Memory

Memory Allocation Sequence 3

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• Dialog• Roll area

• Paging

• area

• … the extended memory is full or…

• Extended

• Memory

• (shared)

•X • work

• Process 2

Page 21: sap Memory

Memory Allocation Sequence 4

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• Dialog• ….until the user quota is reached

• Extended

• Memory

• (shared)

•X• Roll area

• Paging

• area

• work

• Process 2

Page 22: sap Memory

Memory Allocation Sequence 5

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• Dialog

• Extended

• Memory

• (shared)

• Roll

• Area

• Paging

• area

• 3rd:• The rest of the

WP-local

• roll area is used

• work

• Process 2

Page 23: sap Memory

Memory Allocation Sequence 6

• SAP User • SAP User • SAP User • SAP User

• 1 • 2 • 3 • 4

• Dialog

• Extended

• Memory

• (shared)

• 4th:• The System is

forced to use local heap memory

• Roll

• Area

• Paging

• area

• Heap

• Memory

• work

• Process 2

Page 24: sap Memory

SAP Buffers &

Memory Management

Page 25: sap Memory

SAP Memory Management

• To optimize the performance of SAP Systems , it is necessary to understand Memory Management in SAP

• The previous sessions provided explanation on SAP work processes and how they are executed

• For each work process to execute a certain amount of memory is required. This memory can be a part of the RAM or part of Paging File also called Swap)

DISPATCHER

D B B

ABAP Work Processes

Virtual Memory Segment

Virtual Memory Segment

Page 26: sap Memory

Concepts of Physical and Virtual Memory

• Memory refers to a part of the SAP system which is used a temporary

container of data used by processes. This includes Operating system

processes , Database processes as well as SAP application processes.• A system consists of physical memory , called RAM• Physical memory may not be sufficient in most cases , so some part of the file

system disk storage can be used to supplement the physical memory.• Using the concept of virtual memory , the Operating system can provide SAP

applications with a contiguous memory combining both RAM and Files on the

OS.Such files are known as paging files or swap.• This virtual memory available to SAP processes is called “Virtual Addressable

Space”• The virtual memory is further subdivided into a stack area and heap area. A

stack is where data related to recursive functions and loops in function calls

are stored for the process that needs the data. A heap is where the data

elements such as constants and variables are stored during report and

function execution

Page 27: sap Memory

VIRTUAL MEMORY

Concepts of SAP Memory Management

• In 32 Bit systems , each SAP work process can only address upto 232-1 bits of memory

space , which is around 4 GB• But most Operating systems will not permit a single process to address 4 GB of space.

There are limitations and differences between operating systems , but about 2 GB of

virtual memory is available to each SAP work process. This is the maximum

addressable limit• Please see the example below

PAGING FILES 100 GB

RAM 8 GB

• Theoretically , the configuration indicates

a total of 108 GB of virtual memory ,

which can support upto 54 SAP

processes during peak memory

utilization. However the amount of

memory to be allocated should be

decided on actual performance of the

system

Page 28: sap Memory

SAP Roll Area

Concepts of SAP Memory Management

• The operating system will reserve a part of the virtual memory , known as a segment

when the SAP work processes starts to execute. The size of this segment is set in the

SAP profile parameters.• The operating system will reserve local process memory as well as a shared process

memory• The “local process memory” segment can be addressed only by one of the processes ,

i.e. , any one of the DVEBMS processes.• There are data elements that needs to be shared between say , a dialog process and

an update process , and these elements are processed in the “shared memory”

segment.• The three types of SAP Memory are shown below :

Virtual Memory

SAP Extended Memory

Private Memory

Page 29: sap Memory

Types of Memory

SAP Roll Area• This is the memory segment made available immediately to a work process.• It has a physical memory part and a paging file part. The paging file specific to roll memory is

called a “roll” file.• Work processes switch contexts , meaning that one work process may process data related

to a particular user request , and then may switch to perform processing related to another

user request. Whenever such a switch happens , the data in the roll area is transferred to the

roll file , which is a common memory segment for all work processes• A roll buffer between the role area and the roll file prevents repeated copying from occurring

SAP Extended Memory• This is the main memory segment for an SAP application• Each work process is assigned a segment of the extended memory for further processing of

data , once the roll area memory is exhausted

Private / Heap Memory• Work processes such as background,update,enqueue and spool may exhaust all roll area

and extended memory. In such a case , the dialog process is unable to execute. To ensure

that some amount of memory is ALWAYS available to a dialog process , SAP provides a

Private memory for each dialog work process

Page 30: sap Memory

Virtual Address Space for a Process

Page 31: sap Memory

Important Profile Parameters

Ztta/roll_extension

Page 32: sap Memory
Page 33: sap Memory
Page 34: sap Memory
Page 35: sap Memory
Page 36: sap Memory

Concept of SAP Buffers

SAP buffers store frequently-used data, and make this data available to the local application server instance.

This helps to reduce the number of database accesses, the load on the database server (it does not need

to be accessed repeatedly to obtain the same information), and network traffic. As a result, system

performance is considerably improved

Each SAP instance (application server) has its own buffers. These buffers are also known as client caches

because they are implemented on the client, that is, the application server. SAP buffers occupy memory

areas that are local to the work process, and in individual shared memory segments that can be accessed

by all work processes.

The roll area discussed earlier is considered to be a type of SAP Buffer

The data that is buffered includes ABAP programs and screens, ABAP Dictionary data, & company-specific

data. Typically these remain unchanged during system operation

You can change, or tune, the sizes of buffers to optimize performance for a particular hardware

configuration. There are several ways to tune buffers. As there are many constraints to consider when

change the buffer size, several difficulties may arise.

You can use table buffering to fine-tune applications, that is, some or all of the contents of infrequently

changed tables can be held in local buffers

Page 37: sap Memory

Types of SAP Buffers

Buffer Purpose

Repository (Nametab) Buffer

The name table (nametab) contains the table and field definitions that are activated in the SAP System. An entry is made in the Repository buffer when a mass activator or a user (using SE11) requests to activate a table. The corresponding name table is then generated from the information that is managed in the Repository. There are 4 sub-buffers : Table definition , Field definition , Short Nametab and Initial records.

Table Buffer This buffer can store a single record with its field values , or multiple table records. There are two types , Partial Table and Generic Table buffer

Program Buffer Compiled version of ABAP programs are stored in this buffer

SAPgui Buffer There are two types : Presentation and CUA buffers. The generated screens from SAP transactions are stored in this buffer as well as SAPgui menus , pushbutton definitions etc.

Roll & Paging Buffers & Extended Memory

This buffer stores the input & output data from a user request for processing. The extended memory stores a large portion of the internal tables of a program.

SAP Calendar Buffer All defined factory and public holiday calendar objects are stored in this buffer

Import/Export Buffer Import / export buffers are used to store data that must be available to several work processes. They are used, for example, for the Available-To-Promise logic (ATP logic) in Logistics

SAP Cursor Cache The SAP cursor cache helps to improve system performance by reducing the number of parsing of SQL statements; it is database-dependent

There are 8 groups of SAP Buffers found in the shared memory segment :

Page 38: sap Memory

SAP Buffer Management – ST02

Hit Ratio is percentage of times an object was found in the SAP buffer , instead of having to fetch the object from the database. A high hit ratio signifies very good buffer quality and is indicative of good system performance

Size of the Buffer in KBs

Number of Objects in the buffer

The swaps value is the number of objects that had been kept in the buffer for sometime , but had to swapped with a new object that was fetched from the database as part of new user request. Ideally the number of swaps should not exceed the setting for directory size in a system. As part of buffer tuning , ensure that number of swaps are not more than twice the number of objects set for a buffer. If this is not the case , increase the size of the Buffer memory to reduce swaps and reduce the database access calls

The sum of “In Mem” will give you the Total Physical Memory allocated to this SAP instance by the Operating System. In this case the total RAM allocated is 3.5 GB

Page 39: sap Memory

Tuning of SAP Buffers

NOTE

Using ST02 , you can tune the buffer parameter values. Typically the program and table buffers are allocated higher values.

But buffer tuning is a fine art. The SAP system after installation will have some default values. You must observe the system behavior for a couple of months and then see the buffer quality and swaps pattern to take a decision to change the memory limit for a buffer

Page 40: sap Memory

Summary Graphic for SAP Memory and Buffers

Workprocess 1

Shared memory

Requestqueues

Frontend: SAP GUI

Dispatcher

Factory calendarScreensABAP programsTablesDictionary objects...

Applications buffer

Roll fileUser context

Roll area

Screenprocessor

ABAPprocessor

Databaseinterface

Taskhandler

Int

erna

l mem

ory

Roll inRoll outBuffer access

LAN / WAN

Workprocess n

...

Page 41: sap Memory

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