Presentation Transcript
Boston | New York | Washington D.C. | Chicago: Boston | New York | Washington D.C. | Chicago Peer Source Road Show
Architecting for Performance: Architecting for Performance Kathryn Webster (née Hunt), Independent Consultant
Robert Horne, Business Objects
Topics: Finding Performance in Report Design
Scaling Component Web Applications
Scaling for Enterprise Performance
Qandamp;A Topics
Report Design Process: Requires development (like applications)
Specs/Requirements
Formal Process
Start as soon as possible
Reports are NOT afterthoughts.
Design with the end (.RPTs) in mind
Make no assumptions
Confirm and Cover Report Design Process
Start as Early as Possible: Begin with the end in mind
Reporting is not an afterthought
Many cases, it is the only external point of view for the consumer.
Requires extra special care and attention for success. Start as Early as Possible
Ask Questions: End Users
Consumers of the reports
All levels
Subject Matter Experts
Understand the data
Signatories
Confirm and Cover
In other words: 'Don’t assume but ask' Ask Questions
Take Detailed Notes: Document
The more that is written down, the more likely you’ll design what the user wants.
More accurate in the end.
Draw
Picture = 1K words
White-board
Take picture and use in documents Take Detailed Notes
Input/Output: Understand what the data looks like:
Going in
Resulting output
Draw
Sample result sets
Linking diagrams
Subject Matter Experts can help. Input/Output
3 R’s: Re-Use
Refine
Repository 3 R’s
Performance Tuning: Now that the reports are done, it’s time to tune them for high performance
Use Report | Performance Information for detailed information on your report’s overall performance Performance Tuning
Performance 1/3: Remove unused:
Formulas
Parameters
Tables
Use borders instead of lines and boxes
Keep images to a minimum
Use repository objects
Avoids mistakes
Avoids duplicates
Central updated location Performance 1/3
Performance 2/3: Avoid Subreports in repetitive sections
Avoid use of Group Selection formula to suppress logic if the logic can be used in the record selection.
Push as much filter logic as possible down to the server
SQL
Command objects Performance 2/3
Performance 3/3: Use built-in functions (like summaries and running totals) as much as possible
Avoid formulas and variables if possible.
Use group charts (using CR summaries) instead of 'Advanced'.
Also cross-tab and OLAP
Run Dependency Checker on your reports
Use Workbench for success Performance 3/3
Topics: Finding Performance in Report Design
Scaling Component Web Applications
Scaling for Enterprise Performance
Qandamp;A Topics
Component Web Applications: Crystal Report Component Web Applications
Crystal Reports for Java
Crystal Reports for .NET
Components Bundled with
Crystal Reports Developer XI R2
Crystal Reports for Visual Studio
Crystal Reports for Eclipse
Crystal Reports for BEA WebLogic Workshop
Crystal Reports for IBM Rational Application Developer
Components run inside the Application Server process Component Web Applications
Component Web Applications: For increased Performance add more Servers
Web Farm
Both Crystal Reports for Java and Crystal Reports for .NET support multi-server clustering.
Each report engine can handle independent page requests because of the browser view state.
Report Engine lives in the Application Server Memory Space
Make sure your Application Server has enough RAM to handle all the report requests.
Component Web Applications
Component Web Applications: To offload Report Processing to a separate machine and memory space we need to look to Crystal Reports Server or Business Objects Enterprise
Component Web Applications
Topics: Finding Performance in Report Design
Scaling Component Web Applications
Scaling for Enterprise Performance
Qandamp;A Topics
Enterprise Performance Topics: Architecture Overview
Applying Sizing Concepts
Configuration Concepts
System Tuning and Top 5 Performance Tuning List
Enterprise Performance Topics
BusinessObjects Enterprise XI R2 Architecture : BusinessObjects Enterprise XI R2 Architecture
Scalable and Fault Tolerant Architecture: BI Platform Scalable and Fault Tolerant Architecture Specialized Service Oriented Architecture for flexible deployments
Scale up: multiple service instances on one machine
Scale out: services operating on many machines
Built-in clustering, caching, and load balancing
Fully fault tolerant system Schedule Services Page Viewing Services Cache Services Report Services Report Modification Services Central Management Server Event Services File Repository Services System repository Audit repository Query andamp; Analysis Services Performance Management Services
Central Configuration Manager – XIR2 Platform Services: Central Configuration Manager – XIR2 Platform Services
Extensibility: Extensibility New services are easily added to the platform
Add or remove services without restarting the server
Configure individual services on distributed hardware
Automatically inherit scalability, load balancing, and fault tolerance BI Platform Schedule Services Page Viewing Services Cache Services Report Services Report Modification Services Central Management Server Event Services File repository Services System repository Audit repository Query andamp; Analysis Services Performance Management Services Desktop Intelligence Services
Enterprise Performance Topics: Architecture Overview
Applying Sizing Concepts
Configuration Concepts
System Tuning and Top 5 Performance Tuning List Enterprise Performance Topics
The 4 Key Basic Steps to Sizing and Configuration: The 4 Key Basic Steps to Sizing and Configuration Determine total number of potential users, concurrent active users, and simultaneous user requests
Determine number of services required to support load, based on individual service thresholds
Listed in BusinessObjects XI R2 Sizing Guide
Determine number of processors and machines and deploy for desired performance and failover
Tune the Central Management Server (CMS) system database
Enterprise Performance Topics: Architecture Overview
Applying Sizing Concepts
Configuration Concepts
System Tuning and Top 5 Performance Tuning List
Enterprise Performance Topics
Distribution of Services: Distribution of Services Distribute for greater hardware fault tolerance – e.g. 'Microsoft Data Center Configuration'
Distribute for greater performance - intelligence tier separated from processing tier
Distribute for a blend of fault tolerance and performance
Scalability: What Does It Mean?: Core Concepts
Linear scalability
Horizontal scalability
Vertical scalability (e.g. 64CPU e10K)
Scalability: What Does It Mean? Scalability is the capacity to address additional users or transactions by adding resources while maintaining performance, usability, and functionality
BusinessObjects XI R2 Scalability (Vertical): BusinessObjects XI R2 Scalability (Vertical) Ability to add BusinessObjects XI R2 Services
Ability to increase/adjust # of Service Threads
Self-Tuning
BusinessObjects XI R2 Scalability (Vertical): BusinessObjects XI R2 Scalability (Vertical) Ability to add BusinessObjects XI R2 Services
Ability to increase/adjust # of service threads
Self-Tuning
BusinessObjects XI R2 Scalability (Vertical): BusinessObjects XI R2 Scalability (Vertical) Ability to add BusinessObjects XI R2 Services
Ability to increase/adjust # of service threads
Self-Tuning
BusinessObjects XI R2 Scalability (Vertical): BusinessObjects XI R2 Scalability (Vertical) Ability to add BusinessObjects XI R2 Services
Ability to increase/adjust # of service threads
Self-Tuning
Scalability: What Does It Mean?: Scalability: What Does It Mean? Scalability is the capacity to address additional users or transactions by adding resources while maintaining performance, usability, and functionality Core Concepts
Linear scalability
Horizontal scalability
Vertical scalability
BusinessObjects XI R2 Scalability (Horizontal): 4 CPU 4 CPU 4 CPU 4 CPU BusinessObjects XI R2 Scalability (Horizontal) 1 Central Management Server 1 Cache Server
1 Event Server 4 WEBI Servers
1 PageServer
1 I/O File Repository Server Tuned for Performance! Ability to add BusinessObjects XI Services
Ability to increase/adjust # of service threads
Self-Tuning 1 Desk Intelligence Server
1 PageServer
1 I/O File repository Server
BusinessObjects XI R2 Scalability (Horizontal): 4 CPU 4 CPU 4 CPU 4 CPU BusinessObjects XI R2 Scalability (Horizontal) 1 CMS
1 WEBi
1 DESKi
1 CacheServer
1 Event Server
1 JobServer
1 PageServer Tuned for Fault Tolerance! Ability to add Business Objects XI Services
Ability to increase/adjust # of Service Threads
Self-Tuning 1 CMS
1 WEBi
1 DESKi
1 CacheServer
1 Event Server
1 JobServer
1 PageServer 1 CMS
1 WEBi
1 DESKi
1 CacheServer
1 Event Server
1 JobServer
1 PageServer 1 CMS
1 WEBi
1 DESKi
1 CacheServer
1 Event Server
1 JobServer
1 PageServer System repository
Clustered Platform and Web Server Support: Clustered Platform and Web Server Support
Enterprise Performance Topics: Architecture Overview
Sizing Concepts
Applying Sizing Concepts
Configuration Concepts
System Tuning and Top 5 Performance Tuning List Enterprise Performance Topics
Things to Remember: Things to Remember Tuning is by definition an iterative process
You’re either very lucky or very experienced if you tune perfectly the first time - the exception, not the norm
Performance is perception, to a point
Improper tuning can lead to poor performance and availability
User expectation must be set - even a properly tuned system can be perceived as running too slow
Understand the user
This can be another department, division or company
Their requirements (spoken and unspoken)
Their organizational (political) issues
The stakeholders, decision makers, influencers
All of this is critical in achieving success beyond a successful deployment
Top 5 Performance Factors: Top 5 Performance Factors Top 5 things we can do to ensure optimal performance
Test the network
Optimize the database
Fastest storage (e.g. SAN Disk)
Central Management Server optimal configuration
Adjust number of BusinessObjects XI R2 Enterprise services
Other considerations
For large deployments with complex documents and many users
allow at least 2Gb of memory per CPU
Make sure there is sufficient disk space and that it is sufficiently defragmented
1. Test the Network : 1. Test the Network BusinessObjects XI R2 relies heavily on network responsiveness
Fast network will improve throughput more than nearly anything else
Run a few simple tests – for example, ftp a very large file (50MB) and time it
Check to make sure all network settings on switches and network cards match (most likely auto-auto, 100Full etc)
2. Optimize the (CMS System) Database : 2. Optimize the (CMS System) Database Database server must run on adequate hardware and must be tuned for optimal performance
Main hardware consideration: enough RAM
Fastest possible storage device for physical memory
Run a statistical analysis on the working set of data
Ensure there are sufficient database connections
Get the DBA involved early
3. Take Advantage of the Fastest Storage : 3. Take Advantage of the Fastest Storage Assure that significant file I/O is configured to take advantage of fastest possible storage
File repository servers - the input and output folder as well as the temp files folder
Web Intelligence server – temp file folder
Report server - temp files folder
Page server - temp files folder
Cache server - cached files folder
Other servers - any temp
4. Important CMS Configuration Options 1/3: 4. Important CMS Configuration Options 1/3 -maxobjectsincache
Default is 10,000
This should be set to a number greater than the size of the working set being used to minimize database reads
-ndbqthreads
Default is 1
This controls both the number of connections held open to the database server for the life of the CMS, and it controls the number of concurrent operations that can be sent to the database
4. Important CMS Configuration Options 2/3: 4. Important CMS Configuration Options 2/3
4. Important CMS Configuration Options 3/3: 4. Important CMS Configuration Options 3/3
5. Adjust Number of Business Objects Services: 5. Adjust Number of Business Objects Services As the number of users, requests, and load changes
Adjust the number of BusinessObjects XI R2 services (CMS, Web Intelligence Server, Desktop Intelligence Server, PageServer, CacheServer, Audit Server, etc.)
Take advantage of flexible architecture
See BusinessObjects XI R2 Sizing Guide (ask Sales Representative – Non-Disclosure Agreement required)
A majority of this is now done automatically in BusinessObjects XI R2
BusinessObjects XI R2 Administrator’s Guide: BusinessObjects XI R2 Administrator’s Guide Refer to the BusinessObjects XI R2 Administrator’s Guide
Section called 'Scaling Your System'
Topics include:
Increasing overall system capacity
Increasing scheduled reporting capacity
Delegating XSL transformation to Internet Explorer for Web Intelligence reports
Increasing on-demand viewing capacity for Crystal Reports
Enhancing custom web applications
Optimizing network speed and database efficiency
Etc, etc.
Summary: BusinessObjects XI R2 is a Service Oriented Architecture which can be scaled up or out
Size your system based on user load and service thresholds
Deploy and configure for a combination of performance and reliability
Be aware of the 'Top 5 performance tuning factors' and take advantage of built in technology
Ask Sales Representative for BusinessObjects XI R2 administrator’s and sizing guides (Non-Disclosure Agreement Required) Summary
Topics: Finding Performance in Report Design
Scaling Component Web Applications
Scaling for Enterprise Performance
Qandamp;A Topics
Q&A: Questions
Robert Horne, Developer Evangelist, Business Objects
Kathryn Webster, Independent Consultant
We will repeat questions to ensure everyone can hear
Contact information (optional)
Email: robert.horne@businessobjects.com
Email: klwebster@shaw.ca Qandamp;A