IBM Cognos BI 最佳实践: IBM Cognos 8 性能调优设置

本文档描述了优化 IBM Cognos 8 性能需要考虑的一些属性和设置。本文档中的信息仅供参考,随着对 IBM Cognos 8 的进一步测试可能会有变更。

IBM Cognos 8 性能调优设置

IBM Cognos Connection 中的服务器管理

通过 IBM Cognos Connection 可修改服务,从而更改 IBM Cognos 8 配置的性能行为。从 IBM Cognos Connection 主页上,导航到 Server Administration 选项卡。

图 1.IBM Cognos 的 Server Administration 选项卡
图 1.IBM Cognos 的 Server Administration 选项卡

如何更改 IBM Cognos 8 环境?

调优 IBM Cognos 8 环境的一个前提是要了解组件和服务的相关层次结构。

在 Global IBM Cognos 8 环境级进行更改:

在一个分布式拓扑中会有两个或更多服务器,且每个服务器都有一个调度程序和 IBM Cognos 8 服务的一个子集(比如,a ReportService 等)。

如果想在整个 IBM Cognos 8 环境中对一组公共参数做更改,可以执行以下步骤:

1. 导航到 Server Administration -> Configure 选项卡 -> Properties — Configuration 图标。

图 2.导航到 Server Administration
图 2.导航到 Server Administration

2. 单击 Settings 选项卡。

3. 将类别更改为 Tuning 。

4. 根据环境规范更改设置。请查看下面的“如何以及为什么调优最优性能和可伸缩性”部分,详细了解相关的具体设置和更改这些设置的原因。下面的屏幕截图显示了配置有 四核处理器 的 IBM Cognos 8 应用服务器环境的推荐初始配置。

图 3. IBM Cognos 8 应用服务器环境的推荐初始配置
图 3. IBM Cognos 8 应用服务器环境的推荐初始配置
图 4. 覆盖所有调度程序和服务
图 4. 覆盖所有调度程序和服务

5. 为了传播在第 3 步中更改的设置,必须选中“Delete the configuration setting of all child entries ”复选框。这会覆盖 IBM Cognos 8 环境中所有调度程序和服务的所有设置。

注意:IBM Cognos 8 中的所有服务器并不一定都使用相同的规范。如果需要使用更细粒度的设置,参见“在 IBM Cognos 8 调度程序级进行更改”或“在 IBM Cognos 8 服务级进行更改”部分。

在 IBM Cognos 8 调度程序级进行更改

在一个分布式拓扑中有两个或更多服务器,每个服务器都有一个调度程序,用于管理 IBM Cognos 8 应用程序的请求流。调度程序负责将请求路由到在特定 IBM Cognos 8 服务器上配置的服务。

您可以选择为特定 IBM Cognos 8 服务器作更改,并覆盖在 Global 环境级配置的那些设置(参见“在 Global IBM Cognos 8 环境级进行更改”部分)。

注意:如果您的服务器的容量各不相同,且需要对环境中的特定服务器作粒度更改,那么上面这一点很重要。

如果想对特定 IBM Cognos 8 服务器的一组公共参数做更改,可以执行以下
操作:

1. 导航到 Server Administration -> Monitor 选项卡 -> Dispatchers 单选按钮。

2. 要更改某个 IBM Cognos 8 服务器的属性,在 Server 列表框中单击与其相关的 Settings 图标。

图 5. 更改某个 IBM Cognos 8 服务器的属性
图 5. 更改某个 IBM Cognos 8 服务器的属性

3. 根据 IBM Cognos 8 服务器的规范更改设置。请查看下面的 “如何以及为什么调优最优性能和可伸缩性”部分,详细了解相关的具体设置和更改这些设置的原因。

让我们再返回来看一下前面的例子,即配置有四核处理器服务器的一个 IBM Cognos 8 环境。假定 CPU 使用率增加,确保四核处理器环境由另外一个 8 路服务器补充,以处理增加的负载。

下面的屏幕截图表示添加到环境中的另一个 8 路 Cognos 8 服务器的推荐初始设置。

注意:我还是希望我的所有其他服务器配置为 4 路服务器。在 IBM Cognos 8 服务器级更改设置会在保持所有设置的同时相应地调优 8 路服务器。

图 6. 在 IBM Cognos 8 服务器级更改设置
图 6. 在 IBM Cognos 8 服务器级更改设置
图 7. 覆盖某个 Cognos 8 上的所有服务设置
图 7. 覆盖某个 Cognos 8 上的所有服务设置

4. 为了传播在第 3 步中更改的设置,必须选中“Delete the configuration setting of all child entries ”复选框。这会覆盖 IBM Cognos 8 服务器的所有设置。


在 IBM Cognos 8 服务级进行更改

如何以及为什么调优最优性能和可伸缩性?

总共有 11 个服务可被调优,这些服务是:

  • AgentService
  • BatchReportService
  • ContentManagerService
  • DeliveryService
  • EventManagementService
  • JobService
  • MonitorService
  • PresentationService
  • ReportService
  • SystemService

对峰值和非峰值使用率的调整可能得益于对以下服务属性的更改:

  • ReportService — 用于交互式服务(用户按需驱动)
  • BatchReportService — 用于调度操作
  • JobService and DeliveryService — 在 BatchReportService 相关服务中使用

在具体讨论 IBM Cognos 8 性能调优设置之前,了解几个关键概念的用途很
重要。这里,我们需要理解亲和力连接请求的性质:

高亲和力:请求可在任何报表服务器上执行,但在特定报表服务器上可以实现最高效的执行,在交互式报表中执行翻页一页操作就是该类请求最好的例子。如果使用了同一个报表服务器,我们移动现有数据库游标并呈现页面。如果使用了另一个报表服务器,就需要重新运行查询来执行操作。

低亲和力:请求在任意报表进程中都能以同样的效率完全执行,报表的运行就是一个好例子。低亲和力请求在可用的 IBM Cognos 8 服务器之间(例如,在运行 IBM Cognos 8 的计算机之间)得到均衡。

还有一个 绝对亲和力请求。这种请求只能由既定的报表服务器执行,取消报表操作是最好的例子。只有在运行报表的服务器上才能取消它。顾名思义,绝对亲和力请求的本质就是绝对存在,因此这类请求的调优参数不在 IBM Cognos 8 中公开以避免冗余。

除了亲和力连接请求的性质之外,理解在 IBM Cognos 8 版本中分发请求的方式也比较重要。调度程序会在使用完一个报表服务器上的所有可用线程之后再使用另一个服务器。因此,基于正在优化的应用程序的特性均衡一个服务内的报表服务和线程很关键。

下面将讨论特定于 Report and Batch Report 服务的设置。

每个报表服务器进程的高亲和力连接:

基于对 IBM Cognos 8 的测试,处理高亲和力连接时最好首先将“高亲和力”连接设置为 1 。欲了解更多关于亲和力连接的信息,请参阅附录 A — 亲和力连接列表。

注意:该值是以“每进程”为计量单位。参见“报表服务最大进程数”部分。

每个报表服务器进程的低亲和力连接:

基于对 IBM Cognos 8 的测试,处理低亲和力连接时最好首先将“低亲和力”连接设置为 2 。欲了解更多关于亲和力连接的信息,请参阅附录 A — 亲和力连接列表。

注意:该值是以 “每进程”为计量单位。参见“报表服务最大进程数”部分。

报表服务最大进程数:

基于对 IBM Cognos 8 的测试,比较有利的做法是将交互式服务的“最大”值重置为 2/ 处理器(如果有较快的处理器,可设置为 3/ 处理器)。

注意:这个建议值基于系统上可用的处理器(CPU )的数量。因此,带有 16 核处理器的系统应将该值设置为 32 (2 个进程 * 16 核处理
器)。

队列时限:

对于报表服务,队列时限是指一个请求在所有连接都在使用中时等待报表服务连接的时间上限。该请求将一直排队等候,直到有连接可用,或等候时间达到队列时限设置中规定的配置秒数。如果在配置时限内无连接可用,用户会收到一条系统消息:该请求无法完成,因为在规定的时限内无资源可用。

注意:默认的队列时限是 240 秒。

总而言之,IBM Cognos 8 最近的实验室测试表明,当跨多个进程(不集中于单一进程)分散请求时,可优化报表服务器 — 使用多个进程处理少数连接比使用少数报表进程处理多个连接的效果要好。如果系统未得到充分利用,在进程内添加更多连接之前先添加更多进程。

下面将讨论特定于 Job and Scheduling 服务的设置。Job and Scheduling 服务与 BatchReport 服务直接相关,因此应当同时考虑两者:

非高峰期间的最大作业数:

基于对 IBM Cognos 8 的测试,比较有利的做法是将“最大”作业数重置为“批量报表服务最大进程数”与“(批量报表服务)低亲和力连接数”的乘积。

已知一个带四核处理器的报表服务器,其最大进程数为 8 ,则应将其最大作业数设置为
8 x 2 =16 。

高峰期间的最大作业数:

在将批量和调度活动与交互式服务关联时,该设置很重要。如果调度活动是在非高峰期间执行的,则可以忽略该设置。


Apache Tomcat

下面将讨论如何将 Apache Tomcat 作为一个 Web Application Server 使用:

Apache Tomcat 内存设置可通过 IBM Cognos Configuration UI (3 个配置选项:小、中和大)进行配置,或根据 <CUSTOMER _ NAME> Corp. 定义的自定义设置通过 startup.bat 文件进行配置。

  • 如果您决定通过 IBM Cognos Configuration 启动 Tomcat 服务,选中的 UI 设置将生效。
  • 如果您决定使用 startup.bat 文件,文件内的自定义设置将生效。
  • 配置工具和 startup.bat 文件具有相同的功效。只是 IBM Cognos Configuration 工具主要用作服务,而 startup.bat 文件主要用于通过批量文件手动启动。
  • 不管是哪种情况,内存设置都用于设定 java.exe 进程(JVM 大小),该进程与可供 IBM Cognos 调度程序使用的内存相关。

对于 Apache Tomcat 的其他设置,可以在 server.xml 文件中调整“coyote ”设置。内部测试已表明,将 maxProcessors 从默认的 800 改为 1000 可能对性能和可伸缩性有利。这将决定可由 Apache Tomcat 进程处理的可用线程数。另外,建议将 acceptCount 从 100 改为 500 。

修改设置之前:

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

修改设置之后:

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

根据 <CUSTOMER _ NAME> 的特定应用程序需求,监视和调节设置对优化 Web Application Server (例如,Apache Tomcat )很重要。


附录 A:亲和力连接列表

下面的内容是按照亲和力类型列出的请求或动作列表。根据应用程序需求和相关使用特性,对主要请求类型的理解会影响 IBM Cognos 8 性能调优参数及其设置方式。

绝对亲和力:

  • getOutput
  • release
  • wait

高亲和力:

  • back
  • email
  • firstPage
  • forward
  • lastPage
  • nextPage
  • previousPage
  • print
  • render
  • save
  • saveAs

低亲和力:

  • add
  • collectParameterValues
  • execute
  • getMetadata
  • getParameters
  • query
  • testDataSourceConnection
  • update
  • validate

高亲和力只接受绝对和高亲和力请求。低亲和力连接会接受所有报表服务请求。由于我们仅对取消操作有连接,所以“取消”操作受到特别对待。可将其看作是绝对亲和力的一个特例。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=489672
ArticleTitle=IBM Cognos BI 最佳实践: IBM Cognos 8 性能调优设置
publish-date=05132010