Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
ManfredMensch
Product and Topic Expert
Product and Topic Expert
6,053

In my previous blog posts Measure your Application's Performance and Resource Consumption: Evaluate Statistics Records with Tr... 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 business data 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 or analyze root causes.

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 values (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 investigates 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 (enqueues)
    • … 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 Tr..., 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.

    1. Confirm that the test system is configured and customized correctly.
    2. Verify that the test system is not under high load from processes running concurrently with your analyses.
    3. Carefully define the business scenario to be tested by your application. It must adequately represent the application’s behavior in production.
    4. Provide a set of test data that is representative of productive data. Only then will the scenario execution resemble everyday use.
    5. 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). Without these pre-runs or warm-up runs, 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 cover the main features of ST05, explain the necessary technical background, and share best practices for efficiently working with the tool.

    1. Basic Use
      How do you work with the tool?
    2. Technical Background of Trace Recording and Analysis
      What is the technology behind ST05 and how does it affect its behaviour?
    3. Trace Directory
      How do you save and recover traces?
    4. Advanced Features of ST05

        1. Analyze Individual Trace Records
          What can you learn about the processing of communication steps?
        2. Activate Trace Recording with Filter
          How can you control the trace recording?
        3. Aggregate Trace Records
          How do you aggregate related trace records to get a better overview?
    5. Application Programming Interface
      How do you use ST05 capabilities in your own ABAP programs?


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


I have published several articles in SAPinsider which are relevant to measuring and analyzing the performance of ABAP applications:


The copyright to these three articles is with SAPinsider and they appear here with permission from the publisher.

There are two previous blog posts related to ST05, based on an older SAP_BASIS release, but still useful:


Refer to my blog posts on transactions STATS and STATS_FE for measuring your application's end-to-end response time and resource consumption:

 

6 Comments