To use Cognos product documentation, you must enable JavaScript in your browser.

Cognos 8 Tuning

The way that you use and configure Cognos 8 can affect its performance. For example, you can design models and reports with performance in mind, configure Cognos 8 dispatchers and services for performance, and schedule jobs to make the best use of system resources.

Designing Models and Reports for Performance

Designing and creating models in Framework Manager is an important step in the Cognos 8 workflow . A model specifies, structures, adds to, and manages the metadata used to create reports. For optimal Cognos 8 performance, a modeler can design models that specify default prompting, and that set the query processing type.

Specifying Default Prompting

Models can include reports that prompt the user with a descriptive name while filtering on a code or key value for improved query performance.

You can modify a model to ensure that queries sent to the data source are efficient, well formed, and secure. To ensure optimal performance, the Framework Manager modeler can

For more information, see the Framework Manager User Guide.

Setting Query Processing Type

For relational metadata, you can improve performance by selecting the right type of query processing.

There are two types of query processing:

Although the database server can usually run the SQL and run reports much faster, local processing is sometimes necessary. For example, choose limited local processing if you want to create cross database joins or if you want report authors to use unsupported SQL99 functions.

Some complex queries, such as a query that must generate an At clause to avoid double-counting, require limited local processing. In this case, the query automatically uses limited local processing even if the package was published with database only processing.

For more information, see the Framework Manager User Guide.

Tuning Cognos 8 Dispatchers

Cognos 8 dispatchers manage the distribution of requests. You can monitor Cognos 8 dispatchers using administration options .

In a distributed Cognos 8 environment, there are two or more servers, each with a dispatcher to manage the Cognos 8 request flow. The dispatcher is responsible for routing requests to the services configured on a particular Cognos 8 server.

A Cognos 8 server can be configured to handle a specified proportion of requests. This is especially important if you have servers of different capacity and must make granular changes to specific servers in your environment.

Setting the Process Capacity

Each Cognos 8 dispatcher is assigned a process capacity. It dictates the number of requests that will be handled by a server. By default, request distribution uses a weighted round-robin algorithm that distributes requests equally among all configured dispatchers. In this case, the process capacity for each dispatcher is assigned a weight of 1.0.

The process capacity should be configured according to the relative performance of each server. For example, consider a two-server topology. If all other variables are constant, a quad-processor server should be configured with a processor capacity of 2.0, and a dual-processor server given a processing capacity of 1.0. This means that in the two-server topology, one server receives twice the number of requests as the other.

For more information, see the Administration and Security Guide.

Specifying Advanced Dispatcher Routing

Depending on how your system is set up, you may want to control how reports are distributed among servers. For example, you have different departments that maintain their own servers, or you have specific servers set up for specific data access, such as Windows server for Microsoft SQL Server databases and Linux servers set up for DB2 access. You can set up Cognos 8 so that report requests are processed by specific servers by applying routing rules to specific packages, groups, and roles.

For more information, see the Administration and Security Guide.

Tuning the Report Service, Batch Report Service, and Report Data Service

The report service, batch report service, and report data service have several settings that you can configure to optimize the use of resources.

There are a number of processes associated with the report service and the batch report service . When these services receive requests from the dispatcher, they start processes to handle the requests. You can specify the maximum number of processes that these services can start at any one time.

The number of processes should be configured based on the amount of available capacity provided by Cognos 8 servers. In general, report processing is a CPU-bound process. As a result, the number of CPUs in a server, and the clock rates of those CPUs, are the main variables to keep in mind when adjusting this setting from the default value of 2.

For example, a server with four available CPUs should generally be configured to use more batch report service processes than a server with only two available CPUs. Similarly, given two servers with an equal number of CPUs, the server with a significantly faster CPU clock rate should be configured to use more batch report and report service processes.

For the report data service , you can specify the maximum report size that can be sent.

For more information about server administration settings, see the Administration and Security Guide.

Setting Affinity Connections

You can specify the maximum number of high affinity and low affinity connections that the dispatcher can open to handle requests. High affinity connections are used to process absolute and high affinity requests from the report services, while low affinity connections are used to process low affinity requests.

High Affinity Connections

High affinity requests apply to the report service only, and not to the batch report service. A high affinity connection is used to handle a high affinity request, and each connection handles one request at a time. A high affinity request is a transaction that can benefit from a previously processed request. It can be processed on any of a number of servers, but resource consumption is minimized if the request is routed back to the report service process that was used to execute the original process.

Each report process has a configurable number of high affinity connections. The number of high affinity connections to set should be based on the number of low affinity connections set for each report process, as well as the capacity required for other services on the same server.

The distribution decision between high and low affinity connections per batch report process should be a function of the anticipated distribution of request types. For example, an HTML reporting application may have a greater likelihood of high affinity requests than a PDF reporting application. The page down request for an HTML report uses a high affinity connection whenever possible.

In general, we recommend that the number of batch report service and report service processes should be the primary parameter to be optimized when deploying a Cognos 8 application. After system resource use is configured to operate efficiently, the number of affinity connections can be tuned for further optimization.

Note: If the number of affinity connections per process is set too high, the process may be overburdened with managing connections. This will result in competition for system resources, and requests will take longer to complete due to inefficient use of server resources.

Low Affinity Connections

A low affinity connection is used to handle a low affinity request. Each connection handles one request at a time. A low affinity request will operate just as efficiently on any server.

Both the report service and batch report service are capable of handling low affinity requests. Low affinity requests that have been initiated by scheduled activity will make use of the low affinity connections configured for a batch report service. Low affinity requests that have been initiated by user-driven activity will make use of the low affinity connections configured for a report service.

Each report and batch report process has a configurable number of low affinity connections. The number of low affinity connections per report service process should be set in coordination with the settings specified for the batch report service.

The distribution decision between high and low affinity connections per process should be a function of the anticipated distribution of request types. For example, an HTML reporting application may have a greater likelihood of high affinity requests than a mainly PDF reporting application. The page down request for an HTML report uses a high affinity connection whenever possible.

In general, we recommend that the number of report service and batch report service processes should be the primary parameter to be optimized when initially deploying a Cognos 8 application. Once system resource use is configured to operate efficiently, the number of affinity connections can be tuned for further optimization.

Note: If the number of affinity connections per process is set too high, the process may be overburdened with managing connections. This will result in competition for system resources and requests will take longer to complete due to inefficient use of server resources.

Affinity Level of Cognos 8 Activities

Cognos 8 includes the following high affinity activities:

Cognos 8 includes the following low affinity activities:

For more information about affinity, see Request Affinity. For information about setting affinity connections, see the Administration and Security Guide.

Best Practices for Scheduled Reporting

The Cognos 8 architecture differentiates between the processing of interactive and noninteractive requests. All requests that are initiated through user activity are processed by the report service, while scheduled or event-driven activity is processed by the batch report service.

Scheduled reporting is a critical aspect of any large-scale enterprise reporting solution. The effective management of low or noninteractive usage time periods, in combination with an organization's data refresh cycles, provides an opportunity for administrators to prepare as much information as possible during off-peak times for later retrieval by the greater business intelligence user community.

Using Jobs to Schedule Reports

Reports can be scheduled on an individual basis. However, if you have many reports to schedule, scheduling on a one-by-one basis can become burdensome. As an alternative, you can use jobs to execute scheduled activities.

A job is a container of scheduled processing activities that operates in a coordinated manner. Instead of scheduling individual reports, a job allows multiple reports to execute using the same schedule. Each activity within a job is given a sequence ordering, which is based on how the job was selected.

Jobs can be submitted to run as follows:

Job and Scheduling Service Settings

All scheduled activity is managed by the job and scheduling service. The job and scheduling service is directly related to the batch report service, and should be considered in tandem with that service.

Settings for the job and scheduling service include the following:

For information about these and other job and schedule service settings, see the Administration and Security Guide.

Best Practices for Report Bursting

Report bursting is a method of producing a set of reports containing personalized content that is based on a common report definition. Bursting performs a single execution of a report; sections the content as required, typically based on security access; and distributes the sections to the appropriate users based on report content.

Bursting is a critical aspect of any large-scale enterprise reporting solution. The effective management of low or noninteractive usage time periods, in combination with an organization's data refresh cycles, provides an opportunity for administrators to prepare as much information as possible for later retrieval by the greater business intelligence user community. Report bursting in Cognos 8 streamlines information distribution. A report is created once, and separated out into multiple filtered report outputs that contain individualized content.

Report bursting offers scalability benefits and helps in the effective management of resources. It also reduces network traffic, minimizes database queries, and enables Cognos 8 to process multiple personalized reports in parallel.

Report bursting can be driven interactively or through batch activity. By default, report bursting is configured to use one thread for querying and three threads for report assembly using the raw data returned from a report bursting query. Depending on the amount of hardware available, resource use during a burst is influenced by the number of threads configured. Each thread used for assembling personalized reports can typically use one processor.

Depending on the available capacity of a server, and on the overlap of burst reporting with other forms of processing, it may be beneficial to adjust the default report bursting thread model. For example, if a single report is being burst, and no other processing activity is being performed on a server, it is best to allocate as many threads for report assembly as there are available processors.

The report bursting assembly thread model can be configured to optimize resource use. In the rsvpproperties.xml file located in the c8_location/configuration directory, edit the BurstThreadPoolSize property:

<property>BurstThreadPoolSize</property>
<value type="long">3</value>

For information about using the rsvpproperties.xml file, see Advanced Report Processing Configuration Settings.