You are on page 1of 15

Proven Practice

IBM Cognos 8 Performance


Tuning Settings
Product(s): IBM Cognos 8
Area of Interest: Performance
IBM Cognos 8 Performance Tuning Settings 2

Copyright
Copyright © 2008 Cognos ULC (formerly Cognos Incorporated). Cognos ULC
is an IBM Company. While every attempt has been made to ensure that the
information in this document is accurate and complete, some typographical
errors or technical inaccuracies may exist. Cognos does not accept
responsibility for any kind of loss resulting from the use of information
contained in this document. This document shows the publication date. The
information contained in this document is subject to change without notice.
Any improvements or changes to the information contained in this document
will be documented in subsequent editions. This document contains
proprietary information of Cognos. All rights are reserved. No part of this
document may be copied, photocopied, reproduced, stored in a retrieval
system, transmitted in any form or by any means, or translated into another
language without the prior written consent of Cognos. Cognos and the
Cognos logo are trademarks of Cognos ULC (formerly Cognos Incorporated)
in the United States and/or other countries. IBM and the IBM logo are
trademarks of International Business Machines Corporation in the United
States, or other countries, or both. All other names are trademarks or
registered trademarks of their respective companies. Information about
Cognos products can be found at www.cognos.com
This document is maintained by the Best Practices, Product and Technology
team. You can send comments, suggestions, and additions to
cscogpp@ca.ibm.com .

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings 3

Contents
1 IBM COGNOS 8 PERFORMANCE TUNING SETTINGS..................................... 4
1.1 SERVER ADMINISTRATION (IN IBM COGNOS CONNECTION) ...............................................4
1.2 HOW DO I MAKE CHANGES TO A IBM COGNOS 8 ENVIRONMENT? .........................................4
Making Changes at the Global IBM Cognos 8 Environment Level: .......................................4
1.3 MAKING CHANGES AT THE IBM COGNOS 8 DISPATCHER LEVEL: ..........................................6
2 MAKING CHANGES AT THE IBM COGNOS 8 SERVICES LEVEL: ..................... 9
2.1 WHAT AND WHY I SHOULD TUNE FOR OPTIMAL PERFORMANCE AND SCALABILITY? ...................9
3 APACHE TOMCAT......................................................................................... 12
APPENDIX A: REQUESTS BY AFFINITY TYPE ........................................................ 14

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings 4

1 IBM Cognos 8 Performance Tuning Settings


This document describes some properties and settings that can be considered
to optimize IBM 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 IBM Cognos 8.

1.1 Server Administration (in IBM Cognos Connection)


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

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

A prerequisite activity to tuning a IBM Cognos 8 environment is to understand


the associated hierarchy of components and services.

1.2.1 Making Changes at the Global IBM Cognos 8 Environment Level:

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

If you want to make a common set of parameter changes throughout the


entire IBM Cognos 8 environment, you can do so by navigating:

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings 5

1. Server Administration -> Configure tab -> Properties – Configuration


icon

Configure tab Properties – Configuration

2. Click the Settings tab.


3. Change the category to Tuning.
4. 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 IBM Cognos 8 application servers.

Setting depicted is based on


having an 4-way server
(2 processes per CPU)

Check this to override all dispatcher and services

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings 6

5. 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 each dispatcher and
services in the IBM Cognos 8 environment.

Note – It is understood that not all servers in a IBM 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 IBM Cognos 8
Dispatcher Level” or “Making Changes at the IBM Cognos 8 Services Level”.

1.3 Making Changes at the IBM 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 IBM Cognos 8
application. The dispatcher is responsible for routing requests to the services
configured on a particular IBM Cognos 8 server.

You can elect to make changes for a particular IBM Cognos 8 server and
override those settings configured at the Global environment level (See
“Making Changes at the Global IBM 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 IBM


Cognos 8 server, you can do so by navigating:

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

Dispatchers radio button

Settings icon
IBM Cognos 8 Server list box

2. To change the properties for a particular IBM Cognos 8 server, click


the Settings icon associated to it in the Server list box.

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings 7

3. Change the settings according to the IBM 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.

Let’s go back to our earlier example of a IBM 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 IBM Cognos 8 server level will
maintain all the other settings while tuning the 8-way accordingly.

Setting depicted is based on


having an 8-way server
(2 processes per CPU)

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

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings 8

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 IBM Cognos 8 server.

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings 9

2 Making Changes at the IBM Cognos 8 Services Level:


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 IBM 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 IBM Cognos 8 server (i.e.
across the computers running IBM 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 IBM Cognos 8
to avoid redundancy.

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings
10

In addition to the nature of request affinity, it is also important to understand


how the requests are disseminated in the IBM 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 testing with IBM Cognos 8, a good starting point for high affinity
connection handling is to set the “high affinity” connections setting to 1. 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.

Low Affinity Connections per Report Server process:

Based on testing with IBM 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 testing with IBM 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 of 32 (2 processes * 16
processors).

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings
11

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 IBM 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:


Based on Cognos testing with IBM 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)”

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.

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings
12

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 IBM


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.

o If you decide to start the Tomcat service through IBM Cognos


Configuration, the selected UI settings will take hold.
o If you decide to use the startup.bat file, the custom settings
within the file will take hold.
o Both the configuration tool and the startup.bat file accomplish
the same thing. The IBM Cognos Configuration tool sets it for
the service, whereas the startup.bat file sets it for manual start
via a batch file.
o 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 IBM Cognos dispatchers.

• For additional settings with respect to Apache Tomcat, you can adjust the
“coyote” settings in the server.xml file. Internal testing has
indicated that setting the maxProcessors setting to 1000 connections
instead of the default 800 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="800" enableLookups="true"
redirectPort="9443" acceptCount="100" debug="0"
connectionTimeout="60000" useURIValidationHack="false"
disableUploadTimeout="true"/>

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"/>

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings
13

• 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).

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings
14

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 IBM 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

High 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.

IBM Cognos Proprietary Information


IBM Cognos 8 Performance Tuning Settings
15

IBM Cognos Proprietary Information

You might also like