Cross Platform Performance
Cross Platform Performance
PUBLIC
Warning
This document has been generated from the SAP Help Portal and is an incomplete version of the official SAP product documentation. The
information included in custom documentation may not re ect the arrangement of topics in the SAP Help Portal, and may be missing important
aspects and/or correlations to other topics. For this reason, it is not for productive use.
This is custom documentation. For more information, please visit the SAP Help Portal 1
9/2/2024
Welcome to the Cross Platform Performance Expert Content Page!
Functional Areas
ABAP Platform
Web Interfaces
Database Performance
Hardware Performance
Network Performance
Memory Management
Load Balancing
Table Buffer(s)
RFC/ALE/IDocs
Analysis Tools
Guided Answers
Support Services
Enqueue Time
Performance Issue
ABAP Development
This is custom documentation. For more information, please visit the SAP Help Portal 2
9/2/2024
Schedule an Expert
Have you heard about Schedule An Expert service? Learn everything here.
View our SaE session guidelines in KBA 2480056 - SV-PERF: Guidelines for Schedule an Expert
Related Content
Troubleshooting
2436955 - Step by step instructions on how to use ST12 trace for analysis
Performance Tools
1817693 - How to trace the ITS Service "WEBGUI" directly using HttpWatch?
2879724 - How to analyze performance traces with the pro le data analyzer
Database Performance
2186006 - DB6: How to match an SAP work process with database application handle [VIDEO]
Network Performance
This is custom documentation. For more information, please visit the SAP Help Portal 3
9/2/2024
Other Relevant Performance Analysis Notes
2430134 - decision tree - How to Determine Which Component a Performance Issue Belongs to
Support Service Related to Performance Analysis (Product Support BTP - ABAP Platform)
This section contains an introduction to the following key components of Response Time and the general guide of troubleshooting.
For more details, visit Expert Content Page Workload Analysis and Response Time
To drill down to the key components, check the below Expert Content Pages:
Enqueue Time
KBA 2430181 - How To Analyze Work Process Performance Issues - Guided Answers
SAP Help Page Monitoring in the CCMS - Global Work Process Overview
Load Balancing
SAP Help Page Con guration of System Resources for aRFC, tRFC, qRFC
This is custom documentation. For more information, please visit the SAP Help Portal 4
9/2/2024
Enqueue Performance & Enqueue Time
Enqueue time is used to request and set SAP locks by making use of the enqueue work process. Typically, this component of the dialog response
time is rather small, usually less than 5 ms.
The ICMan process is responsible for Internet communication within a SAP Web Application Server. It describes how a TCP/IP request with an
standard protocol on top (e.g HTTP/S) is routed into an ABAP context or to a J2EE engine (in case of double stack system).
transactional RFCs
queued RFCs
queued RFCs
Purpose
The purpose of this page is to illustrate how the qRFC framework functions and how qRFCs are related to tRFCs. It's main purpose is not as a
troubleshooting resource but a knowledge resource.
Purpose
Overview
qRFC Concepts
Outbound qRFCs
Schedulers (QSENDDEST)
Inbound qRFCs
Schedulers (QIWKTAB)
Overview
This is custom documentation. For more information, please visit the SAP Help Portal 5
9/2/2024
Like tRFCs, queued RFCs (qRFCs) are a an abstracted type of RFC call. They are not physical RFC calls like synchronous and asynchronous RFC
calls. qRFCs are an extension on the tRFC framework, allowing one to serialize (i.e. set and enforce the order of execution) multiple tRFC LUWs. As
such, qRFC calls use the same or similar framework function modules and tables as tRFC calls, as well as additional framework FMs and tables to
track serialization and monitor resources.
Because qRFCs are an extension of tRFCs, we will be assuming the transactional RFCs Expert Content page has been read before reading this
page, and that the tRFC framework FMs and basis tables and their roles are well understood
Once you understand how the tRFC framework functions, most of the information you need to understand qRFCs is contained in SAP Help Page
Queued Remote Function Call (qRFC).
As such, this page will be dedicated to emphasizing key concepts and connecting various examples of qRFC scenarios to the transactions, screens,
traces, and records you would nd in an ABAP AS system.
qRFC Concepts
qRFCs are classi ed by the direction in which they're processed. There are two classi cations, Outbound and Inbound.
To call an Outbound qRFC, the syntax is the same, however, the outbound queue name has to be de ned rst by calling TRFC_SET_QUEUE_NAME
To Call an Inbound qRFC, the inbound queue name must be set by rst calling TRFC_SET_QIN_PROPERTIES
(Note that the inbound qRFC is rst placed in an outbound queue prior to being transferred to the destination; this is why the parameter
QOUT_NAME is available here as well. If no outbound queue name is speci ed, QIN_NAME is also used as the outbound queue name.)
qRFC calls, in addition to sharing the same properties as tRFC calls, are assigned to queues using the TRFC_SET_QUEUE_NAME or
TRFC_SET_QIN_PROPERTIES FMs.
qRFC LUWs share the same properties as tRFC LUWs, with the following exceptions: They...
Are guaranteed to be executed in a predictable order; i.e. Are serialized based on client, queue names, destination, and time stamp.
Outbound qRFCs
This is custom documentation. For more information, please visit the SAP Help Portal 6
9/2/2024
Serialization of Outbound qRFC LUWs:
In addition to the FMs and tables inherited from the tRFC framework:
The following Function Modules are a part of the outbound qRFC framework:
QDEST_RUN (SAPLQOWK) - Called by the qRFC client step to activate the Outbound Scheduler (aka Send Scheduler) if not already active.
QDEST_RUN_DESTINATION (SAPLQOWK) - Called by the Outbound Scheduler to activate the scheduler for a speci c destination (the
Destination Scheduler). The destination scheduler is responsible for determining the execution order of LUW registered to that destination.
TRFC_QOUT_SEND (SAPLORFC) - Called by the Destination Scheduler. Replaces ARFC_RUN_NOWAIT. it is called to start LUW execution for
a queue with no dependencies (i.e. the LUW is next in the queue to be executed).
QSENDDEST - Contains the status of the Outbound Scheduler as well as the Destination Scheduler for each registered outbound
destination.
TRFCQOUT - Analogous to ARFCSSTATE, it records the queue associated with each FM call as well as the timestamp the LUW was
registered.
Schedulers (QSENDDEST)
There are two main types of outbound schedulers. Each system has 1 system-wide Outbound Scheduler (%QSEND_SCHEDULER, sometimes
referred to as the Send Scheduler), and as many Destination Schedulers as there are registered destinations in SMQS.
This is custom documentation. For more information, please visit the SAP Help Portal 7
9/2/2024
The "Scheduler Information" section in SMQS shows the status of the system-wide Outbound Scheduler. While the table below shows the status of
each Destination Scheduler.
The Outbound Scheduler (%QSEND_SCHEDULER) is "activated" (i.e. an ABAP session for that scheduler is created) when QDEST_SEND is called.
A Destination Scheduler (e.g. NONE or S4C from above) is "activated" when QDEST_RUN_DESTINATION is called.
The "Host ID" eld tells you on which host that particular scheduler is running (or, if the state is INACTIVE, ran last).
Each scheduler should correspond to at most 1 ABAP session. If the state of a scheduler is INACTIVE, then there should be 0 ABAP sessions acting
as that scheduler.
When the schedulers are not INACTIVE they should be able to be seen in SM04. For example (in no particular order):
The session with QDEST_RUN_DESTINATION is the destination scheduler under which the LUW is being executed
The session with Z_CPI_WORK_WAIT is the session which is actually executing the function modules registered in the LUW
(ZCPI_WORK_WAIT is the rst FM in that LUW).
If the destination is another system, you will not see this session next to the schedulers in SM04 of the sending system.
The session with TRFC_QOUT_SEND is the framework task which calls RFC_PING, ARFC_DEST_SHIP, and ARFC_DEST_CONFIRM in order to
actually execute the LUW
This is custom documentation. For more information, please visit the SAP Help Portal 8
9/2/2024
And (unfortunately) the Outbound/Send Scheduler does not show QSEND_DEST in the "Application Info.", but "WI=CLI(...)" above is indeed
the session of the Outbound Scheduler.
The call order is illustrated per the red arrows, which will be demonstrated in the next section.
STAD
When called via tRFC, there were three recorded generated, when called via qRFC, ve records are generated
1. qRFC Client
5. qRFC Server
As with the STAD records from the tRFC tasks, the total response time of qRFC calls is misleading. While all four tasks have a total response time
of ~40 seconds, most of this is task #2, #3, & #4 rolled out waiting for task #5 to nish.
When performance issues occur inside FMs called via the qRFC framework, a proportional increase in roll wait time is expected. Suppose our qRFC
server task has a response time of 1 second and makes about 1 second worth of database requests. Consider the following values:
Task DB time Roll Wait time Performance problem occurs new DB time new Roll Wait time
QO 0 1 → 0 2
DS 0 1 0 2
SS 0 1 0 2
Total 1 3 2 6
This leads to misunderstandings when examining the RFC response time in the Workload Monitor (ST03) of systems which make many tRFC/qRFC
calls. This is because the aggregation of this workload data somewhat conceals the actual problem of worsening DB time. Comments often heard
This is custom documentation. For more information, please visit the SAP Help Portal 9
9/2/2024
are similar to "most of the increase in response time seems to be roll wait time", which is simply a side effect of the tRFC/qRFC framework.
(Note that these times & distributions of time vary depending on the amount of parallel qRFC activity in the system.)
Additionally, note the RFC Server & Client sub records when considering the timeline below.
Timeline
This is custom documentation. For more information, please visit the SAP Help Portal 10
9/2/2024
While the above gure is quite busy, the main points are as follows:
ARFCSSTATE, ARFCSDATA, and ARFCRSTATE are used for qRFC calls in the same way as tRFC calls.
The LUW is executed using the same framework FMs as in a tRFC LUW.
This is custom documentation. For more information, please visit the SAP Help Portal 11
9/2/2024
The SS and DS periodically check the TRFCQOUT table for newly registered LUWs since the SS/DS was started (this will be
demonstrated later). This ensures only one active instance of the SS and one active instance per destination of the DS is required at
any time.
Program
STAD
1. qRFC Client
This is custom documentation. For more information, please visit the SAP Help Portal 12
9/2/2024
5. qRFC Server1
6. qRFC Server2
Notice how the second server task doesn't start until the rst one nishes. Also note the RFC sub records, it's the already running QO task that
checks and executes the LUW that was registered second (as opposed to the DS starting a new QO task).
Timeline
Note that the calls to RFC_PING, ARFC_DEST_SHIP, and ARFC_DEST_CONFIRM have been consolidated into a single graphic in this timeline.
This is custom documentation. For more information, please visit the SAP Help Portal 13
9/2/2024
Inbound qRFCs
This is custom documentation. For more information, please visit the SAP Help Portal 14
9/2/2024
Inbound qRFCs are a further extension built on outbound qRFCs.
When an inbound qRFC LUW is created, it is rst registered as an outbound LUW in the sending system via the ARFCSSTATE, ARFCSDATA, and
TRFCQOUT tables.
Then, using the outbound qRFC framework, the LUW is transferred to the destination system via a call to ARFC_DEST_SHIP, where the LUW is
saved to the TRFCQSTATE, TRFCQDATA, and TRFCQIN tables (which determine the queues and serialization).
The inbound scheduler is then activated (if not already active) and the LUW is executed via TRFC_QIN_DEST_SHIP.
In addition to tRFC and outbound qRFC tables and function modules, the inbound qRFC framework uses the following function modules:
QIWK_RUN (SAPLQIWK) - Analogous to QDEST_RUN; called by ARFC_DEST_SHIP in the receiving/inbound system to activate the system-
wide inbound scheduler.
TRFC_QIN_ACTIVATE (SAPLIRFC) - Analogous to TRFC_QOUT_SEND. Called by the system-wide inbound scheduler to activate a queue
scheduler for a speci c queue (or a collection of queues as determined by the inclusion of a wildcard when registering queues in SMQR)
TRFC_QIN_DEST_SHIP (SAPLERFC) - Analogous to ARFC_DEST_SHIP. It's inside this ABAP session that the inbound qRFC LUW is actually
executed.
TRFCQSTATE - Analogous to ARFCSSTATE. Stores the functions module names of each LUW.
TRFCQDATA - Analogous to ARFCSDATA. Store the data required to execute each function module (e.g. import parameters).
TRFCQIN - Analogous to TRFCQOUT. Stores the queuing information for each LUW
QIWKTAB - Analogous to QSENDDEST. However, there is only 1 inbound scheduler for the whole system
Schedulers (QIWKTAB)
There is only one system-wide inbound scheduler in a system.
There is no need for destination schedulers for inbound LUWs as once an LUW is registered in the TRFCQ* tables it is already "in the destination
system" in which is will be executed. All that's left is to execute the inbound LUWs in the correct order.
(It is possible to de ne a "destination with logon data" when registering queue names in SMQR in order to restrict execution to speci c application
servers or under a different user and/or client.)
This is custom documentation. For more information, please visit the SAP Help Portal 15
9/2/2024
The state of the system-wide scheduler, and the registered queue names, is stored in QIWKTAB.
STAD (STATS)
This is custom documentation. For more information, please visit the SAP Help Portal 16
9/2/2024
The outbound qRFC framework is utilized by the sending system, and the inbound qRFC framework is utilized by the receiving system.
transactional RFCs
Purpose
The purpose of this page is to illustrate how the tRFC framework actually functions. It's main purpose is not as a troubleshooting resource but as a
knowledge resource; that being said, the more one understands of a process, the better one can troubleshoot it when things go wrong.
Purpose
Overview
Program
STAT/STAD Records
Timeline
Program
STAT/STAD Records
Timeline
Program
STAT/STAD Records
Timeline
Program
STAT/STAD Records
This is custom documentation. For more information, please visit the SAP Help Portal 17
9/2/2024
ST05 Trace Entries
Timeline
System Availability
Additional Notes
Supplementary Files
Overview
Transactional RFCs (tRFCs) are a type of abstracted/logical RFC call. They are not a physical RFC call like synchronous or asynchronous RFCs;
instead, they consist of several tRFC framework function module calls and tables.This is to ensure that multiple function modules called via the
tRFC framework are executed as a group successfully or not at all, in the same order they were called (i.e. transactionally).
Note that each section on this page is incremental. I will be verbose in the rst examples, and build incrementally on top of previous examples.
Before reading later sections, It's best to read and understand earlier sections as basic information will be omitted from the later sections for
brevity.
Not executed when they are rst called inside of an ABAP program.
Guaranteed to be executed in the same order they were called within the LUW
tRFC LUWs...
Are composed of one or more FM calls using the IN BACKGROUND TASK syntax.
Are closed/registered (and possibly executed) when a COMMIT WORK statement is encountered.
Are executed using calls, some synchronous and some asynchronous, to tRFC framework function modules.
Are not guaranteed to be executed in the same order they were closed/registered. (To guarantee the execution order of separate LUWs,
qRFCs must be used.)
This is custom documentation. For more information, please visit the SAP Help Portal 18
9/2/2024
ARFC_RUN_NOWAIT (SAPLARFC) - Used by the Client Step to trigger the tRFC LUW. Provides the LUW ID to the framework task.
RFC_PING (SAPLSRFC) - Called by the Framework Step to check the availability of the chosen destination/receiver system.
ARFC_DEST_SHIP (SAPLERFC) - Called by the Framework Step to tell the Server Step the LUW ID, what function modules to execute, and
in what order. Also provides any required parameters to execute each FM.
ARFC_DEST_CONFIRM (SAPLARFC) - Called by the Framework Step to complete the tRFC LUW on the Server Side/receiving system. Clears
entries from the ARFCRSTATE table in the receiving system.
ARFCSSTATE (aRFC Send State) - Tracks the status of outgoing tRFC LUWs and the FM calls in each LUW. Tracks the order in which to call
each FM via the ARFCLUWCNT eld.
ARFCSDATA (aRFC Send Data) - Contains the information required (e.g. input parameters) to execute the FMs called via tRFC so they may
be called anytime at a later date
ARFCRSTATE (aRFC Receive State) - Tracks the status of incoming tRFC LUWs
tRFC LUWs Get their own ID. It's composed of four elds ARFCIPID, ARFCPID, ARFCTIME, and ARFCTIDCNT . This ID is visible in
the ARFCSSTATE table (among others) and identi es which LUWs each FM call belongs to.
This is custom documentation. For more information, please visit the SAP Help Portal 19
9/2/2024
For example, the following two entries belong to the same tRFC LUW as they share the same values for ARFCIPID, ARFCPID, ARFCTIME,
and ARFCTIDCNT (Note the ARFCLUWCNT eld, which tracks the order in which each FM is called)
Exist in the sender system (i.e. the system that executed the code containing the CALL FUNCTION ... IN BACKGROUND
TASK and COMMIT WORK statements )
Are not actually executed on this system (unless the receiving system/destination is the same system).
Are recorded in the ARFCRSTATE table (only one record per LUW; note this is different than ARFCSSTATE!)
Transaction SM58
The tRFC LUW ID is called Transaction ID in this screen and has no relation to the dialog Transaction ID you would nd in STAD or ST05 traces.
For example, here is the STAD record that executed one of the above LUWs (right-most column is the dialog Transaction ID):
(Note the value of the ARFCSTATE eld does not precisely match the Status Text column in SM58.In this case SENDED = Transaction
executing)
To monitor tRFCs in the receiving/server system, you can use SE16 > ARFCRSTATE:
This is custom documentation. For more information, please visit the SAP Help Portal 20
9/2/2024
Note how there is only one entry in ARFCRSTATE for each tRFC LUW, compared to ARFCSSTATE, which contains one entry for each FM called
in a LUW.
(It is often unnecessary to examine the ARFCRSTATE table when investigating tRFC problems)
Program
2-1 - The step generated by the session that actually executed the called FM (tRFC Server step)
2-2 - The step generated by the main program (tRFC Client step)
The Framework task is only captured if you have "tRFC framework" checked in the "Collect traces" dialog.
This is custom documentation. For more information, please visit the SAP Help Portal 21
9/2/2024
STAT/STAD Records
The following STAD records were generated from this call:
The generated STAD records are as follows (only the relevant sections have been included):
1. 2. 3.
tRFC Client Step tRFC Framework Step tRFC Server Step
The client call to Z_CPI_WORK_WAIT is made on a dummy connection and is not a real RFC call.
Connection Id - 00000000000000000000000000000000
Destination - a_rfc
The server call record for Z_CPI_WORK_WAIT is also recorded under a dummy connection, but with a slightly different RFC type
Connection Id - 00000000000000000000000000000000
Destination - a_rfc
(on older kernel versions, RFC type can be listed as tRFC (synchronous) )
ARFC_RUN_NOWAIT and ARFC_DEST_SHIP will always have a runtime larger than that of the called FM(s) (in this
case, Z_CPI_WORK_WAIT ). Only when the runtime of ARFC_RUN_NOWAIT and A_RFC_DESTSHIP is signi cantly higher than the target
FM(s) should you be suspicious of the tRFC framework, but the much more likely explanation is a network, gateway, or RFC resource issue,
and not the actual framework itself.
Note the total response time of the RFC tasks is >10 seconds, but this is not the true response time, as the framework task spends 4.682
seconds rolled out, waiting for the server task.
This is custom documentation. For more information, please visit the SAP Help Portal 22
9/2/2024
Timeline
Note:
WPs do not communicate to each other directly during RFC calls, but through the gateway. Therefore, anytime there is an arrow
representing RFC communication, remember that the gateway is involved, receiving, handling, and sending requests between the
sessions/WPs.
This is custom documentation. For more information, please visit the SAP Help Portal 23
9/2/2024
Program
STAT/STAD Records
This is custom documentation. For more information, please visit the SAP Help Portal 24
9/2/2024
The generated STAD records are as follows (most convenient to open in a new tab):
1. 2. 3.
Client Step Framework Step Server Step
No additional tasks are needed when we increase the number of calls in one LUW; i.e. the framework task ships
both Z_CPI_WORK_WAIT calls to a single tRFC Server Task which executes both called FMs.
ARFC_DEST_SHIP has a runtime close to the total runtime of the called FMs as we would expect.
(One of the calls to Z_CPI_WORK_WAIT has a recorded runtime of 0 ms which is not correct; you can see the actual runtime in the ST05
performance traces)
Timeline
Note that ARFCSSTATE is not updated between each execution of Z_CPI_WORK_WAIT, thus the server task attempts to execute all FMs in a tRFC,
and only once all FMs execute successfully are the entries in ARFCSSTATE updated by the framework task.
If one FM in a tRFC LUW fails, the entire LUW is put into an error state.
This is custom documentation. For more information, please visit the SAP Help Portal 25
9/2/2024
Program
This is custom documentation. For more information, please visit the SAP Help Portal 26
9/2/2024
STAT/STAD Records
The generated STAD records are as follows (most convenient to open in a new tab):
1. 2. 3. 4. 5.
Client Step Framework Step Server Step Framework Step Server Step
LUW 1 LUW 2
Link to File Link to File Link to File Link to File Link to File
Another framework step is needed here as two LUWs were created (we called Z_CPI_WORK_WAIT twice followed by COMMIT WORK each
time)
The Transaction ID is equal for all steps, despite there being multiple LUWs. (Thus, dialog Transactions and LUWs ID are not directly related.)
Please refer to sheet 2 Calls - 2 LUWs - Dest NONE in the annotated Excel le:
Timeline
This is custom documentation. For more information, please visit the SAP Help Portal 27
9/2/2024
Program
This is custom documentation. For more information, please visit the SAP Help Portal 28
9/2/2024
The test program is being executed on Y59, and the target system is Y57; therefore:
STAT/STAD Records
Sending/Client System:
Receiving/Server System:
The generated STAD records are as follows (most convenient to open in a new tab):
1. 2. 3.
Client Step Framework Step Server Step
The Connection ID is the same in the client calls of the Framework Task and the server calls of the Server Task
This is custom documentation. For more information, please visit the SAP Help Portal 29
9/2/2024
Timeline
We can see the framework task still resides on the sending system, and only the server tasks is carried out on the receiving system.
Note that two gateways are now involved in communication, the GW in the app server of the sending system and the GW of the app server in the
receiving system.
This is custom documentation. For more information, please visit the SAP Help Portal 30
9/2/2024
System Availability
Another key concept of the tRFC is that the destination does not need to be available at the time of calling the FM/registering the LUW.
If the framework task could not complete the tRFC LUW, the information needed to execute the LUW is still contained in
the ARFCSSTATE & ARFCSDATA tables and can be executed at a later time.
Check the System Availability section of SAP Help Page Transactional RFC (tRFC) for more information on this behavior:
This is custom documentation. For more information, please visit the SAP Help Portal 31
9/2/2024
The following SAP Note contains additional information on how to in uence this behavior:
SAP Note 1902003 - Many ARFC* jobs in SM37 and many "Error when opening an RFC connection" in SM58 at the same time
Additional Notes
SAP Note 1483845 - Using the report RSARFCEX (to execute LUWs not yet executed; e.g. in error state)
Supplementary Files
Communication between applications of different systems in the SAP environment includes connections between SAP systems as well as between
SAP systems and non-SAP systems. Remote Function Call (RFC) is the standard SAP interface for communication between SAP systems. RFC calls
a function to be executed in a remote system.
For more detailed Fundamentals and Concepts about Remote Function Call (RFC), read:
RFC Types
Execution ow
The below illustration shows an ECC system communicating with other systems (another ECC, BW, SCM, CRM) through Remote Function Calls.
This is custom documentation. For more information, please visit the SAP Help Portal 32
9/2/2024
Need quick help? Check KBA 2525793 - How to analyze RFC performance issues - Guided Answers - for RFC performance issues!
RFCs can also occur with non-SAP/Netweaver systems. Read SAP Help Page RFC Communication Scenarios for the details.
RFC Cycle
The below illustration shows the course and measured times of a synchronous RFC from performance analysis perspective.
The gure illustrates the course and measured times of a synchronous RFC, which are displayed in the single-record statistics (Transaction STAD)
and in the workload monitor (Transaction ST03).RFC Cycle shown as follow:
In this procedure, establishing the connection should take only a few milliseconds. If you nd this status (the CMINIT phase) often in the work
process overview, there may be an overload in the recipient system.
This is custom documentation. For more information, please visit the SAP Help Portal 33
9/2/2024
2317074 - "timeout during allocate" when starting external programs
During the connection,RFC users are running in the Dialog work process in the receiver system. By specifying RFC user ID, you can monitor the RFC
process in the receiver system.
2180934 - Analysis of Work process in "On Hold" RFC, or Stopped CPIC status
After the data exchanging, nally, the connection is closed. The recipient work process is free again, and the sender work process continues with
its work.
One source of high RFC time can be a potential Network issue. In this case, the systems involved need to be identi ed in order to perform a NIPING
analysis and test latency. Check the following KBA and SAP Note:
After identifying the systems involved, you can perform a NIPING analysis to see if Network is a source of the high RFC time.
1946287 - Slow RFC performance shown in ST03N for TASK_VITAL_PERIOD by SAP_WSRT user
532918 - “RFC trace generation scenarios”, section 2 “Communication from ABAP to an external program”
Connection issues:
1954118 - Connection Failure with RFC Destination of Started External RFC Server and Memory Leaks with RFC Accept
Load balancing:
2071875 - Incorrect Average RFC Interface Time ("CPIC/RFC") in ST03N Workload Overview
The following SAP Notes provide information about how response time is measured and
contains information about the term in general.
Guideline values when analyzing Average response time/Dialog step are outlined
below.
Be aware these are only guideline gures, and are NOT a de nitive indication of a
performance issue.
The following section contains an introduction to the key components of response time and a general troubleshooting guide.
The dispatcher of the SAP instance receives the incoming request and stores it in the request queue of the appropriate work process type. While
the dispatcher is looking for a free work process, wait time is accumulated. Wait time ends, when the request is being forwarded to a free work
process of the required type. Wait time is the rst component of the overall dialog response time.
Check for long running processes consuming a high number of Work Processes
Check for Work processes in PRIV Mode, this can indicate insufficient extended memory
Is high wait time the Root cause of the poor performance or a symptom of another issue
This is custom documentation. For more information, please visit the SAP Help Portal 35
9/2/2024
Analysis should focus on Front End: Front-End Ping (Network Check), Front-End Hardware, High Volume of Data Transferred, Many Roundtrips. If
you discover that the GUI time is high despite a relatively small volume of data, this can be for two reasons: there may be a hardware bottleneck
on the presentation server or a network bottleneck. Often, the simplest way to analyze this further is to lter out the users who typically
experience these problems from the single-record statistics.
High GUI Time, can sometimes be the result of a non-optimally con gured SAP Easy Access Menu. Check for high GUI Times associated with the
transaction SESSION_MANAGER, if high times are identi ed it is a good idea to run the report ʻEASY_ACCESS_NUMBER_OF_NODES’ via SE38.
This report identi es the number of menu nodes con gured per user. A high number of menu nodes increases GUI time and reduces performance.
Menu should not contain more than 1000 entries (For comparison: The complete SAP menu contains 70,000 entries). The Tree is loaded to the
user context at a glance. A high number of menu entries leads to high memory consumption on the application server and to long response times
for the menu.
In general roll wait time measures external communications and this could be GUI communication or RFC communication.
A way to check if the problem is in GUI communication or if is RFC communication is checking the GUI time and frontend network time. If you nd
high times then the problem is most likely to be related with GUI communication.
Review SAP note 364625 that explains you GUI time and fronted time, and also provides details of how to review these times on a system.
Please see the detail information about GUI time analysis in the following section ʻ High GUI Time ʻ.
If data is read from the database server or changed in the database, these actions are indicated as database time (Av. DB Time). Database time is
measured from the moment the database request is sent to the database server and runs until the moment the data is returned to the
application server.
Enqueue time is used to request and set SAP locks by making use of the enqueue work process. Typically, this component of the dialog response
time is rather small, usually less than 5 ms.
This is custom documentation. For more information, please visit the SAP Help Portal 36
9/2/2024
Load and Generate time is the amount of the time taken by work process to copy and generate or to load and generate abap code and screens for
the User request. The load and generator time is high the problem is the buffer sizes is too small (TP program or buffers and CUA buffers).
HitRatio% and % Freespace should always be considered when analysing Buffer Size
Always ensure sufficient main memory is available before making buffer increases and that all changes are tested before promoting to a
production environment.
This page offers help to customers and support engineers analyze Database performance, including all the database platform, Oracle, MSSQL,
HANA, IBM, MAXDB etc.
DBA Cockpit
Related Content
ORACLE
SAP HANA
This is custom documentation. For more information, please visit the SAP Help Portal 37
9/2/2024
Related SAP Notes and KBAs
MAXDB
SQL Server
DBA Cockpit
The entry screen of the DBA Cockpit is divided into following areas:
The DBA Cockpit is a platform-independent tool that you can use to
monitor and administer your database. It provides a graphical user
interface (GUI) for all actions and covers all aspects of handling a
database system landscape. You can run the DBA Cockpit locally on an
SAP NetWeaver-based system by calling the DBACOCKPIT transaction.
Related Content
ORACLE
Oracle
Tuning Oracle
SAP HANA
This is custom documentation. For more information, please visit the SAP Help Portal 38
9/2/2024
Related SAP Notes and KBAs
2443066 - Standard transactions or standard reports have poor performance after Database migration to SAP HANA Databas
SAP HANA Troubleshooting and Performance Analysis Guide → Statement Performance Analysis
This is custom documentation. For more information, please visit the SAP Help Portal 39
9/2/2024
1851832 - DB6: DB2 10.5 Standard Parameter Settings
DB2 Performance
MAXDB
SAP MaxDB
2087323 - SYB: Important solved problems for SAP Applications running on SAP ASE
SQL Server
SQL Performance
This is custom documentation. For more information, please visit the SAP Help Portal 40
9/2/2024
Main Tree
General performance
Hardware
Memory
RFC
Network
BW performance
Hardware Performance
SAP OS Monitor
Operating System Monitor ST06/ST06n/OS07n provide the following functions to analyze the bottleneck for CPU, Memory, le
system, LAN, etc.
This is custom documentation. For more information, please visit the SAP Help Portal 41
9/2/2024
CPU
The CPU utilization for a non-virtualized environment will always sum up to 100%. User utilization should not exceed a value of 50 to 60%. System
utilization should be below 20% and Idle time should be above 20%. An idle time below 20% will lead to CPU bottleneck situations. IO Wait time is
considered a subset of idle time. It can’t be concluded that a high IO wait time indicates a disk-level issue. IO Wait time includes block IO, raw IO, or
Virtual Memory operations such as paging/swapping. It does not include time spent on tape IO or terminal IO.
Related Content
Memory
• Physical memory: This number gives the size of the RAM of the server.
• Swap size: Con gured swap size: This is the sum of physical RAM and swap/page space. This sum is also known as virtual memory in SAP
systems.
• Swap size: Maximum swap size This gure gives the amount of con gured swap/page space.
• Page: The swap/paging activity on OS level per hour should not be higher than one-fourth the size of the physical RAM for Page in activity on
Windows OS, or one- fth the size of the physical RAM for Swap Out activity UNIX OS. Otherwise, you will observe a decrease in SAP system
performance caused by heavy CPU and I/O utilization.
Related Content
2442188 - decision tree - Analyzing and Con guring Memory to Increase Performance
Related Content
This is custom documentation. For more information, please visit the SAP Help Portal 42
9/2/2024
Hardware monitoring
There are a number of tools that are available to collect data on your hardware utilization.
The transaction SDF/MON is a powerful in-built feature in all SAP systems that can help collect hardware performance metrics from a number of
areas;
CPU Utilization
Paging memory
You can set the performance monitor for a daily schedule or for a speci c time when the a performance issue is known to occur. This is defaulted to
take a snapshot of the system performance every 10 seconds. One very useful feature of SDF/MON is viewing the snapshot data in real time
allowing for analysis as the issue occurs.
More information about SDF/MON can be found in KBA 2383809 - How to use the SDF/MON tool to analyse performance issues.
Another useful feature is importing the SDF/MON data into a tool called RSORASTT which can graph the outputs for further analysis.
The tool can be found in the attachments of SAP Note 1299493 - Loadable SAP Support Monitors
The graph below displays SDF/MON data collected for a de ned time period where cpu idle%(1) is graphed for a selected server(2). This is very
helpful as servers can be selected as required. In this case, the cpu idle% does not go below 80% and therefore is acceptable (3).
The Nmon tool is a very useful too for giving detailed information on OS/hardware performance for AIX and Linux systems. The Nmon tool collects
the hardware performance for output to a .nmon le. This le can then be analyzed by the Nmon analyzer which displays the following;
CPU utilization
Virtualization
If analysis is taking place on virtualized environment, it is critical that enhanced monitoring functions are activated as per the SAP Notes
highlighted below:
This is custom documentation. For more information, please visit the SAP Help Portal 43
9/2/2024
General
VMware
2447884 - VMware vSphere with VMware Tools 9.10.0 up to 10.1.5: Performance Degradation on Windows
Windows
Linux
AIX
Related Content
SAP Notes:
Guided Answer Enter Transaction Code ST06n to display the Operation System Monitor
Load Balancing
ABAP Logon Group Based Load Balancing
This is custom documentation. For more information, please visit the SAP Help Portal 44
9/2/2024
Related SAP Notes and KBAs
SAP Help Page Con guration of System Resources for aRFC, tRFC, qRFC
2535441 - How to restrict the BW extraction jobs to a speci c host or server group
This is custom documentation. For more information, please visit the SAP Help Portal 45
9/2/2024
Here you can see the current logon instance for the particular logon group and also, if monitored over a period of time, you can check for
imbalance in the load distribution. In conjunction with this you should also check the CPU load and the paging rates for the various servers in ST06
and the response times for the application servers using the Workload monitors in ST03. If you can only establish high response times on one or a
few instances and if the number of calls are distributed unevenly then you can assume a less than optimal load distribution. Another tool that is
useful when analyzing workload distribution is /SDF/MON. This is particularly helpful if the peak load happens on a different timezone. You should
schedule /SDF/MON during the relevant hours as per instructions in KBA 2383809 - How to use the SAP Performance Monitor SDF/MON tool to
analyse performance issues.
If only one of the points below are not met, SAP Support will likely still be able to provide some root cause analysis and possible solutions. As fewer
of these criteria are met, root cause analysis becomes less likely, and in many cases impossible.
The most common "unsolvable" scenarios come from historical performance problems (performance problems which occurred several hours or
more ago, but the system has since recovered or been restarted) in systems with no workload data (ST03) or missing Snapshot Monitoring
(SMON). In these cases, SAP Support can only wait for the problem to occur again once the relevant collectors are turned on.
The following is a checklist for ensuring a system is supportable in the event of a performance problem. By following the list below, you help SAP
Support help you in getting quicker answers and solutions to performance problems.
How do I x them?
How do I x them?
How do I x them?
How do I x them?
How do I x them?
6. Active Session History and Automatic Workload Repository (Oracle 10g+ and higher)
How do I x them?
How do I x them?
8. Retention periods
A. STAT les
B. ST03 aggregates
D. Oracle AWR
Summary
These software components are plug-ins which contain a number of service tools including transactions ST12 and /SDF/SMON. These tools
are mandatory in many performance problem scenarios. They are also required if any CQC services are to be delivered for a system.
Open transaction ST13 and execute the RTCCTOOL tool; the tool will check SAP servers for newer versions of these components and
recommend updating them if needed.
(If your system does not contain ST13 then that system is missing ST-A/PI altogether.)
How do I x them?
The following SAP Notes explain how to install and update ST-PI and ST-A/PI software components:
539977 - Release strategy for add-on ST-PI
69455 - Servicetools for Applications ST-A/PI (ST14, RTCCTOOL, ST12)
Installing and updating ST-PI and ST-A/PI can be done while the system is running and does not require downtime.
If you are having trouble installing these software components, please contact SAP support in component BC-UPG-OCS.
This is custom documentation. For more information, please visit the SAP Help Portal 47
9/2/2024
STAT les form the basis of performance analysis. They contain statistic records for individual dialog steps and are used by the monitoring
framework to create workload data (ST03).
STAT les are located in the DIR_DATA directory and are named statnnnn ("stat" with several digits following).
Check for these les using transaction AL11 and opening the DIR_DATA directory. Make sure their Lastchange timestamps are up to date. (1
le every hour for the past 48 hours.)
How do I x them?
If they are missing in a system, or if the timestamps are not recent, check the parameter stat/level using transaction RZ11, it should be set to
1 (one).
If these les are still missing, please contact SAP support in component BC-CST-ST.
Transaction ST03 is used to browse workload data which is used to identify problem time periods and provides a rst look at which response
time types might be responsible for a performance problem.
If there is no workload data, then opening ST03 will display the following message:
If there is workload data, make sure it is up to date by checking the date of the most recent daily aggregate:
This is custom documentation. For more information, please visit the SAP Help Portal 48
9/2/2024
How do I x them?
Missing and outdated workload data is corrected in almost all cases by one of the points in SAP Note 2369736 - Troubleshooting missing data
in ST03N/ST03.
The most common cause of this missing data is a time zone inconsistency between client 000 and the operating system.
Additionally, in order for workload data to exist, the system must be generating STAT les as mentioned above.
If workload data is still missing after referring to the above SAP Note, please contact SAP support in component BC-CCM-MON-TUN.
Transaction is used to browse operating system data such as CPU and memory consumption. If the performance problem is rooted in a
resource bottleneck, then the historical data in ST06 is valuable.
Snapshot
History → CPU
History → Memory
This is custom documentation. For more information, please visit the SAP Help Portal 49
9/2/2024
How do I x them?
To x missing data, refer to SAP Note 1915341 - No History Data in ST06 / OS07N
In a nutshell:
A. Ensure time zones in the system are con gured correctly per SAP Note 1937227 - Missing history data in ST06
B. Check SAP Notes 2338673 and 1697515 for inconsistencies in transaction RZ20.
If History is missing:
D. Check the Central Performance History (CPH) con guration via transaction RZ23N → Assign Procedure and make sure the CPU* and
Memory* MTE Classes are assigned to the desired system. If they are not, assign the CPU* and Memory* classes per SAP Note 1147334
- CPH setup for OS data.
This is custom documentation. For more information, please visit the SAP Help Portal 50
9/2/2024
Once the MTE classes are added, wait 24 hours to see if the previous day's data appear in History .
If all of the above is done, and data is still missing, please contact SAP Support in component BC-CCM-MON-OS.
Snapshot monitoring is used to periodically collect KPIs. These KPIs include WP tables, CPU and Memory consumption. The WP tables are
extremely helpful in understanding the activity of the system over time.
Turning on SMON is the most common request made by SAP Support in performance-related incidents, but it is only helpful if the collectors
are running during the performance problem.
To see if SMON Daily Monitoring is turned on, open transaction /n/sdf/smon ("/n" is needed or else "/sdf/mon" will be interpreted as a
function code) and click the Schedule New Monitoring (F6) button. If Daily Monitoring is turned on, you will see the Change Daily Monitoring
(Ctrl+F2) and Stop Daily Monitoring (Ctrl+F3) buttons:
You should also see up to date snapshot collections by clicking Show Analyses (Ctrl+F1).
(In this screenshot, the cog icon in the Status column also indicates there are collectors running)
How do I x them?
To enable SMON Daily Monitoring, follow the steps in SAP Note 2651881 - How to con gure SMON for performance monitoring and analysis.
It is recommended to keep SMON Daily Monitoring turned on permanently; the resource requirements of the SMON collectors are negligible
and can safely be run in production systems.
SMON is only available in NetWeaver Releases 7.4 or higher. For older releases of NetWeaver, please use /SDF/MON:
2383809 - How to con gure /SDF/MON for performance monitoring and analysis
If you encounter problems turning on SMON or with SMON itself, please contact SAP support in component SV-SMG-SDD.
6. Active Session History and Automatic Workload Repository (Oracle 10g+ and higher)
Why are these important?
If SAP Support nds the performance problem to be manifesting as increased DB response time, then access to ASH and AWR data is needed
to determine the type of wait events causing the increased DB time.
(SAP Note 853576 - Oracle 10g: Performance analysis w/ ASH and Oracle Advisors further explains the bene ts of ASH and AWR.)
To see the time period covered by ASH and AWR data, execute the following queries respectively:
This is custom documentation. For more information, please visit the SAP Help Portal 51
9/2/2024
SELECT
TO_CHAR(MIN(SAMPLE_TIME), 'YYYYMMDD;HH24MISSFF3') MIN_SAMPLE_TIME,
TO_CHAR(MAX(SAMPLE_TIME), 'YYYYMMDD;HH24MISSFF3') MAX_SAMPLE_TIME
FROM
gv$active_session_history;
SELECT
TO_CHAR(MIN(SAMPLE_TIME), 'YYYYMMDD;HH24MISSFF3') MIN_SAMPLE_TIME,
TO_CHAR(MAX(SAMPLE_TIME), 'YYYYMMDD;HH24MISSFF3') MAX_SAMPLE_TIME
FROM
DBA_HIST_ACTIVE_SESS_HISTORY;
How do I x them?
No con guration typically is needed to collect ASH and AWR data, they should be automatically collected by default.
However, in order for SAP Support to query the data in these tables from DBACOCKPIT, the following authorization object and elds are
required:
(If the system is not on SAP_BASIS release 702SP11, 730SP7, 731SP3, or higher, then the authorization concept is different; in this case refer
to SAP Note 1755304 - Authorization problems with Oracle SQL command editor.)
If there are no results or the results are outdated, contact SAP Support in component BC-DB-ORA.
Like the point above, if SAP Support nds the performance problem to be manifesting as increased DB response time and the DB in question
is HANA, then access to the SYS_STATISTICS. schema is needed.
To ensure the collectors are running and the data in _SYS_STATISTICS are up to date, download and extract the attachment in SAP
Note 1969700 , nd and execute the statement HANA_StatisticsServer_Histories_RetentionTime<version>.txt.
The STATUS column should not contain Inactive and the OLDEST_DATA_DAYS should not be blank or signi cantly greater than
CUR_RET_DAYS.
How do I x them?
If STATUS contains Inactive for one of the collectors, refer to point 11 in SAP Note 2147247 - FAQ: SAP HANA Statistics Server for steps to
resolve this.
In order for SAP Support to query the data in these tables from DBACOCKPIT, the following authorization object and elds are required:
This is custom documentation. For more information, please visit the SAP Help Portal 52
9/2/2024
Authorization object:
S_TABU_SQL
elds:
ACTVT = 33
DBSID = *
TABLE = *
TABOWNER = _SYS_STATISTICS
If there are issues with the HANA Statistics Server or the Inactive collectors cannot be corrected following the steps in the above Note,
contact SAP Support in component HAN-DB-MON.
8. Retention periods
Each of the above mentioned points have a particular retention time. Their respective retention times can be con gured to allow SAP
Support to look further backwards in time. This is helpful in that some incidents may not reach performance experts for many weeks, and
often the relevant historical data has already expired and been removed at this point.
The following gure demonstrates critical time periods based on default retention times:
If a performance problem occurs, this gure shows how long (by default) SAP Support has to analyze the relevant data. If performance
experts do not get to examine the system within these time periods, then that data is gone and cannot be used to determine root cause or
provide a solution.
In order to allow SAP Support longer periods of analysis (and in the event an incident does not reach performance experts right away), it is
recommended to increase these retention periods.
A. STAT les
The retention time of the STAT les are determined by parameter stat/max_ les. Each le contains 1 hour of records, therefore
setting stat/max_ les to 48 results in a retention time of 48 hours.
The allowable values of stat/max_ les are mentioned in SAP Note 2532788 - STAD parameter stat/max_ les values allowed.
Most Basis admins do not change this value, and 48 hours is sufficient in most situations. However, increasing stat/max_ les to a higher
value can be bene cial in cases where a performance problem might occur on a Friday or Saturday and performance experts are not available
to investigate until Monday.
B. ST03 aggregates
Workload data (ST03) retention times are con gured by following the steps in SAP Note 1843151 - ST03 Data Retention Time Settings.
This is custom documentation. For more information, please visit the SAP Help Portal 53
9/2/2024
Adjust the retention times to the desired values. The size of the MONI table will grow to accommodate the increased retention times.
The default retention times are woefully inadequate and should be increased to a minimum of 14 daily, 8 weekly, and 4 monthly aggregates
in each workload area (including TOTAL). In other words, every row in the above table should contains minimum values of 14, 8, 4, 14, 8, 4, in
that order.
The default retention period of SMON collections is 14 days. To increase this retention period, Increase the value of Delete old analyses after
n days in the Daily Monitoring con guration screen.
14 days are usually sufficient. However, an incident will occasionally not reach performance experts in the rst 14 days. Increasing retention to
21 or even 28 days helps alleviate this problem. Systems which comfortably retain 30 days of snapshots are not unusual. If disk space in the
DB is a concern, monitor the growth of /SDF/* tables after increasing the retention period.
D. Oracle AWR
SAP Note 1326067 - Con gure retention period for Automatic Workload Repository explains how to con gure the retention period of the
AWR. The default is 7 days and the recommended is 42 days.
To con gure the retention period of the statistic tables, see point 15 in SAP Note 2147247 - FAQ: SAP HANA Statistics Server.
In newer releases of HANA, the retention time is already set to these default values, only in older releases do the retention times need to be
con gured.
Summary
Checklist Item What needs to be done? SAP Notes/Articles/Parameters for con guration Where to get help Recommended
and troubleshooting Retention Period
1. ST-PI and ST- Install and Update 539977 - Release strategy for add-on ST-PI BC-UPG-OCS N/A
A/PI 69455 - Servicetools for Applications ST-A/PI
2. STAT les Ensure they exist in DIR_DATA parameters stat/level and stat/max_ les BC-CST-ST 48-72 hours
and are up to date by using
transaction code AL11
3. Workload data Ensure workload data exists by 2369736 - Troubleshooting missing data in BC-CCM-MON- Daily aggregates: 14+
(ST03) opening ST03 and also make sure ST03N/ST03 TUN Weekly aggregates:
it is up to date 1843151 - ST03 Data Retention Time Settings. 8+
Monthly aggregates:
4+
4. OS Monitor Ensure CPU and Memory data 1915341 - No History Data in ST06 / OS07N BC-CCM-MON-OS 45 days
data (ST06) exists in ST06 for Previous Hours 1147334 - CPH setup for OS data
and History
5. SMON Turn on SMON Daily Monitoring 2651881 - How to con gure SMON for SVG-SMG-SDD 21+ days
performance monitoring and analysis
All About SMON
6. Oracle AWR Con gure AWR retention period to 1326067 - Con gure retention period for BC-DB-ORA 42 days
42 days Automatic Workload Repository
7. HANA Statistics Con gure retention period to 42 2147247 - FAQ: SAP HANA Statistics Server HAN-DB-MON 42 days
Server days and ensure collectors are (unless otherwise
not Inactive speci ed by Note
2147247)
This is custom documentation. For more information, please visit the SAP Help Portal 54
9/2/2024
The network performance should be diagnosed when the following symptoms occur.
Be aware these are only typical symptoms, are NOT a de nitive indication of a network performance issue.
Network issues generally focus on problems with transmitting large data volumes or the speed at which the data is communicated. This can occur
due to the following:
Hardware issues
This can be wide ranging and can involve port issues (where the cable is connected), a router error (connects different networks), or a switch error
(connects different devices).
A network typically consists of multiple switches, routers and cables. For high volumes of data, the cables need to have available “bandwidth” to
efficiently transfer the data. For example, a cable with a bandwidth of 1Mb/s (known as Ethernet) will allow less data transfer than a 100Mb/s
cable (known as fast Ethernet).
The NIPING Program can be used to diagnose the network or measure network metrics between any two machines running SAP software, for
example between:
For self guided troubleshooting, please try our Guided Answer for Network analysis.
The NIPING result can be used to measure throughput and roundtrip time and perform stability test for LAN or WAN used.
Detailed information can be found in SAP Note 500235 - Network Diagnosis with NIPING.
Example commands:
For demonstration purposes the following example gives commands for a long LAN stability test;
On the client (source) side: niping -c -H your target server name here -B 10 -L 4000 -P -D 900
On the server (target side): niping -s -I 0 (the last character is zero, not the letter O)
So in the above case you have de ned the client (-c) and server (-s) commands and the duration of the NIPING trace (4000 loops with a delay of
900ms between each loop which will last for approximately 1 hour).
Example output:
This is custom documentation. For more information, please visit the SAP Help Portal 55
9/2/2024
------- times -----
avg 4.695 ms
max 36.867 ms
min 0.658 ms
tr 12479.766 kB/s
av2 1.178 ms
tr2 49729.472 kB/s
See more about NIPING output results in SAP Note 1100926 - FAQ: Network Performance.
HttpWatch is a third-party browser plugin which can be used to trace the HTTP/HTTPS traffic between the browser and server triggered by each
action you take within a web application. It can be downloaded via http://www.httpwatch.com/download/.
This tool can be used to capture trace le for scenarios which having performance issue and get *.hwl les for further analysis.
Sometimes, the root cause can be either Network, ABAP or a combination of both. In these cases it is recommended that you preform an ST12
trace along with a HTTP watch to determine where the issue is. This is noted here:
2424394 - Using HTTP trace and ST12 trace to diagnose slow response in customer portal
SAP GUI
The SAP GUI gets installed on the client side, typically within Windows. This allows access to the SAP system through the front end client side and
also assists with storing user preferences and logon details.
This communication between the SAP GUI and the backend SAP system can be the source of network related issues and slowness. Firstly, it is
recommended that you have the latest version of SAP GUI installed on your desktop.
See the below SAP Notes:
147519 - Maintenance strategy / deadlines for SAP GUI for Windows / SAP GUI for Java
Next to ensuring your GUI is within recommendations, a GUI performance trace should be performed to determine if the issue is on the GUI side or
the Network side, see in SAP Note 851012 - SAP GUI Performance trace
A performance issue will sometimes occur on the GUI side when the user preferences allow for population of the menu with large amounts of
information. This can be checked by trying the "low speed" connection setting within the GUI, see in SAP Note 161053 - Using SAP GUI in WAN.
Windows tools
NETSTAT
Useful for: Viewing active TCP/UDP connections in real time.
NSLOOKUP
Useful for: Resolving domain names to IP addresses
This is custom documentation. For more information, please visit the SAP Help Portal 56
9/2/2024
IPCONFIG (WINDOWS)
Useful for: Showing available connections on your Client side
Other tools
Wireshark
Useful for: Packet and network analysis on the OS side.
The RSORASTT tool can be used to graph NIPING outputs with the import option.
The tool can be found in SAP Note 1299493 - Loadable SAP Support Monitors
In order to graph your NIPING output, you need to run a "Long LAN stability test" where your Latency will be documented for a minimum of 1 hour.
This can then be imported into RSORASTT tool. This is very helpful for visualizing your Network latency over a long period of time.
Sample output:
This is custom documentation. For more information, please visit the SAP Help Portal 57
9/2/2024
1969914 - Packet scanning tutorial using wireshark
2436955 - Step by step instructions on how to use ST12 trace for analysis
Performance Tools
1817693 - How to trace the ITS Service "WEBGUI" directly using HttpWatch?
2879724 - How to analyze performance traces with the pro le data analyzer
Database Performance
2186006 - DB6: How to match an SAP work process with database application handle [VIDEO]
Network Performance
This is custom documentation. For more information, please visit the SAP Help Portal 58
9/2/2024
2430134 - decision tree - How to Determine Which Component a Performance Issue Belongs to
For an overview for transactions used in performance analysis, read SAP Note 48066 - Performance Analysis: Transactions to use
SMON allows for the periodic collection of performance data such as CPU utilization, memory, work process utilization and samples, request
queue lengths, and more.
Learn how to con gure and schedule SMON, read SAP Note 2651881 - How to con gure SMON for performance monitoring and analysis.
For other information related to SMON, check Expert Content Page All About SMON.
SMON replaces the older snapshot tool /SDF/MON. We recommend using SMON when possible.
For information on /SDF/MON see SAP Note 2383809 - How to use the SDF/MON tool to analyse performance issues.
KBA 2436955 - How to collect and analyze traces using ST12 (single transaction analysis)
ST05
Expert Content Page How to run transaction st05 to trace a program, transaction or user execution
SAP Note 552845 - FAQ: RFC Statistics in Transactions ST03/ST03N and STAD
KBA 2327539 - How to create a SE30 Trace for Web Dynpro ABAP Application [VIDEO]
Kernel Snapshot
The snapshots in the ABAP server aim to display important information about the current situation of the server.
KBA 2640476 - How to analyze Server Snapshot with kernel snapshot analyzer
HTTPWatch Help
This is custom documentation. For more information, please visit the SAP Help Portal 59
9/2/2024
DPMON Tool
Related SAP Note: 42074 - Using the R/3 dispatcher monitor 'dpmon'
There is a standalone tool to systematically analyze issues from pro ling data les. Read Expert Content Page Pro le Data Analyzer - A Tool to
Analyze the Performance Traces for Both ABAP and Java
Purpose
The purpose of this Wiki page is to provide general information on the Snapshot MONitoring utility in report /SDF/SMON (hence referred to as
SMON).
Purpose
General
Installing SMON
Navigating SMON
Timeframe
Servers
4. Dispatcher Queue
6. Number of logins/sessions
This is custom documentation. For more information, please visit the SAP Help Portal 60
9/2/2024
Inclusion of Logon handles and Session IDs
Storage method
WP sample aggregation
General
SMON is a monitoring utility that periodically collects data related to the system's health.
SMON is the successor to /SDF/MON and collects additional data and contains features which /SDF/MON does not.
SMON works by starting long-running collectors, one per application server. These collectors sleep (WAIT UP TO ...) between snapshots and are
started as RFC calls in an "async w/o result" connection.
Customers sometimes express concern over these long-running collector tasks thinking their system has a performance problem, but the behavior
is expected and not an indication of a performance problem; see SAP Note 2229255 - Long RFC response times when you use /SDF/MON.
Installing SMON
The system must have Software Component ST-PI Release 740 with SP-Level 0002 or higher.
Refer to SAP Note 539977 for steps on installing & updating ST-PI.
In lower SAP NETWEAVER releases where SMON is not available, /SDF/MON can be used as an alternative ( SAP Note 2383809 )
Navigating SMON
To access SMON, execute transaction /n/SDF/SMON (a leading "/n" is required due to the namespace) or run report /SDF/SMON in transaction
SE38.
If no snapshot collections exist yet in the system, the home screen of SMON will be the Start Snapshot Monitoring screen:
This is custom documentation. For more information, please visit the SAP Help Portal 61
9/2/2024
If collections do exist in the system, the home screen with be the Snapshot Monitor screen, listing these collections:
Double clicking a snapshot collection (or selecting a collection and clicking the Display Overview Data button) will display the Filter dialog screen:
This is custom documentation. For more information, please visit the SAP Help Portal 62
9/2/2024
This allows initial ltering to be done prior to viewing the snapshots and is useful if you know the timeframe the problem occurred or if the issue
was isolated to an application server/user/WP type/etc.
Because the default interval of SMON is 1 second (and since most content is only collected every 10th or 60th interval) the default restriction is to
display every 30th snapshot.
If you would like to see every snapshot change the Display only every nth snapshot value to 1.
There is an issue when using the Display only every nth snapshot restriction.
When trying to display the additional content (e.g. Memory per mode) in the Monitoring Data overview screen, SMON will sometimes raise a "No
detailed information available" error message.
This can occur when content which is collected every n snapshots, and the snapshots being displayed via the display only every option are not the
same.
For example, if we are only viewing snapshots ending in :13 (hh:mm:13; display only every set to 60) and the Top CPU Processes (collected every
60th snapshot) were collected on snapshots ending in :00 (hh:mm:00) then SMON may raise the error previously mentioned when trying to
display that content.
Clicking Execute on the snapshot lter dialog screen will take you to the overview data for the snapshot collection. Each row in the Monitoring Data
table corresponds to a single snapshot.
For content which is collected Every n times (e.g. CPU and paging activity) the information is repeated in the rows following the snapshot in which
it was collected until the next nth snapshot.
This is custom documentation. For more information, please visit the SAP Help Portal 63
9/2/2024
SMON is not designed to gracefully handle multiple days of data in a single snapshot collection.
If for some reason there is a snapshot collection which covers a timeframe greater than 24 hours, see deleting large snapshot collections for steps
to remove them safely.
Timeframe
Determines when the SMON collectors should start and end. The option [Do not delete before] determines the expiration date of the
snapshot collection. When this date is reached the collection is automatically deleted.
When con guring Daily Monitoring, only the start and end time may be de ned and the expiration date is de ned by the age of the collection
rather than a speci c date:
Servers
De nes the application servers which the collectors will be started on. If left blank, collectors will be started on all application servers.
[Interval in seconds] de nes the base interval for how often the collectors roll-in to generate a snapshot.
[Every n times] de nes how often that content will be collected as a multiple of [Interval in seconds].
In the screenshot above, "List of workprocesses (SM50)" is collected every 5 seconds, but "Dispatcher queue" data are only collected once
every 30 seconds.
This is custom documentation. For more information, please visit the SAP Help Portal 64
9/2/2024
[List of workprocesses (SM50) interval] = [Interval in seconds] * [List of workprocesses (SM50) Every n times] = 5 seconds * 1 = 5
seconds
[Dispatcher queue interval] = [Interval in seconds] * [Dispatcher queue Every n times] = 5 seconds * 6 = 30 seconds
As [Interval in seconds] is increased, [Every n times] should be reduced by a similar factor to avoid large gaps between snapshots.
Whether con guring one-time monitoring or Daily Monitoring, the content options are the same:
When browsing the collected data, the content switches above correspond to the columns below:
Some information must be accessed through the Goto menu or by double-clicking particular columns.
This is custom documentation. For more information, please visit the SAP Help Portal 65
9/2/2024
The time elapsed since the last snapshot on that application server.
Yellow when: [time since last measurement] - [Interval in seconds] > 1 second
Red when: [time since last measurement] - [Interval in seconds] > 5 seconds
"Time since last measurement" is useful for nding periods where request processing may have been disrupted.
Every "Interval in seconds", SMON collectors need to roll in to collect content and generate a snapshot.
If something* delays the roll-in or the collector itself, "time since last measurement" will be signi cantly greater than "interval in seconds".
(*Many general performance problems can cause delays in the collectors. This something could be: no free WP is available, CPU bottlenecks,
memory thrashing, slow/hanged DB commits, and much more.)
To nd snapshots that have been delayed, use the "Min. Delay in seconds" eld on the Filter screen:
The Work Process activity on each application server; similar to the information found in SM50 and with the dpmon tool.
In addition to collecting the Work Process activity, SMON contains tools for analyzing the collected WP data:
Filtered WP List - As above, will display WP samples from all selected snapshots with the option of including lter criteria
WP List Aggregation - Allows you to aggregate WP samples by common criteria. Optionally allows you to apply lter criteria at the
same time.
When enabled, the collectors will attempt to obtain the ABAP call stacks of running WPs.
A call stack is not always obtained depending on the current activity & state of the WP.
When a call stack for a WP sample is available, there is a eld in the WP list called Stack Info Available that will contain a call stack icon:
Double clicking the call stack icon will display the call stack:
This is custom documentation. For more information, please visit the SAP Help Portal 66
9/2/2024
4. Dispatcher Queue
The queue length information for DIA, UPD, and ENQ task types on each application server.
6. Number of logins/sessions
Similar to the information found in SM04. Information about each logon and the memory used by each user mode/session.
Useful for ensuring the SAP system is provided enough memory and is receiving enough resources from the hypervisor.
Useful for checking if non-SAP processes are competing with the NetWeaver system for CPU resources.
This information is not very useful as it is not easy nor possible in some cases to link a blocked/long-running queue to a particular action/WP
in the snapshots.
The same problem exists when investigating a qRFC problem live in the system, as such, root cause analysis of historical qRFC issues (which
are not attributed to general performance) is not possible in some cases.
This is custom documentation. For more information, please visit the SAP Help Portal 67
9/2/2024
The same information which can be browsed in SMQ1 (Outbound Queue monitor).
As mentioned above, this information is not very useful and historical qRFC investigation is limited.
SMON includes much more information from the OS collector (ST06 data) and in some cases critical information for understanding the
resource consumption (including KPIs of virtualized servers) during that time frame which is not recorded anywhere else in that granularity.
SMON:
/SDF/MON:
It's easy to see how much more valuable SMON is by simply including virtualization KPIs such as CPUs consumed, CPU Ready, and Steal time.
Note how misleading the Free Memory column of /SDF/MON is when the le system cache is not considered!
In the screenshot below is the WP list of a snapshot and another screen of SM04 → User → Technical Information.
The back-end session key is included in the form of the Logon Key , Logon ID, and Back-end Session Handle and is also included in the
Memory per modes (SM04) snapshots.
When viewing a WP list, there are additional functions/buttons in SMON which are not present in /SDF/MON:
This is custom documentation. For more information, please visit the SAP Help Portal 68
9/2/2024
Selecting a row from the WP table and clicking this button takes you directly to transaction STAD and displays the STAT record (if it still
exists) of the dialog step corresponding to the selected WP sample.
Selecting a row from the WP table and clicking this button will display all WP samples from that dialog step:
3. ABAP Workbench
Selecting a row from the WP table and clicking this button will display the program captured in the sample in the ABAP Workbench.
Additionally, if a call stack is present for the selected sample the Workbench will open on the line of code recorded in the call stack.
Storage method
SMON stores the majority of its snapshot data transparently; contrast this with /SDF/MON which stores snapshot data as per SAP Help
Page Data Clusters.
This allows us to query much of the data directly with SQL when more granular control over ltering or aggregation is required.
WP sample aggregation
SMON contains functions for aggregating WP samples. This allows us to identify trends in WP behavior (e.g. estimating what percent of
runtime was spent waiting for DB commits).
While /SDF/MON appears to contain the same functionality, it does not seem to be implemented or is bugged; I have never been successful
in using the WP aggregation function in /SDF/MON.
This is custom documentation. For more information, please visit the SAP Help Portal 69
9/2/2024
All tables are transparent-type tables per the ABAP dictionary (SE11), but some tables contain data clusters.
When the Storage Method is Direct, the data can be queried directly with SQL.
When the Storage Method is Data cluster then data in that table is stored as a data cluster and cannot be queried directly with SQL.
/SDF/SMON Data cluster Snapshot Data such as Top 40 CPU Processes and Enqueue entries
/SDF/SMON_CLUST Data cluster Admin/Con g Clustered/compressed snapshot data to reduce storage size
/SDF/SMON_CALL Direct Admin/Con g Information needed to start the collectors via RFC
/SDF/SMON_CALLPA Data cluster Admin/Con g Information needed to start the collectors via RFC
/SDF/SMON_HEADER Direct Snapshot Header data for each snapshot as seen in the Monitoring Data
screen. E.g. CPU & Memory Consumption, Active WPs, EM
allocated/free
/SDF/SMON_LAYOUT Data cluster Admin/Con g ALV grid/table layouts for viewing SMON data (in other words, what
columns you see in the Monitoring Data table)
/SDF/SMON_RUN Direct Admin/Con g Header information for each snapshot collection such as the content
that is being collected and if the collection is currently
clustered/compressed
/SDF/SMON_SESS Direct Snapshot Contains session information (SM04); "Memory per modes" content
type
/SDF/SMON_STACKD
/SDF/SMON_STACKH
The CPU and memory requirements of SMON are mostly negligible and SMON can safely be run in production environments.
The only content for which collecting may place a non-negligible load on that part of the system are:
Enqueue entries
Inbound queues
Outbound queues
However, when the above content is enabled, there will be an explicit warning.
For example, turning on "Enqueue entries" will display the following message:
For day to day monitoring, Enqueue entries, Inbound queues, and Outbound queues are not needed.
Space requirements should not be a concern due to the abundance of storage space in this day and age.
If storage space truly is a concern, the tables mentioned in the previous section can be monitored and if the size on disk of these tables is
unacceptable, the [Interval in seconds] can be increased to reduce the volume of data collected.
Keep in mind that larger [Interval in seconds] will make analysis of short-lived performance problems more difficult.
When SMON collectors are started, they will obtains locks on the /SDF/SMON_CALL_KEY table. There will be 1 lock per application server
(and one additional lock if one of the Global Content switches are enabled)
The SMON watchdog (job /SDF/SMON_WATCHDOG) which runs every 5 minutes checks the enqueue table for these locks.
If the locks are missing, it usually means the collectors are no longer running and the watchdog will restart the collectors.
For more information about these locks, see SAP Note 2689689 - /sdf/mon or /sdf/smon related locks remain in SM12
SMON tries to delete all records in /SDF/SMON_WPINFO that belong to a particular snapshot collection in a single DB transaction. SMON
does not periodically commit during the delete.
As a result, if a particular snapshot collection contains an extremely large amount of data, trying to delete it directly may result in the DB's
log buffers lling completely and preventing any transactions from being processed.
1. Truncate /SDF/SMON_WPINFO and /SDF/SMON_HEADER (the data in these tables are not system-critical)
All snapshots from all collections will be lost, but this prevents a possible log buffer full situation.
Pro le Data Analyzer - A Tool to Analyze the Performance Traces for Both ABAP and Java
Purpose
The purpose of this Wiki page is to summarize the resources and tips for pro le data analyzer which is a standalone tool to systematically analyze
issues from pro ling data les (pro ling les from SAP JVM Pro ler or ABAP Runtime Analysis) and create analysis reports. These analysis reports
can be used by application developers, system administrators, and support engineers to easily identify the most expensive parts of a program and
optimize them accordingly.
Purpose
Typical Scenarios
Download Link
Getting Started
Further Reading
Typical Scenarios
Here are the typical scenarios for the pro le data analyzer.
Visualize ABAP Runtime Analysis or SAP JVM Pro ler pro ling les as interactive and intuitive Flame Graphs,
Graphically compare performance traces in order to e.g. to understand a performance degradation after implementing a Support Package,
Convert ABAP Runtime Analysis les into the SAP JVM Pro ler format to make use of advanced pro ling features of SAP JVM Pro ler
Download Link
This is custom documentation. For more information, please visit the SAP Help Portal 71
9/2/2024
The download link is documented in KBA 2879724. Here is the direct download link in SAP Portal Page. It can also be downloaded from the following
link by searching "pro le data analyzer".
Getting Started
The following SAP Blog contains a getting started guide for pro le data analyzer. When you download the package, you will also nd a PDF guide
named "Pro le_Data_Analyzer.pdf" together with the executable java le.
Understanding the ABAP Program Logic With Pro le Data Analyzer for Performance Optimization and Other Tasks
Understanding the ABAP Program Logic With Pro le Data Analyzer – ME23N
As shown in the above blog posts, the performance ame graph is one of the most interesting parts in the analysis report of pro le data analyzer.
Here is a ame graph example and the tips about how to read the performance ame graph.
Every column is a call stack. The main program is at the bottom. The lower method calls the upper method.
The width in the graph is proportional to the actual time used by that call stack.
We could zoom in or zoom out in the graphic view by clicking a method on the call stack.
Click the "Search" button to search with regular expressions. The search results will be highlighted in purple.
Move the mouse to a method, the tooltip will show more detailed time information.
Special method types have dedicated colors. For example, DB methods are blue.
The call count of a call stack is shown like "Calls: XXX" on top of the call stack.
Further Reading
The changes for pro le data analyzer will be tracked on the below SAP Blog post.
Here are the KBAs for the pro le data analyzer, including how to collect the trace and how to analyze it with pro le data analyzer.
KBA 2879724 - How to analyze performance traces with the pro le data analyzer
KBA 2881237 - How to collect performance trace for the pro le data analyzer
KBA 2891307 - How to convert ABAP trace by pro le data analyzer and analyze it with SAP JVM Pro ler
This is custom documentation. For more information, please visit the SAP Help Portal 72
9/2/2024
Tips
KBA 2948335 – The frequently-used pro le data analyzer options for ABAP trace
KBA 2916386 – Check pro le data analyzer call position in the backend system
Here are the documents for SE30, SAT and ABAP performance trace
SAP Help Page Starting the ABAP Pro ler on ABAP in Eclipse
Aggregation by call stack which could reduce the trace size and only available on ABAP in Eclipse, see in SAP Help Page Understanding
ABAP Pro ler Settings
Here are the documents for the SAP JVM Pro ler. To lever the full potential of the SAP JVM Pro ler, we suggest going through the following SAP
JVM Pro ler documentation.
Your feedback is appreciated and needed. We are looking forward to your feedback. But the support channel of the pro le data analyzer is not the
OSS incident in the SV-PERF component. If you have any feedback or any issue while using the pro le data analyzer, please feel free to send an
email to "qiansheng.wang AT sap.com" or post a comment in the following SAP Blog post. We will follow up with you there.
What are the things we have to monitor in ST03 (Workload Analysis Monitor) and what should be the range (ie time in ms)?
System statistics are written to the R/3 kernel and can be displayed using the workload monitor (Transaction ST03N). They provide system
administrators with varied and detailed information on CPU time, numbers of database changes, roll out times and so on.
GUI time
Roll ins
Roll outs
Roll in time
Database calls
Database requests
This is custom documentation. For more information, please visit the SAP Help Portal 73
9/2/2024
High Values for Reason
During a dialog step, the CPU of the application server is used for processing (loading, generating, database request processing, ABAP
processing and so on). The CPU time is determined by the operating system. At the end of a transaction step, the R/3 work process queries
the CPU time from the operating system. The CPU time is therefore not an additive component of the response time, unlike the wait, roll-in,
load and database time.
The average response time of a dialog step is the average time measured from the time a dialog sends a request to the dispatcher work
process through the processing of the dialog up to the time the dialog is completed and the data is passed to the presentation layer. The
response time between the SAP GUI and the dispatcher is not included in this value.
The response time does NOT include the time taken to transfer data from the R/3 frontend to the application server. For networks with low
performance, this can create a highly subjective response time. The transfer time is contained in the GUI network time.
Response time is usually split into wait time plus dispatch time. The SAP response time is composed of the following components:
- Database time
- CPIC/RFC time
The CPU time is not an additive component of the response time, but the sum of the CPU time that is used by the individual components. The
CPU time therefore provides additional, independent information on the response time.
The time an unprocessed dialog step waits in the dispatcher queue for a free work process. Under normal conditions, the dispatcher work
process should pass a dialog step to the application process immediately after receiving the request from the dialog step. Under these
conditions, the average wait time would be a few milliseconds. A heavy load on the application server or on the entire system causes queues at
the dispatcher queue.
The time needed to load and generate objects such as ABAP source code and screen information from the database.
Database calls - The number of parsed requests sent to the database.
GUI time
The GUI time is measured in the work process and is the response time between the dispatcher and the GUI.
Roll ins
Roll outs
This is custom documentation. For more information, please visit the SAP Help Portal 74
9/2/2024
Number of rolled-out user contexts.
Roll in time
Queue time in the roll area. When synchronous RFCs are called, the work process executes a roll out and may have to wait for the end of the
RFC in the roll area, even if the dialog step is not yet completed. In the roll area, RFC server programs can also wait for other RFCs sent to
them.
Database calls
Database requests
The number of logical ABAP requests for data in the database. These requests are passed through the R/3 database interface and parsed into
individual database calls. The proportion of database calls to database requests is important. If access to information in a table is buffered in
the SAP buffers, database calls to the database server are not required. Therefore, the ratio of calls/requests gives an overall indication of the
efficiency of table buffering. A good ratio would be 1:10.
Average response time for all commands sent to the database system (in milliseconds). The time depends on the CPU capacity of the
database server, network, buffering, and on the input/output capabilities of the database server. Access times for buffered tables are many
magnitudes faster and are not considered in the measurement.
The following times give you an overview of optimal response times in your SAP System. Use the workload monitor to display the current workload
statistics in your system.
This is custom documentation. For more information, please visit the SAP Help Portal 75
9/2/2024
- Changes - >25 ms
The times for direct reads and changes should not exceed 10 milliseconds in a healthy database system. The sequen
- DB req. (Change/Comm.)
- Load time
- Buffer problems?
- Wait time
- Locked tasks?
- Long-running transactions?
You can use the workload monitor (Transaction ST03N) to analyze the workload statistics for each task type (for example for background
processing, dialog processing, update processing, ALE, and RFC) for the application servers in your SAP System.
You can use the workload monitor to display and compare the time pro les. A time pro le displays the workload for a speci c task type over
a speci c period of time.
You can display the workload of the instances that are con gured in your SAP System, not just the instance that you have logged on to. You
can also switch easily between the information for these instances.
You can display and analyze the time pro le for one individual task type, or for all task types. You can display the workload for the following
parameters:
- Times
- Database
- GUI times
- All data.
You can use the workload monitor to display the number of users working on an application server. You can display the number of dialog
steps that each user has executed, and check that application server response times are acceptable.
This page includes the introduction of interpreting Response Time, Guideline values when analyzing Average response time,and the
troubleshooting guide of key components of response time.
The following SAP Notes provide information about how response time is
measured and contains information about the term in general:
This is custom documentation. For more information, please visit the SAP Help Portal 76
9/2/2024
SAP Note 8963 - De nition of SAP response time/processing
time/CPU time
Be aware these are only guideline gures, and are NOT a de nitive
indication of a performance issue
You could read more information about the key components of response time from the following pages.
Enqueue Time
Enqueue Time
Enqueue time is the time during which a work process sets an enqueue request (indicated as Av. Lock Time).Typically, this component of the dialog
response time is rather small, usually less than 5 ms.Following gure is the example of Enqueue time in STAD statistics.
This is custom documentation. For more information, please visit the SAP Help Portal 77
9/2/2024
2126913 - ENQU: The enqueue log
Nearby Technologies
Analysis should focus on Front End: Front-End Ping (Network Check), Front-End Hardware, High Volume of Data Transferred, Many Roundtrips. If
you discover that the GUI time is high despite a relatively small volume of data, this can be for two reasons: there may be a hardware bottleneck
on the presentation server or a network bottleneck. Often, the simplest way to analyze this further is to lter out the users who typically
experience these problems from the single-record statistics.
High GUI Time, can sometimes be the result of a non-optimally con gured SAP Easy Access Menu. Check for high GUI Times associated with the
transaction SESSION_MANAGER, if high times are identi ed it is a good idea to run the report ʻEASY_ACCESS_NUMBER_OF_NODES’ via SE38.
This report identi es the number of menu nodes con gured per user. A high number of menu nodes increases GUI time and reduces performance.
Menu should not contain more than 1000 entries (For comparison: The complete SAP menu contains 70,000 entries). The Tree is loaded to the
user context at a glance. A high number of menu entries leads to high memory consumption on the application server and to long response times
for the menu.
This is custom documentation. For more information, please visit the SAP Help Portal 78
9/2/2024
Nearby Technologies
CPU time and processing time are related. Processing time is an important component of the response time. While processing ABAP coding, CPU
time is needed. Whether the application server can allocate CPU time for the speci c task depends on the overall load on the machine. In short,
processing time does not automatically mean CPU time allocation. If CPU resources are in short supply, processing and response time still grow,
but no real work is done. Ideally, processing and CPU time are about the same size. Processing time is not measured but “calculated” instead. See
below.
Check Operating System Monitor for a CPU Bottleneck as per the below SAP Notes:
The dispatcher of the SAP instance receives the incoming request and stores it in the request queue of the appropriate work process type. While
the dispatcher is looking for a free work process, wait time is accumulated. Wait time ends, when the request is being forwarded to a free work
process of the required type. Wait time is the rst component of the overall dialog response time.
Check for long running processes consuming a high number of Work Processes
Check for Work processes in PRIV Mode, this can indicate insufficient extended memory
Is high wait time the Root cause of the poor performance or a symptom of another issue
This is custom documentation. For more information, please visit the SAP Help Portal 79
9/2/2024
2129291 - Session Priority and Work Process Quota in SAP Kernel 7.4x
Load and Generate time is the amount of the time taken by work process to copy and generate or to load and generate ABAP code and screens for
the User request. The load and generator time is high the problem is the buffer sizes is too small (TP program or buffers and CUA buffers).
HitRatio% and % Freespace should always be considered when analysing Buffer Size
Always ensure sufficient main memory is available before making buffer increases and that all changes are tested before promoting to a
production environment.
This space introduces the Memory Management System and explains which pro le parameters are available and what are the optimal settings for
your system.
It describes the basic functions of memory management ,buffer,swaps and how best to con gure your system depending on the platform you use,
the available resources, and what you want your system to do.It also describes hardware and operating system requirements and explains how to
monitor your memory management and identify and resolve problems.
For more information, visit Expert Content Page SAP Memory Management System
This is custom documentation. For more information, please visit the SAP Help Portal 80
9/2/2024
types and their usage, and implementation of memory
management.
Memory Management:
2442188 - Analyzing and Con guring Memory to Increase Performance - Guided Answers
2148571 - Explanation for higher Extended Memory (EM) consumption after upgrade to SAP NetWeaver release 7.4x
2103827 - Pro le parameters for table buffer as of SAP Kernel Release 7.40
2019744 - How to limit overall swap space consumption of the ABAP Server in NW 7.40
Additional Topics
Slow Response Times for Some Users, Very Good Response Times for Other Users
This is custom documentation. For more information, please visit the SAP Help Portal 81
9/2/2024
Displaying Buffer and Memory Resources in Transaction ST02
This wiki page introduces the overview of SAP Support Services are closely related to the performance analysis.
All the support services delivered by SAP as per Support Service Portal Page.
Performance analysis shows general performance issues across the system where there is no speci c pattern or single root cause to the
performance issues identi ed.
The system has recently undergone many changes and no SAP Service has been delivered to verify system performance and con guration
following these changes.
The overall system con guration and parameter settings are requested to be checked It can be a very time-consuming task to verify
system con guration and check all parameters via customer incident.
Be aware that it is important to check whether services have recently been delivered or scheduled, before additional services are implemented
for your systems.
For more information about support services related to performance analysis, check Continuous Quality Check & Improvement Services.
2366584 - The differences of services SAP Early Watch Service, SAP Early Watch Alert and SAP EarlyWatch Health Check
Table Buffer
Purpose
Types
Areas in memory
Parameters
Overall
Additional/Misc Notes
Purpose
The purpose of this page is to provide a deep understanding of the table buffer(s) and provide techniques for troubleshooting the table buffer(s). It
will help connect concepts of the table buffer to the various monitors and screen at your disposal in any ABAP AS system.
Table Buffering on this page only refers to the table buffers that reside on Netweaver ABAP application servers (and not DB table buffers).
Types
For details on the types of buffering offered, see:
ABAP - Keyword Documentation : Table Buffering - Buffering Types
This is custom documentation. For more information, please visit the SAP Help Portal 83
9/2/2024
As you can see, a generically buffered table is subdivided based on the values in the rst n key elds to create generic key areas (or simply key
areas for short; this term is important in load times and understanding the buffer state later on).
The more key elds that are included in buffering, the more de ned, and smaller, each generic key area becomes (also depending on the
cardinality/uniqueness of each key eld).
Every fully & generically buffered table is rst divided by client number (MANDT eld). This means that a table which is generically buffered by only
1 key eld is equivalent to full buffering. (For evidence of this, see section explanation of the multiple state.)
To maintain the current buffer settings of a table or to see if a table is even allowed to be buffered as per its developers/owners, use SE13.
Areas in memory
Depending on your kernel release, there may be one or two different table buffer areas in memory. In kernel releases 7.2x and lower there are two
table buffers:
Generic key : tables con gured with Full buffering and Generic buffering are stored here.
Single record : tables con gured with Single record buffering are stored here.
In kernel releases 7.4x and above, there is only one table buffer, where tables of all buffering types are stored.
The basic memory information regarding the table buffer(s) can be checked via transaction ST02.
Depending on your kernel version, the table buffer(s) may or may not be stored in the EG area of EM. SAP Note 2148571 explains this change.
If your system is on SAP_BASIS release 740 with kernel 7.4x or higher, you can observe the proc memory usage of the table buffer per WP ( What is
PROC memory? ).
In SM50 select the WP you are interested in and go to Administration > Work Process > Write Stack. Then click the "View dev traces" button (
Ctrl + Shift + F8). At the bottom, the C-stack and proc memory will be written. In the proc memory section, there should be a DBI_MM tag.
This is the amount of table buffer proc memory currently allocated by this work process.
More information regarding the Write Stack feature can be found in SAP Note 2249313 . These are the same tools used to examine PROC memory
areas for leaks as described in the Memory section of the BC-CST Expert Content Page.
This is custom documentation. For more information, please visit the SAP Help Portal 84
9/2/2024
Parameters
To control the size of the table buffer(s), refer to the following notes based on your kernel release:
7.2x and lower: SAP Note 480710 - Pro le parameters for table buffers (for SAP Kernel Release 7.2x and below)
7.4x and higher: SAP Note 2103827 - Pro le parameters for table buffer as of SAP Kernel Release 7.40
In ST10 and AL12 (in kernel > 7.4x: AL12 > Monitor > Buffers > Table Buffer > All Objects) you can nd the current state of a table/generic key
area in the buffer.
Valid – Data will be taken from buffer for next read access.
Invalid – The table/generic key area has been invalidated. Data is changed but changes are not committed. Data retrieval would be
from the database.
Pending – Data needs to be refreshed. Any Open SQL that would access this table will instead go directly to the DB.
Loadable – Data will be refreshed on the next execution of an Open SQL statement that would access this table from the buffer.
Absent – The table is not in buffer at all. For example, no access on the table occurs from the server so far. Data would be loaded
into memory upon next read request.
Multiple – Only visible in ST10 (not AL12). Occurs when the key areas of a buffered table are in different states. E.g. some generic key
areas are pending but some are valid.
Error – Table data cannot be placed into buffer due to error like space, etc.
Note that the terms table & generic key area are generally interchangeable in this section.
Absent > When a server rst starts up all key areas of tables that are to be buffered start in an absent state. The rst access to these key areas will
Loading1 > cause them to load/refresh.
Valid
Valid > When the contents of a table are changed, the relevant generic key area of that table in the table buffer is invalidated and goes into a pending
Invalid2 > state.
Pending
Pending > A key area stays in pending status until a number of Open SQL requests (typically 5) have attempted to retrieve data for this table from the
Loadable buffer (but been unable to due to its current state of pending).
After this, it will go into the loadable state.
Loadable > A key area that is loadable will be loaded/refreshed on the next Open SQL request that requires data from that key area. The loading is done
Loading1 > synchronously.
Valid
Valid > When there is insufficient space in the table buffer to load/refresh a table, a less used table is displaced.
Displaced This typically occurs when the table buffer is undersized, you are trying to buffer very large tables and the buffer sizing isn't adequate, or if a
memory leak is consuming usable space as in SAP Note 2404710 - Table buffer: Memory leak in shared memory.
Displaced > ? Unsure if this is like the absent > valid scenario or the pending > valid scenario
> Valid
1. Loading should be quick and difficult to spot in ST10/AL12. If Loading is frequent or long running, perhaps the size of the table/generic key
areas & invalidation rate are not suitable for the current buffer settings.
2. As mentioned in the last section: I've never observed status Invalid in ST10/AL12. The state is generally seen to go from Valid to Pending.
This is custom documentation. For more information, please visit the SAP Help Portal 85
9/2/2024
Additional information on the buffer state can be found here:
How is buffer state and table call statistics changed?
In ST10, tables that are fully buffered or generic key buffered can display state Multiple. This is because different generic key areas can be in
different states at the same time and ST10 simply aggregates the data for all generic key areas into a single entry, thus, if multiple generic key
areas have different states, multiple is displayed in ST10.
If you want to see the individual statistics for the generic key areas of a table, you have to use AL12 > Monitor > Buffers > Table Buffer > All
Objects.
Because fully and generically buffered tables are rst divided by client number, even a fully buffered table can have a state of multiple in a system
with multiple clients.
+ For example...
Only certain Open SQL statements will access the table buffer. For details of what statements can and cannot access the table buffer, see the
ABAP - Keyword Documentation pages for:
SE17 is similar to SE16, however, SE16 always add a TOP N clause (or equivalent, depending on the database) to the native SQL statement,
bypassing the buffer.
It is possible to directly trace buffer requests in ST05 using the Buffer Trace trace type. This is useful if you are unsure whether or not an ABAP
statement uses the table buffer.
+ Example...
Once an Open SQL statement is encountered in an ABAP program, the rst component to receive the Open SQL request is the DBI. The DBI then
determines if it can ful ll the request based on the type of statement (see the Statements that access/bypass the table buffer section) and the
state of the requested table in the buffer and handles the request accordingly or sends it to the DBSL.
Here is a rough overview of what happens when an Open SQL statement is encountered in an ABAP program (also, see the rst diagram at the top
of this page).
1. An Open SQL statement is encountered and the request is sent to the DBI
2. The DBI determines if it can ful ll the request using the table buffer based on statement type
1. Able:
1. For the table in the request, the DBI then checks the state of said table in the table buffer
This is custom documentation. For more information, please visit the SAP Help Portal 86
9/2/2024
1. Valid:
1. The request is ful lled by the DBI using the buffered data
2. Loadable:
1. The DBI refreshes the data in the buffer by querying the database directly (via the DBSL; the state of the table
will be Loading here; see next section for more information)
2. The table goes into the Valid state (assuming no errors occur during table loading)
3. The request is then ful lled by the DBI using the newly buffered data
3. Anything else:
2. Depending on the state of the table, it may go from Displaced to Pending, or Pending to Loadable.
2. Not able:
1. The request is forwarded to the DBSL where it is transformed into a native SQL statement the database will understand.
WP spending a lot of time on action sequential read (on a supposedly buffered table)
In newer kernel releases, the DBI/DBSL will add the SQL comment "/* Buffer Loading */" to the statement that is refreshing that generic key
area. In this case it is very easy to identify these statements and the rest of this section is negligible.
If n is the number of key elds by which to buffer a table (fully buffered table: n = 1 (only MANDT) ; generic buffered table: n >= 1), then, Generic key
areas in the buffer:
Contain all elds/columns of the table -> SELECT * is used to retrieve all records from the table.
Are sorted by primary key -> the SQL statements uses an ORDER BY clause.
Are identi ed by the rst n key elds (including MANDT) -> the where clause will contain n predicates (MANDT + n - 1 other key
elds)
The actual statement will vary depending on the type of table (transparent, pool, etc).
+ For example...
In case the problems below are noticed in your system, the troubleshooting steps are generally the same; see Assessing the health of the table
buffer.
This is custom documentation. For more information, please visit the SAP Help Portal 87
9/2/2024
those servers.
To determine if a table buffer is healthy on a particular server, see Assessing the health of the table buffer.
The most common table buffer leaks that we encounter are detailed in SAP notes 2404710 & 2466145.
when observing the workprocess monitor you observe work processes often and repeatedly waiting on Sequential Read and the
table listed in the action detail column is a table for which buffering is con gured in SE13
And, in the ST04 session monitor (database dependent) you nd that the SQL statements being executed are statements that:
should be accessing the buffer: Accessing & Bypassing the table buffer
or are refreshing the buffer: SQL statements that refresh the buffer
+ Example...
+ Example 1...
+ Example 2...
Therefore, in this section, anytime guidelines are mentioned on what values they should be (or be above/below), you should consider whether or
not you're actually seeing Signs which may indicate buffering issues in your system. If your performance issues are not actually related to
buffering, it may not be worthwhile to focus efforts on the table buffer.
Additionally, the values recommended are intended for production systems; measurements are much more liberal for test and development
systems.
This is custom documentation. For more information, please visit the SAP Help Portal 88
9/2/2024
Overall
The process of evaluating the health of the table buffer overall roughly equates to the following:
The rst step in overall analysis is to check ST02 and see if the table buffer suffers from a low hit ratio or frequent swapping.
These values must also be kept in perspective of the startup time. For example:
The hit ratio can be lower than normal if the system has started only within the last several business days.
The number of swaps may be in the thousands, but if the system has been running for more than a month, it may be
acceptable.
The amount of free space and the number of free directories are below 10% very shortly after system startup then
concern should be raised
To better understand how the table buffer behaves over time, and to identify days where high swapping occurred, use the History view
(Shift+F6 ) . (Note that depending on your basis release, the swap statistics in the History view may or may not be cumulative; use
common sense when determining if the swap statistics are for one particular day, or aggregated for all previous days.)
In a distributed system, each application needs to be checked individually. You can check other application servers using SM51 followed by
transaction ST02, or by using the Server names buttons in the History view to cycle through each application server.
If any questionable KPIs are noticed in ST02, it may indicate the following:
More information is needed to determine the true reason behind said KPIs.
The buffering performance issue is related to invalidation rates in speci c tables (ST10 is required for this)
If you nd the table buffer is low on space, suffering from frequent swapping or suffering from a low hit ratio; ensure the space being used by
the table buffer is valid, and not wasted. Do this using AL12 > Monitor > Buffers > Table Buffer > Overview.
This is custom documentation. For more information, please visit the SAP Help Portal 89
9/2/2024
1. Space with Valid Objects should be within 30% of Used Space, if you notice the space with valid objects is very small compared to the used
space, a memory leak may be indicated as per SAP Note 2466145.
2. The number of Valid Objects should be as close to the number of Total objects as possible. If the number of Loadable objects is signi cant
compared to Total Objects, it may indicate an undersized table buffer, or an overabundance of buffered tables.
If you don't notice any issues with the ratio of Valid to Used Space, then it means the space consumed inside the table buffer is legitimate
and not due to a memory leak. This means the swapping is due to:
Examples
+ Example 1 - Healthy...
+ Example 2 - Questionable...
Even if you have isolated the performance issue to a single business process, transaction, or table, I recommend checking the Overall health of the
table buffer rst. As any tuning or changes made to single tables will be for naught it the root cause is actually an overall unhealthy table buffer.
Once you've con rmed the table buffer is healthy overall, then continue with examining the speci c table(s).
ST02 -> Detail Analysis Menu -> Generic Key/Single Record → "AL12 -> monitor -> buffers -> table buffer- > overview "
This is custom documentation. For more information, please visit the SAP Help Portal 90
9/2/2024
ST12 -> Detail Analysis Menu -> Generic Key/Single Record → "AL12 -> monitor -> buffers -> table buffer -> shared memory"
<WIP>
First view provides the number of blocks and their total size broken down by block/area type.
If SAP Notes 2243084 and 2248618 are applied then Double clicking on any one of those areas provides a histogram-like breakdown of the
data blocks in shared memory area.
Of particular interest is the <free> block type. Note 2253735 explains this type of block and buffer fragmentation. 16KB block initially
reserved, if the table does not ll this, it is shrunk, which may leave gaps. Thus, a large amount of dictionary entries without a sufficient
buffer size may exasperate buffer fragmentation.
In ST10, sum of "Buffer size" column of all valid tables is close to (slightly higher, but not exactly equal to) the "Space with Valid Objects" metric in
AL12 -> "monitor -> buffers -> table buffer -> overview"
The stats given in "AL12 -> monitor -> buffers -> table buffer -> all generic tables/all single-buffered tables" appear to match the stats of ST10,
however, AL12 is more granular, listing each area of generic buffering rather than aggregating by table name (i.e. there is no such thing as a
"multiple" state in "AL12 -> monitor -> buffers -> table buffer -> all generic tables/all single-buffered tables")
Additional/Misc Notes
SAP Note 1099937 - Improved diagnosis options for buffer synchronization.
SAP Note 2253735 - Fragmentation in the table buffer (Includes enhancements to the AL12 > "Monitor -> Buffers -> Table Buffer -> Shared
Memory" screen).
Web-Based Interfaces
This page is used for the HTTP analysis, Web based application area, Fiori, CRM Web GUI,EP Portal Performance analysis. etc.
Httpwatch
HttpWatch is a third-party browser plugin which can be used to trace the HTTP/HTTPS traffic between the browser and server triggered by each
action you take within a web application. It can be downloaded via http://www.httpwatch.com/download/.
This tool can be used to capture trace le for scenarios that have a performance issue and get *.hwl les for further analysis.
Using HttpWatch
This is custom documentation. For more information, please visit the SAP Help Portal 91
9/2/2024
How to Save HttpWatch Trace automatically
1817693 - How to trace the ITS Service "WEBGUI" directly using HttpWatch
Fiori Performance
Nearby Technologies
2424394 - Using HTTP trace and ABAP trace to diagnose slow response on customer portal
Browser caching is an important part of Fiori Launchpad performance, as it's explained in the following SAP Notes:
2447857 - Fiori Launchpad: How to check browser settings for better performance
Static
There are "static" resources like MIME, js, css, that need to be fetched once (on the rst launch), after which they are untouched for the duration
of the caching .
Dynamic
This is the data that is retrieved via odata services. The odata service are call each time data is request from the backend , this is not cached to
ensure that the data is current.
If an application is loading slowly even when caching is on this maybe due to issue getting data from the backend via odata service.
This can be con rmed by running a HTTPWatch trace and ltering by the longest time . If most time is spent on static object caching may need to
be activated. If the issue is with ODATA service this needs to be checked further.
Whenever you experience slowness, it should be investigated in debug tools of your browser, which resources are slow to load.
With proper caching the static resources should not burn too much time.
This is custom documentation. For more information, please visit the SAP Help Portal 92
9/2/2024
This is custom documentation. For more information, please visit the SAP Help Portal 93