51
Produced by Wellesley Information Services, LLC, publisher of SAPinsider. © 2015 Wellesley Information Services. All rights reserved. Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards Johann Kottas Xoomworks

Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

  • Upload
    bulent

  • View
    201

  • Download
    4

Embed Size (px)

DESCRIPTION

Analysing and Troubleshooting PerformanceIssues in SAP BusinessObjects BI Reports andDashboards

Citation preview

Page 1: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

Produced by Wellesley Information Services, LLC, publisher of SAPinsider. © 2015 Wellesley Information Services. All rights

reserved.

Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

Johann Kottas Xoomworks

Page 2: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

1

In This Session

• We assess how to approach where time is spent for report refresh, dashboard execution, prompt generation, or other activities within BI launchpad portal to aid the exercise to increase performance and enhance user experience

• This session will provide methods to gather and interpret information from trace functionality, http statistics, BW transaction info, or other statistics and find out which technique to use to distinguish time spent per processing layer

• Delays can appear from unexpected elements; see how to discover potential bottlenecks with real-life examples and evaluate components in the architectural workflow that influence execution times

• Pinpoint the source of slow response times in your reports and dashboards – whether it’s content design, server resources/configuration, back-end execution, or specific code line calls that require optimization

Page 3: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

2

What We’ll Cover

• Discovering how much time is spent per processing layer to aid any tuning efforts

• Gathering end-to-end statistics for multiple workflows

• Tips on which tools can aid the exercise of separating total runtime into different

processing parts

• Wrap-up

Page 4: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

3

The Significance of Discovering How Much Time Is Spent Per Processing Layer to Aid Any Tuning Efforts

• Architectural workflows within SAP BusinessObjects Enterprise can be complex

• When users raise performance concerns, it is often a challenge to distinguish if the root cause is due to:

Inefficient report design

Insufficient server capacity

Incorrect environment settings or misconfiguration

Poor distribution of servers across cluster

Inadequate or inefficient heap assignment

Suboptimal configuration of servers within CMC

Other factors (e.g., inefficient query, network latency, etc.)

• Initial concern is often lack of server resources; such concerns can be easily verified and validated

Page 5: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

4

Methodology

• Start by analyzing a workflow in isolation

Is active concurrency a factor in performance degradation?

• Once you’ve got a steady measurement, analyze all processing layers involved and work out how to capture time spend per layer

How much time spent running the query?

How much time spent bringing data back?

How much time spent building each page?

• This will aid tuning efforts and will help pinpoint the need to revisit:

Content design: Are you trying to fit too much in one report?

Environment sizing or configuration: Additional resources required?

Customization or call stack: Case for code optimization

Page 6: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

5

What We’ll Cover

• Discovering how much time is spent per processing layer to aid any tuning efforts

• Gathering end-to-end statistics for multiple workflows

• Tips on which tools can aid the exercise of separating total runtime into different

processing parts

• Wrap-up

Page 7: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

6

Gathering End-to-End Statistics for Multiple Workflows

• Web Intelligence refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on

SAP BW

• Web Intelligence refresh via JDBC to SAP HANA sidecar

• SAP BusinessObjects Design Studio refresh via JDBC BICS to HANA

• AD or SAP logon into BI launchpad

• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on SAP BW

Page 8: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

7

Web Intelligence Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on SAP BW

• Web Intelligence (WebI) is an ad hoc query and analysis application that allows end users to define queries and design reports or to modify existing reports depending on requirements

• To optimize report performance or find potential bottlenecks:

Identify which processing layers are involved

This depends on the nature of the data source and connection

E.g., DSL Bridge APS for BEx queries against BW

Use different means depending on workflow to capture call stack and query stats

Make use of SAP client plugin – Solution Manager

Tag each step with a unique ID

Businesstransaction.xml will specify ID

Page 9: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

8

End-to-End Analysis via SAP Client Plug-In

• Search via business transaction ID to find out which services were involved

SAP SolMan Client Plugin

Notepad ++

Which service is missing from this

output for this workflow?

Page 10: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

9

Web Intelligence Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on SAP BW

• For a WebI refresh, there will be an initial HttpServletRequest from the client to the Tomcat application server

You can find this thread in the BI launchpad trace file

• Depending on the nature of the content, the server required for this request will be invoked

For a WebI report, you will see an initial incoming call into the Web Intelligence Processing Server

Next, you can follow the function call stack which will involve other services

CMS (for security and core processing queries)

STS (to resolve SSO to DB, which in our scenario, will be PSE trust in BW)

DSL Bridge (DSL Outline service uses BICS layer of SAP engine to retrieve BEx queries; transient unv)

• Once you have an overview of the architectural workflow involved, you can determine the best method to pinpoint where time is spent during refresh

• Always take several measurements without any traces to establish a baseline. Once you have a steady measurement, determine the overhead introduced by the traces and factor this into your final assessment.

Page 11: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

10

Three-Tier Architecture

• Clients will communicate with WebI Report Server via HTTP

• Servlet or SDK will translate the message into CORBA calls. On the inside of the WebI Report Server, different components will communicate with each other.

• The Report Engine (also called RepEng) manages the visual form of a native Web Intelligence (.WID) document and is also in charge of generating formatted reports in external formats, e.g., Excel, PDF, etc.

• The Information Engine is the logical component in charge of calculating report data

Interacts closely with Report Engine to render the document

Contains sub-components such as:

Calculator (CALC)

Local Database (LDB)

Query Facility (QF)

Data Provider manager (DP manager)

Objects Dictionary (Obj. dict.)

Query Expression (QE)

Data Provider Query Technique (DP QT)

• The Drill Engine is responsible for analysing data

Page 12: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

11

Three-Tier Architecture (cont.)

• WIPS components that interact with Web App, Adaptive Processing Server, Job Servers,

and CMS

Source: SAP

Page 13: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

12

Method and Tools

• For WebI refresh via OLAP BICS to SAP HANA on SAP BW, use the following tools to study the workflow:

SAP Client Plug-in and set trace level to low (or activate traces via CMC)

HttpWatch Basic to measure total execution

Can also see the HTTP requests involved

Can check the footprint of static content on your client

Activate ST12 transaction on the user ID executing the query in BW

Only capture RFC calls (at this stage)

• After refresh

Collect BI launchpad, WIPS, DSL Bridge, CMS, and STS traces

Collect ST12 output

Pick up statistics after refresh in ST13/BIIPTOOLS

Save the HttpWatch output

Single Transaction

Analysis

Page 14: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

13

Analyse Phase

• Each service contains different operations

• When bringing the results together, you will see operations such as the

following for WIPS:

DPCommandsEx

answerPrompts

openDocumentMDP

getSessionInfosEx

getMap; getPages; getBlobInfo

• Track the incoming and outgoing function calls from Tomcat layer to WIPS and from

WIPS to other services. For process operations outside the BOE layer, you will get a more

accurate assessment when utilizing the statistics from that particular module or interface.

Page 15: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

14

Analyse Phase (cont.)

• In the illustration below, the relevant time spent per processing parts was brought

together:

Page 16: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

15

Analyse Phase (cont.)

• Total execution time (from HttpWatch) did comprise:

WebI: CMS time

WebI: STS time (in case of SSO to BW)

DSL QXP to BW: Create query execution plan (BICS script) for data retrieval based on report design

HANA in-memory DB operations: Check HANA DB retrieval times (direct dependency on data volumes)

OLAP calculations (most calculations will be processed in OLAP; check possibility to push down to HANA)

OLAP processing: Data is sorted and formatted according to query design

BW BICS times: Receive data from OLAP processor and put into transfer structure in BICS interface

Data transfer from BW to BI Layer

DSL (WebI) BICS time: Data transfer and preparation for WebI usage

WebI processing: Microcube population, report rendering

WebI page generation

Display in BI launchpad and client rendering time

Page 17: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

16

Gathering End-to-End Statistics for Multiple Workflows

• Web Intelligence refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on

SAP BW

• Web Intelligence refresh via JDBC to SAP HANA sidecar

• SAP BusinessObjects Design Studio refresh via JDBC BICS to HANA

• AD or SAP logon into BI launchpad

• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on SAP BW

Page 18: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

17

Web Intelligence Refresh via JDBC to SAP HANA Sidecar

• The method described in the previous slides can also be applied to this workflow; however, the fetch phase for JDBC happens by Web Intelligence Processing Server INPROC. There is no outsourcing to connection server or DSL Bridge – instead, this is handled by the CS JNI Engine inside WIPS.

• To capture the JNI call stack you must update the cs.cfg file under:

<boeinstalldir>/dataAccess/connectionServer

<JavaVM>

<Options>

<Option>-Dtracelog.configfile=<yourFolder>/BO_trace.ini</Option>

<Option>-Dtracelog.logdir=<yourFolder></Option>

<Option>-Dtracelog.name=CSJNIEngine</Option>

</Options>

• If SSO is used, it will either be via SAML or Kerberos AD for JDBC; time spent will show in the WIPS and STS output

Page 19: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

18

CSJNIEngine Output

• The output will be capture in the CSJNIEngine_trace file.

13:46:01.479|+0000|Information| |==| | |CSJNIEngine|14160|1471|Thread-1459

|{|431|4|3|4|BIlaunchpad.WebApp|BOESERVER|webiserver_ACC_PROC_2.WebIntelligenceProcessingSer

ver.processDPCommandsEx|localhost:14160:13844.107885:1|CSJNI.JNIbeforeIncomingCall|

BOESERVER START OUTGOING CALL execute: FROM [CSJNI.JNIbeforeIncomingCall# BOESERVER]-

13:46:01.503|+0000|Information| |==| | |CSJNIEngine|14160|1471|Thread-1459

|}|431|2|3|2|BIlaunchpad.WebApp| BOESERVER

|webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx| BOESERVER

|CSJNI.JNIbeforeIncomingCall| BOESERVER ||CS::JAVA::fetch: 00.025-

13:46:01.505|+0000|Error| |==|E| |CSJNIEngine|14160|1471|Thread-1459

|}|431|3|3|1|BIlaunchpad.WebApp| BOESERVER

|webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx| BOESERVER

|CSJNI.JNIbeforeIncomingCall| BOESERVER ||END INCOMING CALL SPENT [04.029] FROM

[webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx#] TO

[CSJNI.JNIbeforeIncomingCall# BOESERVER]

Page 20: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

19

Gathering End-to-End Statistics for Multiple Workflows

• Web Intelligence refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on

SAP BW

• Web Intelligence refresh via JDBC to SAP HANA sidecar

• SAP BusinessObjects Design Studio refresh via JDBC BICS to HANA

• AD or SAP logon into BI launchpad

• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on SAP BW

Page 21: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

20

SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA

• Use case scenario: User executes a Design Studio Dashboard via OpenDoc syntax from HANA XS portal

Consider all processing layers involved for this workflow

Check for any complexities around the setup of the dashboard

Do separate Design Studio components sit within one iframe?

Are any custom components used (SDK customisation)?

• Key areas for this workflow:

Logon part: Enterprise session generation via OpenDocument web app

JavaScript and other static content processing and cache validation on client side

Session generation for Analysis Application Service

Processing of Design Studio report components, which include: validate security, retrieve report from File Repository, establish JDBC connection to HANA, resolve trust to HANA for SSO, BICS script execution on HANA, data fetching

Page 22: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

21

Design Studio Tiers

Source: SAP

Page 23: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

22

Approach

• Start with HTTP Watch or Fiddler capture and verify the amount of static content downloaded on the client and the total time. Check behaviour against different browsers.

• Verify initial load versus secondary loads (static content should be cached after initial load)

• Make use of profiling: Create OpenDoc link with Design Studio object and add &profiling=X which will give you DS statistics on client rendering and java server time

• Enable Tomcat and Analysis Application tracing (low verbosity to see how long main function calls took)

• Verify network speed and latency

• Capture sufficient executions to get a baseline average and compare the response times for:

Initial load without client cache:

New Enterprise session generation for BOE platform (AD SSO into application layer); all static content (javascript/css) to be loaded onto the client. New CMS queries for security validation.

Initial load with client cache:

New Enterprise session generation for BOE platform (AD SSO into application layer); all static content (javascript/css) is read from local cache. New CMS queries for security validation.

Reload with client cache:

Enterprise session exists already. All static content (javascript/css) is read from cache.

Page 24: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

23

Assess End-to-End Time

• Find the start and end call for your execution in the Tomcat web app output

• Start

12:00:18.950|+0100|Information| |==| | |BIlaunchpad| 4540|1552|http-apr-8443-exec-13| |1|0|1|0|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER |BIPSDK.EnterpriseSession:getService| BOESERVER |com.crystaldecisions.sdk.framework.internal.EnterpriseSession||getService(): service=InfoStore, server=-

• End

12:00:49.954|+0100|Information| |==| | |BIlaunchpad| 4540| 63|http-apr-8443-exec-5|}|24|1|0|1|BIlaunchpad.WebApp| BOESERVER |-|-|BIlaunchpad.WebApp| BOESERVER |HttpServletRequest: 00.046

• This time should match the HttpWatch total time

Page 25: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

24

Assess End-to-End Time (cont.)

• Now bring results together from the AAS and Tomcat web app trace, the BICS profiling

output (java statistics), and HttpWatch capture

• If you use the SolMan Client Plug-in, you can use the business transaction ID to filter out

the communication that belonged to your session

• There are different approaches; when you’re looking for potential bottleneck, zoom into

the most time-consuming calls

Page 26: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

25

Tying Results Together

• Int.do processing from HttpWatch

+ 23.094 15.120 3892 6442 POST 200 html https:// BOESERVER

/BOE/portal/1502261134/zenwebclient/int.do

• Tie it to the corresponding ExecuteBI request in analysis application service trace

12:00:28.121|+0100|Debug| |<<| | |

BOESERVER.AnalysisApplicationServer|13296|157637|Transport:Shared-1439/56|

|23|1|1|1|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER|.executeBIRequest|

BOESERVER|||||interface com.sap.ip.bi.base.application.IApplication|BI-RA-AD|[BICS HANA]Fetch

members for characteristic EVENT_DESCRIPTION-

12:00:42.954|+0100|Debug| |<<| | | BOESERVER|13296|157637|Transport:Shared-1439/56|

|23|1|1|1|BIlaunchpad.WebApp| BOESERVER|BIlaunchpad.WebApp| BOESERVER |.executeBIRequest|

BOESERVER|0|||||interface com.sap.ip.bi.base.application.IApplication|BI-RA-AD|[BICS HANA](14833ms)

Get the crosstab data (GET_CROSSTAB_DATA)-

Page 27: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

26

Analyzing Results

• You can distinguish the CMS core server calls for authentication and security checks from Analysis Application Server and Tomcat web app outgoing calls to CMS

• Same applies for SSO operation (SAML, in this example) dealt by the security token service

12:00:21.847|+0100|Information| |==| | |aps_ACC_PROC_2.AnalysisApplicationService| 3744|184296|Transport:Shared-1170/56|{|383|1|1|2|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER |.START OUTGOING CALL Outgoing: FROM [.executeBIRequest# BOESERVER

12:00:21.972|+0100|Information| |==| | |aps_ACC_PROC_2.AnalysisApplicationService| 3744|184296|Transport:Shared-1170/56|}|411|0|1|2|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER |.executeBIRequest| BOESERVER END OUTGOING CALL Outgoing: SPENT [00.255] FROM [.executeBIRequest# BOESERVER] TO [.getSAMLSSOResponseByHostAndPort# BOESERVER ]-

• There will be many different smaller operations that happen like Creation of controller session, fetching of BIAPP through CORBA layer, creation of components, …

Page 28: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

27

Example of the Execution Breakdown Output

• Total execution time (from HttpWatch) 30.967 sec did comprise:

Logon part: Enterprise session generation via BI launchpad web app: 4.2 sec

Client-side javascript loading, cache validation, supporting files loading: 6.8 sec (loaded from cache)

Session generation for analysis application service (including security calls/InfoStore and CMS time): 1 sec

Processing of Design Studio report components: 18.6 sec

Validate security: 0.5 sec

Set Template: 1.5 sec

Retrieve report from File Repository: 0.3 sec

Establish JDBC connection to HANA: 0.25 sec

Resolve trust to HANA for SSO: 0.25 sec

Process command before rendering: 1 sec

BICS script execution on HANA and data fetching: 14.8 sec

Page 29: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

28

Tomcat Compression/Parallel Processing

• Tomcat Compression will make a substantial performance difference on initial load.

However, be aware of existing product defect ADAPT01704289.

SAP Note 1906557 – Tomcat crash due to EXCEPTION_ACCESS_VIOLATION in the

zip.dll with Java_java_util_zip_ZipEntry_initFields*

• SAP’s development confirmed root of bug lies with JVM/Tomcat. To fix the Tomcat/JVM

compression issue, use the latest SAPJVM 6.1 Patch Collection 65 (build 6.1.070). Verify

supportability perspective.

• Parallel processing for Design Studio is not supported with BW as a back end; to prevent

deadlock scenarios, Design Studio uses a Java-based version of BICS, which has its

advantages and disadvantages over using the web service. The limitation on the parallel

processing comes from the BICS layer, which can only process requests sequentially.

* Requires login credentials to the SAP Service Marketplace

Page 30: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

29

Cache Validation/Custom Components

• Cache validation:

Has impact on initial load times. Cache-Control is configured to 10 years and used in combination with a “Last-modified” property.

After service restart, last modified time gets overwritten

When being in a cluster environment (AAS on different nodes), last modified property won’t be the same for the static include

This results in local browser cache being ignored with user-facing response time penalty of an initial load

Code optimizations have been delivered with the latest Design Studio versions (DS 1.3 SP2 onwards) around handling of static content to add to performance optimization

• Custom components:

Requests and responses to gather resources from SDK components will take longer than normal. This is because SDK components are stored on the BIP as repository objects (DB Blobs) and processing in the web tier will take time.

When these resources have been downloaded and are obtained from the web browser cache on sequential executions, the processing will be far more optimal, as those resources won’t be fetched anymore

Page 31: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

30

Gathering End-to-End Statistics for Multiple Workflows

• Web Intelligence refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on

SAP BW

• Web Intelligence refresh via JDBC to SAP HANA sidecar

• SAP BusinessObjects Design Studio refresh via JDBC BICS to HANA

• AD or SAP logon into BI launchpad

• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on SAP BW

Page 32: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

31

Log-On Mechanism

• Poor perceived performance during logon can be challenging to track down

• There are different types of authentication (Enterprise, SAP, AD, LDAP) client tools, each with their own mechanism, sometimes relying on web services, etc.

Each type uses its own plug-in

There are client-side SDK plug-ins and server-side (CMS) plug-ins

• During user logon, the process starts on the client-side plugin, a communication occurs between the client-side and the CMS plugin. When handshake is complete, the CMS allows the user to log on.

• The activities that the plug-ins perform are different depending on the type of authentication plug-in. However, for all the authentication types, the CMS security sub-system:

Ensures number of users does not exceed the maximum allowed for current license key

Creates a session InfoObject and increments the license count

Creates the log-on token InfoObject (a string used in place of username and password)

Optionally creates the user InfoObject if it does not already exist

Page 33: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

32

Log-On Mechanism (cont.)

• The CMS trace log files contain:

The portion of the authentication process that happens in the server-side plug-in and CMS sub-systems

• During logon with Enterprise authentication, the client-side plug-in (secEnterprise):

Encrypts the user name and password

Puts this in a security buffer

Passes the security buffer to CMS

CMS security sub-system calls the object sub-system to verify user InfoObject exists and pwd matches

If these criteria are satisfied, the user is allowed to log on

• During logon with AD authentication, the secWinAD plug-in on the client side:

Talks to the Domain Controller to authenticate the user

If user is authenticated, a token from the DC gets passed to the server-side secWinAD plug-in on CMS

Server-side plugin verifies the log-on user’s membership by searching through group graph

Group graph includes information about groups and how they relate to each other

Page 34: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

33

AD — SAP Slow Log-On Investigation

• Use case scenario: Users report a delay in the BI Platform logon

With use of an http viewer, monitor the incoming and outgoing traffic on the client

Observing any particular calls taking a long time, you can see time in seconds to complete each request, which protocol used, the amount of bytes received, and if static content is read from the cache

In the example above, a particular call stands out: Vintela request.

https://BOEserver:8443/BOE/portal/1502261134/BIPCoreWeb/VintelaServlet?vint_backURL=%2FInfoView%2Flogon.faces&vint_cms=%40bi4-CMS

Page 35: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

34

Drill into Bottleneck

• Capture the BI launchpad communication on the server

Delay shows within the same function call with no outgoing call to other services

• Make use of network analysis tool to inspect traffic during that call

For this scenario, a network utility (nbstat) revealed a NetBIOS packet querying for a computer name

The root of this delay originated with WINS not being configured on the server and the NetBIOS request pending for each of the 3 NICs on the server until it timed out

Page 36: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

35

Holdup Revealed

• WINS determines the IP address associated with a particular network computer

After disabling WINS on all NICs, nbtstat failed straight away on all three NICs. With no NetBIOS packets left querying the NICSes when accessing /BOE/BI, the SSO was not held up anymore.

• WINS – netbios over TCP/IP – LMHOSTS are mainly for legacy netbios-based apps

• SAP BusinessObjects does not require NetBIOS for authentication, and name resolution should always use DNS

Page 37: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

36

Gathering End-to-End Statistics for Multiple Workflows

• Web Intelligence refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on

SAP BW

• Web Intelligence refresh via JDBC to SAP HANA sidecar

• SAP BusinessObjects Design Studio refresh via JDBC BICS to HANA

• AD or SAP logon into BI launchpad

• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on SAP BW

Page 38: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

37

OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to SAP HANA on SAP BW

• Analysis, edition for OLAP is typically used by business analysts

To evaluate and interact with corporate data via the web

Multi-dimensional workspaces are shared to reach a large audience for consumption

• The MDAS service, which is part of Adaptive Processing Server (APS), processes user requests for this type of content. This service contains different components and operations.

• In this section, we look at elements and factors that can cause delays when processing workspaces

• For a typical aOLAP refresh via BICS to HANA on BW, you can follow the incoming and outgoing function calls from Tomcat layer to MDAS and from MDAS to other services with the same method as outlined in previous sections

• For process operations outside the BOE layer, use BW statistics

Provides a more accurate assessment

Page 39: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

38

Separating Runtime

• Separate the runtime in different processing parts

• Total execution time (from HttpWatch) will comprise:

MDAS: CMS time

MDAS: STS time (if using SSO to BW)

MDAS function calls to prepare execution plan

MDAS function calls for query execution (BICS calls)

HANA in-memory DB operations: Check HANA DB retrieval times (direct dependency on data volumes)

OLAP Calculations (most calculations will be processed in OLAP; check possibility to push down to HANA)

OLAP processing: Data is sorted and formatted according to query design

BICS interface (BI/BW): Receive data from OLAP processor and put into transfer structure in BICS interface

Data transfer from BW to BI Layer

Display in BI launchpad and client rendering time

Page 40: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

39

BICS Profiling

• The generation of BW back-end statistics for Analysis for OLAP workflows can be achieved by enabling BICS profiling. Controlled via a properties file on the BOE server running the MDAS service.

<BOE install dir>\java\pjs\services\MDAS\resources\com\businessobjects\multidimensional\services\mdas.properties

• If multidimensional.services.bics.profiling.enabled is set to true:

OLAP statistics in table RSDDSTAT_OLAP are generated

Data Manager statistics in table RSDDSTAT_DM are generated

• BICS profiling will trigger RSBOLAP_BICS_STATISTIC_INFO function calls when the application is done with a BICS request to retrieve runtime statistics info to store in BW

• This can have an impact on aOLAP performance

Affect prompt display time: Our use case measured 11.5 secs with and 5 secs without profiling

Affect data fetch time: Our use case measured 45 secs with and 32 secs without profiling

Page 41: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

40

Multi-Tabs

• When a BEx Query is connected to multiple sheets in an Analysis for OLAP report, there

will be an overhead in the processing of the non-active tabs

• MDAS will perform the “load query” for ALL tabs and this will affect response times

• Below is an example of a workspace containing 12 sheets

There is only one getRepresentation call

The loadQuery MDAS call occurs for all 11 other sheets too!

Page 42: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

41

Lazy Loading

• SAP Development Group provided code optimisation via ADAPT01730767 to address the overhead in the call stack when using multi-tabs

Analysis for OLAP can delay the loading of each query until it is needed to retrieve data. SAP refers to this as “lazy loading.” To enable lazy loading, make a configuration change in the mdaclient.properties file on the server running Tomcat:

#Configure whether queries are lazy loaded when first accessed to retrieve data or preloaded when the workspace is opened.# query.lazyload=false

• There is another configuration setting on the MDAS stack that SAP refers to as “lazy loading”: this is to prevent pre-load of metadata from BW with MDAS

This setting controls whether metadata hierarchies and attributes are pre-loaded all at once or are lazy loaded when their dimension is expanded

To enable pre-load of metadata, make the configuration change in mdas.properties

multidimensional.services.preload.metadata=true

• Both configuration options can add to performance optimisations

Page 43: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

42

Upgrade Factor and Other Parameters to Consider

• If you take an aOLAP workspace inform from BI 4.0 and open it in BI 4.1, an “in-situ” upgrade of the internal workspace takes place to allow for new capabilities delivered with BI 4.1

This upgrade will result in several seconds delay when first opening the workspace in BI 4.1

This will happen every time the workspace is opened in BI 4.1 until you save the upgraded version

After an upgrade, make sure you open and save the workspace; then, the “in-situ” upgrade will not happen again

• Maximum Member Selector Size and Member Selector Cache Limit tuning

Maximum Member Selector Size by default is set to 100,000 and acts as a safety belt limit

Used for controlling data fetch in the member selector, which means regardless of how many members exist, we never fetch more than this number of members

If you set this parameter to 500, then in the first SQL statement, you will find out if there are more then 500 entries

The Member Selector Cache Limit serves a different purpose

If the member selector size is less than or equal to this limit, then the members will be cached in MDAS for faster access. This is only applicable to flat characteristics.

Page 44: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

43

What We’ll Cover

• Discovering how much time is spent per processing layer to aid any tuning efforts

• Gathering end-to-end statistics for multiple workflows

• Tips on which tools can aid the exercise of separating total runtime into different

processing parts

• Wrap-up

Page 45: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

44

Tools to Aid End-to-End Analysis Exercise

• The activation mechanism and output format are the same for the BIP native servers

• Capturing middleware layer activity will differ depending on connectivity method

• The following tools were used to aid the analysis exercise for the examples outlined in this presentation:

SAP Client Plug-in: SAP E2E trace utility

Wireshark: Network protocol analyzer

HttpWatch: HTTP viewer and debugger

Fiddler: Web debugging tool which logs all HTTP(S) traffic

Process Monitor: Advanced monitoring tool for real-time file system, registry, and process/thread activity

Process Explorer: Utility program that details running processes in visual representation

GLF Viewer: Log viewer

Notepad ++: A source code editor that supports several programming languages

Nbtstat: Diagnostic tool for NetBIOS over TCP/IP

Wily Introscope for SolMan: Tracks actual user and system actions at the function call level via the SDK

Page 46: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

45

What We’ll Cover

• Discovering how much time is spent per processing layer to aid any tuning efforts

• Gathering end-to-end statistics for multiple workflows

• Tips on which tools can aid the exercise of separating total runtime into different

processing parts

• Wrap-up

Page 47: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

46

Where to Find More Information

• Toby Johnston, “BI Platform E2E tracing with Solution Manager E2E Trace Analysis” (SCN, September 2013).

http://wiki.scn.sap.com/wiki/display/BOBJ/BI+Platform+E2E+tracing+with+Solution+Manager+E2E+Trace+Analysis

• Victor Gabriel Saiz Castillo, “Checking out the Apache Split Deployment” (SCN, January 2014).

http://scn.sap.com/community/bi-platform/blog/2014/01/30/checking-out-the-apache-split-deployment

Improving User Experience in SAP BI4 Platform with WDeploy and Apache

• Toby Johnston, “Wily Introscope for BI Platform 4.0: Why it is important and how to get started” (SCN, August 2012).

http://scn.sap.com/community/bi-platform/remote-supportability/blog/2012/08/06/an-administrators-match-made-in-heaven-extend-your-bi-platform-40-monitoring-capabilities-with-wily-introscope

• “Official Product Tutorials – SAP BusinessObjects Business Intelligence Platform 4.x” (SCN, February 2015).

http://scn.sap.com/docs/DOC-8292

Process flows for SAP BusinessObjects 4.x

Page 48: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

47

7 Key Points to Take Home

• Simplify your workflow and get a baseline measurement

• Examine which processing layers are involved

Understand the role of the different services and middleware layer

• Assess how to gather end-to-end statistics for your architectural workflow

• Separate the total runtime into different processing parts

• Be vigilant that delays can appear from unexpected elements

• Verify if active concurrency, data volumes, or core processing play a factor in

performance degradation

• Embark on a tuning exercise based on findings

Content design changes or approach

Addressing server resources, changing distribution, or altering configuration

Code-level optimizations (involve SAP development)

Page 49: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

48

Your Turn!

How to contact me:

Johann Kottas

Email: [email protected]

Please remember to complete your session evaluation

Page 50: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

49

SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other

countries. All other product and service names mentioned are the trademarks of their respective companies. Wellesley Information Services is neither owned nor controlled by SAP SE.

Disclaimer

Page 51: Analysing and Troubleshooting Performance Issues in SAP BusinessObjects BI Reports and Dashboards

Wellesley Information Services, 20 Carematrix Drive, Dedham, MA 02026 Copyright © 2015 Wellesley Information Services. All rights reserved.