IBM Cognos 8 Performance Tuning Settings Proven Practice
by user
Comments
Transcript
IBM Cognos 8 Performance Tuning Settings Proven Practice
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 [email protected] . IBM Cognos Proprietary Information IBM Cognos 8 Performance Tuning Settings 3 Contents 1 IBM COGNOS 8 PERFORMANCE TUNING SETTINGS..................................... 4 1.1 1.2 Making 1.3 SERVER ADMINISTRATION (IN IBM COGNOS CONNECTION) ...............................................4 HOW DO I MAKE CHANGES TO A IBM COGNOS 8 ENVIRONMENT? .........................................4 Changes at the Global IBM Cognos 8 Environment Level: .......................................4 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 o o o If you decide to start the Tomcat service through IBM 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 IBM 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 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