In my previous blog posts Measure your Application’s Performance and Resource Consumption: Evaluate Statistics Records with Transaction STATS and Use Transaction STATS_FE to Analyze the Performance of your Web Application, I have put you as a software developer in charge of your business applications’ performance. Here, performance encompasses end-to-end response time and scalability, which is impacted by your application’s resource consumption. Users expect short response times and high throughput. To meet these non-functional requirements, you need tools to find root causes for poor performance.
With my transaction STATS_FE
, you break down your applications’ end-to-end response times into three main contributors: front end, network, and back end. The ABAP back-end portion is covered by the ABAP kernel’s main statistics records. You display and evaluate them with my transaction STATS
. There you might discover that an individual task in the back end is too slow or requires too many resources. Further, you might conclude that this is due to communication of the ABAP work process executing your applications’ ABAP code with external resources – most prominently the database, but also remote servers accessed via RFC or HTTP calls, or other entities engaged through appropriate interfaces. Beyond this conclusion the back-end statistics records cannot be very helpful. They are a monitoring mechanism and a measurement tool, thus do not contain sufficient detail to identify the root cause.
To pin down bottlenecks and to derive efficient optimization approaches, you need a dedicated analysis tool that captures and logs the communication across the boundaries of the ABAP work process. This is the purpose of the Performance Trace (SAP GUI transaction ST05
), which not only registers the communication with external entities via the relevant interfaces, but also enriches the corresponding records with measurement data (e.g., duration, resource consumption, amount of transferred data). ST05
is the ABAP stack’s interface trace tool. It captures events during application execution that leave a work process to request data or services from external resources, or that enter a work process to perform services for external callers. The set of the ensuing records is a trace of your applications’ outgoing or incoming data transmissions.
ST05
is a tool for the analysis of individual applications and their single user runtime behaviour. It investigate applications with respect to the resources they request from outside of the work process, and is also applicable to services provided for remote clients. ST05
is not suitable for load or mass tests.
The information obtained from ST05
helps you to fulfill the expectations of your software’s users or operators. It identifies hot spots in an application that may be due to …
- … expensive SQL statements
- … unnecessary accesses to the persistence layer
- … long running SAP locks
- … RFC or HTTP issues
In contrast to the statistics records, which are always and autonomously recorded by the ABAP kernel, the ABAP work process’ communications are traced only on demand. Otherwise the associated overhead may slow down applications in productive use too much.
As I have already emphasized in my blog post Measure your Application’s Performance and Resource Consumption: Evaluate Statistics Records with Transaction STATS, the value of your performance analysis depends on the quality of the underlying measurements. You need some preparation to ensure that the captured information accurately and reproducibly reflects the performance of the application. Only then can you derive reliable conclusions.
- Confirm that the test system is configured and customized correctly.
- Verify that the test system is not under high load from processes running concurrently with your analyses.
- Carefully define the business scenario to be tested by your application. It must adequately represent the application’s behavior in production.
- Provide a set of test data that is representative of your productive data. Only then will the scenario execution resemble everyday use.
- Execute the scenario a few times to fill the buffers and caches of all involved components (e.g., DB cache, application server’s table buffer, web browser cache). Otherwise, your recorded traces will not be reproducible, but will capture one-time or first-use effects like loading data into buffers and caches. This may lead you to incorrect diagnoses, or make it more difficult to identify the real issues. It is then much harder to draw reliable conclusions.
After this preparation, you activate the trace recording, then execute the application (this is the measurement run), and afterwards deactivate the trace recording. Next display the trace. The subsequent evaluation of the trace records will identify hot spots and bottlenecks of your application that are caused by the communications and associated data transmissions of the ABAP work process with external resources.
List of Blog Posts on ST05
In a sequence of individual posts, I plan to cover the main features of ST05
, to explain the necessary technical background, and to share best practices for efficiently working with the tool.
- Basic Use
How do you work with the tool? - Technical Background of Trace Recording and Analysis
What is the technology behindST05
and how does it affect its behaviour? - Trace Directory
How do you save and recover traces? - Advanced Features of
ST05
- Activate Trace Recording with Filter
How can you control the trace recording? - Aggregate Trace Records
How do you aggregate individual trace records to get a better overview? - Analyze Individual Trace Records
What can you learn about the processing of communication steps?
- Activate Trace Recording with Filter
(The blog posts with links are already available, the others are in progress or planned. Please visit this blog post regularly and check for updates.)
Examples shown in these blog posts were recorded while running the transactional S/4HANA Fiori application F0997 (Audit Journal) from the Finance line of business in an internal test system. The test case displayed the changes for Company Code 1010 and Fiscal Year 2023.
Transaction ST05
is part of SAP_BASIS since decades. I am continuously improving it and in this series of blog posts I am presenting the tool’s state for SAP NetWeaver 7.58 as of early 2023. Depending on your system’s release, some of the features may not yet be available.
References
My SAPinsider article on transaction ST05
:
Manfred Mensch:
Track Down the Root of Performance Problems with Transaction ST05
Previous blog posts related to ST05
:
Siegfried Boes:
The SQL Trace (ST05) Quick and Easy
Randolf Eilenberger:
Code Inspector Integration into SQL Trace of ST05
My blog posts on transactions STATS
and STATS_FE
:
Manfred Mensch:
Use Transaction STATS_FE to Analyze the Performance of your Web Application
Manfred Mensch:
Measure your Application’s Performance and Resource Consumption: Evaluate Statistics Records with Transaction STATS