performance tuning settings

13
1 Cognos 8 Performance Tuning Settings This document describes some properties and settings that can be considered to optimize Cognos 8 performance. The information in this document is intended to act as a guideline and is subject to change based on continued testing of Cognos 8. 1.1 Server Administration (in Cognos Connection) Through Cognos Connection, services can be modified to change the performance behavior of the Cognos 8 configuration. From the Cognos Connection home page, navigate to the Server Administration tab. 1.2 How do I make changes to a Cognos 8 environment? A prerequisite activity to tuning a Cognos 8 environment is to understand the associated hierarchy of components and services. Making Changes at the Global ReportNet Environment Level:

Upload: cognosdw

Post on 26-Mar-2015

586 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Performance Tuning Settings

1 Cognos 8 Performance Tuning Settings

This document describes some properties and settings that can be considered to optimize Cognos 8 performance. The information in this document is intended to act as a guideline and is subject to change based on continued testing of Cognos 8.

1.1 Server Administration (in Cognos Connection)

 Through Cognos Connection, services can be modified to change the performance behavior of the Cognos 8 configuration. From the Cognos Connection home page, navigate to the Server Administration tab.

1.2 How do I make changes to a Cognos 8 environment?

A prerequisite activity to tuning a Cognos 8 environment is to understand the associated hierarchy of components and services.

Making Changes at the Global ReportNet Environment Level:

In a distributed topology, you will have 2 or more servers and each server will have a dispatcher and a subset of Cognos 8 services (such as a ReportService, etc).

Page 2: Performance Tuning Settings

If you want to make a common set of parameter changes throughout the entire Cognos 8 environment, you can do so by navigating:

Server Administration -> Configure tab -> Properties – Configuration icon

1. Click the Settings tab.2. Change the category to Tuning.3. Change the settings according to your environment specifications. Please see

the “What and Why” section below for more detail around specific settings and the impetus for changing them. The screenshot below indicates the recommended starting point configuration for an environment with quad processor Cognos 8 application servers.

4. In order to propogate the settings that were changed in Step 3, you must check the “Delete the configuration setting of all child entries” check box.

Configure tab Properties – Configuration icon

Check this to override all dispatcher and services settings in the Cognos 8

Page 3: Performance Tuning Settings

This will override all settings for each dispatcher and services in the Cognos 8 environment.

Note – It is understood that not all servers in a Cognos 8 environment will be of the same specification. If you need set settings at more granular level to accommodate, see the “Making Changes at the Cognos 8 Dispatcher Level” or “Making Changes at the Cognos 8 Services Level”.

1.3 Making Changes at the Cognos 8 Dispatcher Level:

In a distributed topology, you will have 2 or more servers and each server will have a dispatcher and to manage the request flow of your Cognos 8 application. The dispatcher is responsible for routing requests to the services configured on a particular Cognos 8 server.

You can elect to make changes for a particular Cognos 8 server and override those settings configured at the Global environment level (See “Making Changes at the Global Cognos 8 Environment Level” section.

Note - This may be especially important if you have servers of different capacity and need to make granular changes to the specific servers in your environment.

If you want to make a common set of parameter changes to a particular Cognos 8 server, you can do so by navigating:

1. Server Administration -> Monitor tab -> Dispatchers radio button

2. To change the properties for a particular Cognos 8 server, click the Settings icon associated to it in the Server list box.

3. Change the settings according to the Cognos 8 server’s specifications. Please see the “What and Why” section below for more detail around specific settings and the impetus for changing them.

Dispatchers radio button

Cognos 8 Server list boxSettings icon

Page 4: Performance Tuning Settings

Let’s go back to our earlier example of a Cognos 8 environment configured with quad processor servers. Suppose that increased usage is expected warranting that the quad processor environment is to be supplemented with an additional 8-way server to compensate for the increased load.

The screenshot below indicates the recommended starting point configuration for the additional 8-way Cognos 8 server added to the environment.

Note – I would still want all my other servers to be configured with 4-way capacity. Changing the settings at the Cognos 8 server level will maintain all the other settings while tuning the 8-way accordingly.

4. In order to propagate the settings that were changed in Step 3, you must check the “Delete the configuration setting of all child entries” check box. This will override all settings for the Cognos 8 server.

2 Making Changes at the Cognos 8 Services Level:

Check this to override all services settings on the particular Cognos 8 server

Setting depicted is based on having an 8-way server(2 * 8 processors)

Page 5: Performance Tuning Settings

2.1 What and Why I Should Tune For Optimal Performance and Scalability?

There are 11 services that can be tuned and are listed as follows: AgentService BatchReportService ContentManagerService DeliveryService EventManagementService JobService MonitorService PresentationService ReportService SystemService

 Adjusting for peak vs. off-peak usage may benefit from changing the properties for:

ReportService - used for interactive usage (user driven, on-demand) BatchReportService - used for scheduled operations JobService and DeliveryService – use in relationship to the BatchReportService

Before specific Cognos 8 performance tuning settings are discussed, it is important to understand the purpose of several key concepts. At this point, we need to understand the nature of request affinity connections:

A high affinity requests is one that can be executed on any report server but would be most efficiently executed on a specific report server - page down on an interactive report is a great example of this. If the same report server is used, we scroll the existing database cursor and render the page. If another report server is used the query would have to be re-run to perform the action.

A low affinity request is one that can be completed with the same efficiency by any report server - running a report is a great example. Low affinity requests will be balanced across the available Cognos 8 server (i.e. across the computers running Cognos 8).

There are also absolute affinity requests. These are requests that can only be executed by a given report server - cancel report execution is a great example of this. You can only cancel a report on the server running it. By its very nature, absolute affinity requests are just that – absolute, therefore tuning parameters for this type of request are not exposed in Cognos 8 to avoid redundancy.

In addition to the nature of request affinity, it is also important to understand how the requests are disseminated in the Cognos 8 releases. The dispatcher will use all available threads on one report server before using another server. Therefore, it is critical to balance the mixture of report services and threads within a service based on the characteristics of the application being optimized.

The following will discuss settings specific to the Report and Batch Report services.

High Affinity Connections per Report Server process:

Based on Cognos testing with Cognos 8, a good starting point for high affinity connection handling is to set the “high affinity” connections setting to 1. For

Page 6: Performance Tuning Settings

more information about affinity connections, please see Appendix A – List of Affinity Connections.

Note – This value is a “per process” setting. See the “Maximum Report Service Processes” section.Low Affinity Connections per Report Server process:

Based on Cognos testing with Cognos 8, a good starting point for low affinity connection handling is to set the “low affinity” connections setting to 2. For more information about affinity connections, please see Appendix A – List of Affinity Connections.

Note – This value is a “per process” setting. See the “Maximum Report Service Processes” section.

Maximum Report Service Processes:

Based on Cognos testing with Cognos 8, it may be advantageous to reset the "maximum" number of interactive services to 2 per processor (possibly 3 if you have fast processors). 

Note – This recommended value is based on the number of processors (cpu’s) available on your system. Therefore a system with 16 processors should have this value set as a starting point in the range of 32 (2 process * 16 processors) to 48 (3 processes * 16 processors).

Queue time limit:For the Report Service, the queue time limit refers to the maximum amount of time that a request will wait for a report service connection when all connections are in use. The request will be queued until a connection is available, or up to the configured number of seconds dictated by the queue time limit setting. If no connection is available within the configured time limit, the user will be notified that the request cannot be completed because no resources are available within the given time constraints.

Note - The default is 240 seconds.

In general, recent lab testing of Cognos 8 has indicated that report servers are optimized when the requests are spread across multiple processes not concentrated all on a single process – more processes with fewer connections performs better than a small number of report processes with many connections. If the system is not being fully utilized, add more processes before adding additional connections within a process.

The following will discuss settings specific to the Job and Scheduling service. The Job and Scheduling service is directly related to the Batch Report service and should be considered in tandem:

Maximum Jobs During Non-Peak Period:

Page 7: Performance Tuning Settings

Based on Cognos testing with Cognos 8, it may be advantageous to reset the "maximum" number of jobs to “maximum number of batch report service processes” * “number of low affinity connections (Batch Report service)”.

E.g.) Given a quad processor report server and the maximum set to 8, set this to 8 x 2 = 16 jobs. 

Maximum Jobs During Peak Period: 

This setting is important to relate batch and scheduled activities to interactive usage. If scheduled activities are performed during non-peak periods, then this setting can be skipped.

Web Application Server Tuning Parameters 

3 Apache Tomcat

The following discusses guidance related to using Apache Tomcat as a Web Application Server:

Apache Tomcat memory settings can be configured through the Cognos Configuration UI (3 configuration choices - small, medium and large) or through the startup.bat file as per custom settings defined by <CUSTOMER_NAME> Corp.

If you decide to start the Tomcat service through Cognos Configuration, the selected UI settings will take hold.

If you decide to use the startup.bat file, the custom settings within the file will take hold.

Both the configuration tool and the startup.bat file accomplish the same thing. The Cognos Configuration tool sets it for the service, whereas the startup.bat file sets it for manual start via a batch file.

In either case, the memory settings are used to set the java.exe process (JVM size), which relates to the memory available for use by the Cognos ReportNet dispatchers.

For additional settings with respect to Apache Tomcat, you can adjust the “coyote” settings in the server.xml file. Cognos internal testing has indicated that setting the maxProcessors setting to 1000 connections instead of the default 75 may be advantageous to performance and scalability. This will determine the number of available threads that can be handled by the Apache Tomcat process. Also, changing the acceptCount from 100 to 500 is recommended.

Before:

<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --><Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="9300" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="9443" acceptCount="100" debug="0" connectionTimeout="60000" useURIValidationHack="false" disableUploadTimeout="true"/>

Page 8: Performance Tuning Settings

After:

<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --><Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="9300" minProcessors="5" maxProcessors="1000" enableLookups="true" redirectPort="9443" acceptCount="500" debug="0" connectionTimeout="60000" useURIValidationHack="false" disableUploadTimeout="true"/>

Depending on the specific application requirements of <CUSTOMER_NAME>, it is important to monitor and adjust setting to optimize the Web Application Server (i.e. Apache Tomcat).

Appendix A: Requests By Affinity Type

The following is a list of requests or actions by affinity type. Depending on your application requirements and the associated usage characteristics, an understanding of the predominant request types will impact the Cognos 8 performance tuning parameters and how they should be set.

Absolute Affinity:

getOutput release wait

High Affinity:

back email firstPage forward lastPage nextPage previousPage print render save saveAs

Low Affinity:

add collectParameterValues execute getMetadata getParameters query testDataSourceConnection update validate

Page 9: Performance Tuning Settings

Absolute affinity would accept absolute and high affinity requests only. Low affinity connections would accept all report service requests

The "cancel" operation is treated especially since we have connections for cancels only. Think of it as a special case of absolute affinity.

4. Enabling Concurrent Query Execution to improve report run performance in Cognos 8

"By default, Cognos 8 executes queries in a report sequentially. Depending on the environment, [it] may be able to improve report run performance by enable concurrent query execution. It can be done by setting advanced server properties for the report service, the batch report service, or both. When concurrent query execution is enabled, the report server determines which queries in the report can be run concurrently."

Three parameters that need to be added for the report service, the batch report service, or both:

RSVP.CONCURRENTQUERY.NUMHELPERSPERPROCESS , RSVP.CONCURRENTQUERY.MAXNUMHELPERSPERREPORT , and RSVP.CONCURRENTQUERY.ENABLEDFORINTERACTIVEOUTPUT

4.1 RSVP.CONCURRENTQUERY. NUMHELPERSPERPROCESS:

Use this parameter to enable concurrent query execution and set the maximum number of queryexecution helpers for each report service or batch report service process.The default value is 0, meaning that the concurrent query execution disabled.Each query execution helper results in an additional data source connection. For example, a reportservice has four processes with two high affinity connections and two low affinity connections:● If the maximum number of query execution helpers is set to 0 (disabled), the maximum numberof data source connections created by the report service is 16 (two low affinity connectionsplus two high affinity connections plus zero query execution helpers times four processes).If the maximum number of query execution helpers is set to 2, the maximum number of datasource connections created by the report service is 24 (two low affinity connections plus twohigh affinity connections plus two query execution helpers times four processes).

4.2 RSVP.CONCURRENTQUERY. MAXNUMHELPERSPERREPORT:

Use this parmater to specify the maximum number of query execution helpers for each report. Thisparameter is used to prevent a single report from consuming all available query execution helpers.

Page 10: Performance Tuning Settings

For example, a report has eight queries that can run concurrently:● If RSVP.CONCURRENTQUERY.NUMHEL PERSPERPROCESS and RSVP. CONCURRENTQUERY.MAXNUMHELPERSPER REPORT are both set to four, the report consumesall query helpers when executed. No other report is able to run queries concurrently until thereport has finished executing.● If RSVP.CONCURRENTQUERY.MAXNUM HELPERSPERREPORT is set to two instead,the report consumes two query helpers, leaving two for other reports to use.The default value for this parameter is 1.This setting has no effect unless RSVP.CONCURRENTQUERY.NUMHELPERSPER PROCESSis set to greater than 0.

4.3 RSVP.CONCURRENTQUERY. ENABLEDFORINTERACTIVEOUTPUT:

Use this parameter to enable concurrent query execution when the report service is producinginteractive output.For interactive reports, if concurrent query execution is enabled, some queries may be unnecessarilyexecuted because the results are not used. For example, all the queries for a multi-page report mayexecute with at least one query on each page, but the user may view only the first page. If you donot want to use resources for results that are not used in interactive reports, disable this parameter.Authored prompt pages are not interactive output and are not affected by this setting.The default value for this parameter is false, meaning disabled.

4.4 RSVP.PROMPT.EFFECTIVEPROMPTINFO.IGNORE:Use this parameter to disable the issuing of effectivePromptInfo attribute in metadata requests andeffectively disable moving the prompt information from under the caption attribute of a level tothe level itself.

The default value for this parameter is false, meaning disabled.

Steps1. Start IBM Cognos Connection.2. In the upper-right corner, click Launch, IBM Cognos Administration.3. On the Status tab, click System.4. In the upper-left corner of the Scorecard pane, click the arrow to view the Change view menu.Click Services, and then click (All).5. Click the arrow for the Actions menu next to a Report or Batch report and click Set properties.6. Click the Settings tab.7. Click the set properties button for the report or the batch report service.8. Click the Settings tab.

Page 11: Performance Tuning Settings

9. Click Edit next to Advanced Settings.10. Select Override the settings acquired from the parent entry.11. In the Parameter column, enter a parameter name.12. In the Value column, enter the setting that you want to use.13. Click OK.14. On the Set properties page, click OK.