Multiple Cognos instances in one server (Performance Tuning) -Suraj Neupane (Consultant @ Denver Water) Performance Tuning • Most important aspect after data integrity (sometimes before). • Various approaches to tuning: – Tune parameters in Cognos server. – Report/model: Prompts; Union; Calculations; graph/text; drill etc. – Use tools and features within Cognos: schedule/cube/shared drive. – Database/ETL: Aggregate tables; other apps against the same db. – Use features from third party apps: Tidal scheduler, BSP etc. – Hardware upgrade: License; cost. – Application upgrade: License/deprecated/new features; training. – Add instances of application. (Results may vary). • This presentation focuses on adding reporting instances. – Not multiple instances of different versions such as C8 and C10. – It’s opposite of distributed installation. 2 Report Service Tuning Things to keep in mind depending upon setup: a. High Affinity connections: 1 per process b. Low Affinity connections: 4 per process c. Maximum number of processes: 2 per processor Maximum RAM two instances can use with 4 CPU: 20gb 2 X BIBus = 4gb X 2 for RS = 8gb 2 X BIBus = 4gb X 2 for BRS = 8gb Java processes: up to 2gb each. Set peak periods (eg. 7am-6pm). (Note: Refer to Administration guide for other tuning settings). 3 Cognos Architecture 4 Services in a dispatcher Each dispatcher adds associated Cognos services as mentioned below: Agent service Annotation service BRS CM cache service CM service Data movement Delivery service Event Management Graphics service Human Task Index data service Index search service Index update Job service Log service Metadata service Metric Studio service Migration service Monitor service Presentation Query service Report data service Report service Planning… Powerplay service System service etc… 5 Expectation from additional instances • Work around OS Stack memory constraints of 2gb per running process. (Note: system needs enough physical memory cache for this method) • Take the most out of underutilized resources. • Load balance requests with multiple dispatchers. • Report level processing with additional Cognos services. • Overall, improve performance utilizing existing resources. 6 Analyze current setup • Licensing Model: Named vs PVU. – Named licensing model (old) can use additional hardware that is a better option than adding instances. – Adding instances is recommended for PVU licensing model. [Note: Always consider license compliance before changes.] • Current application load on server – Current CPU and RAM utilization. 7 Analyze current setup… • Is current setup working as expected? - Create performance log files and monitor CPU usage trend. - Do not implement if the usage is consistently over 80% - Check logs for errors, monitor performance. Server errors appear even after tuning as per IBM recommendations. 12.123.4.5:9300 7448 2011-01-26 15:47:10.385 -7 Audit.RTUsage.ms.MS Failed to run task [com.cognos.monitor.tse.BiBusRunContext taskID=BD1ABFCF70597059012D4D6BB3B081360012dc47f91b1]. Error is: DPR-ERR-2056 The Report Server is not responding. One of the famous error is ‘Server did something wrong’. 8 Analyze current setup… • Check background jobs for ‘Pending’ status during scheduling window. 9 Implementation Process • Install ‘Application Tier Components’ for new instances in new directory. Do not install ‘Gateway’, ‘Content Manager’ and ‘Cognos Content Database’. 10 Implementation Process… • Configure Cognos services for 2nd instance: – Configure log server, shutdown and dispatcher URI with different port numbers than original Cognos configuration. • Apply all the custom modifications to the 2nd instance (Important!). • Stop original Cognos services and add dispatcher URI from 2nd instance. • Save configuration and start both instances of Cognos services. • Tune both instances same (logging, tuning etc.) in Cognos administration. • Restart both Cognos services after tuning is complete. [Note: Refer to Administration guide for additional details] 11 Verification When the implementation is complete, multiple dispatchers with different port numbers exist in Cognos administration window. 12 Verification… How to verify if the load balancing is working? • Run reports and check requests received in both dispatchers. • The report service requests should be divided between the two dispatchers. The numbers may not be exactly same but should be close enough. Example: After 1.5 months: • Monitor performance as the results may not be as expected that requires additional tuning. 13 Results from our implementation • Existing reports/jobs/schedules are working as before; some have better performance. • ‘Report server is not responding’ error reduced. • Job schedules do not get stuck in ‘Pending’ status. • The server has become more stable and efficient. - Less restarts due to jobs not pending anymore. 14 Dependencies with external apps Analyze the implication for external applications such as Tidal scheduler, BSP Metamanager etc. before and after implementation. - Number of job services/connections configured in external applications may need modification due to new tuning parameters in Cognos dispatchers. 15 Summary • Check IBM license before any work on Cognos server. • Analyze existing setup for bottleneck. • Add instances of reporting services to allow better use of underutilized hardware. • Monitor performance after implementation. • Experience may vary depending upon server configuration/resources. 16 Disclosure and Q & A • Implement this method at your own discretion. • If you have similar setup, please provide configuration settings that worked best. • Feedback/comments? Feel free to email me: Surajneupane@gmail.com Suraj.Neupane@denverwater.org 720-432-8842 • Find me @ Cognoise, Experts-Exchange, ittoolbox & IBM Cognos forums. … Thank You … 17