Register Login

What is Response time and how it is calculated in STAD/ST03.

Updated May 18, 2018

'Response time' refers to the time that it takes to process a request. The time measurement starts when a request reaches the ABAP application server and ends when processing is completed and the answer is sent to the front end. In other words: The response time refers to the time that it takes until a user receives a response from the server.

The ABAP kernel measures the response time.  The result is saved with the statistic records. The following fields in the statistic record are important in this context:

  • RESPTIME: Response time
  • QUEUETIME: Wait time in the dispatcher wait queue
  • ROLLINTI: Time for loading a user context (roll-in)
  • ROLLOUTTI: Time for unloading a user context (roll-out)
  • ROLLED_OUT: Wait time during request processing in which the user context has been unloaded


All times are written in microseconds, but displayed in milliseconds in STAD/ST03n.

A request is processed in the ABAP application server. The following steps are important with regard to the measurement of the response time (also see the diagram in the attachment of this note):

1. The dispatcher assigns each request to a free work process (WP). It may take some time until a request can be assigned to free a work process. This wait time is specified as QUEUETIME (wait time in the dispatcher wait queue).

2. After the request has been assigned to a WP, the measurement of the response time starts in the WP.

3. Before the WP can be processed in the WP,  the relevant user context has to be loaded (roll-in). The time for this process is measured by the roll-in time (ROLLINTI) in parallel to the response time.

4. The measurement of the response time in in the WP ends when the response is sent to the front end. However, there are further actions in the WP that are still part of this dialog step. In particular, the user context still has to be rolled out of the work process. This is measured by the roll-out time. As the user does not have to wait for this roll-out, the roll-out time (ROLLOUTTI) is not part of the response time.

5. In case of remote communication, the user context may be rolled out of the WP so that the WP is free for the next request if it is no longer required for the last request. This is the case if the response of a server is not provided after 500 milliseconds at the most. The period between the roll-out and the roll-in is called rolled-out time (ROLLED_OUT). The rolled-out time is subtracted from the response time.

6. If the response from the remote server reaches the application server, the dispatcher must first assign the request to the work process again.  In this process, there may be further wait time in the dispatcher wait queue (QUEUETIME). The user context has to be loaded in the work process (roll-in).  The time that is required for this process is added to the queue time or the roll-in time.

The total response time (RESPTIME) is the total of the response time, which was measured in the WP, and the dispatcher wait time (QUEUETIME). The time for the roll-in and roll-out is measured separately and must not be added.

  • RESPTIME: Response time (time in the WP + time in the dispatcher wait queue)
  • QUEUETIME: Wait time in the dispatcher wait queue; already contained in RESPTIME.
  • ROLLINTI: Time to load a user context (roll-in); already contained in RESPTIME.
  • ROLLOUTTI: Time to unload a user context (roll-out); not contained in RESPTIME.
  • ROLLED_OUT: Wait time during request processing in which the user context has been unloaded; not contained in RESPTIME.

Transaction STAD (display of statistical records) displays the following times:

  • Response Time,
  • Time in WP
  • Wait Time
  • Roll-In Time
  • Roll-Out Time
  • RollWait Time

These times are calculated from the values of the statistical records as follows:

  • Response Time = RESPTIME + ROLLED_OUT
  • Time in WP    = RESPTIME - QUEUETIME
  • Wait Time     = QUEUETIME
  • Roll-In Time  = ROLLINTI
  • Roll-Out Time = ROLLOUTTI
  • RollWait Time = ROLLED_OUT

 


×