Académique Documents
Professionnel Documents
Culture Documents
Performance Tuning
Cognos Confidential
Agenda
Overview
Infrastructure tuning
Web servers J2EE application servers
Operating systems
Databases
Cognos Confidential
Agenda
Overview
Infrastructure tuning
Web servers J2EE application servers
Operating systems
Databases
Cognos Confidential
System
CPU Speed
Improve overall performance of each request
Disk I/O
Improve overall performance of data access, including temporary space and database files
O/S Network
Network I/O
Fast network speeds reduce contention between tiers
CPU Speed Disk I/O
O/S
Tune parameters that limit the ability of processes to utilize resources
Cognos Confidential
Web Server
Web Server
Tier 2
Load Balancing Fast Storage Server CRN Server
CRN BIBUS
Tier 3
Database Server
Directory Server
CRN Servers
Database Server
CRN Repository
Authentication Source
User Database
Cognos Confidential
Web Servers
200 concurrent users supported on 2 x 2.8 GHz (< 20% cpu utilization)
Approximately 30 web requests per second
Cognos Confidential
2 major considerations:
# of threads Amount of memory (heap size)
IBM WebSphere
Cognos Confidential
Navigate
Servers -> Application Servers -> server1 -> Process Definition -> Java Virtual Machine
Change Maximum Heap Size to 1024 Mb or higher (if available) Add Generic JVM Arguments such as -Xms256M -Xmx768M
Used to specify garbage collection memory and how objects age
Cognos Confidential
Navigate
Servers -> Application Servers -> server1 -> Web Container -> Thread Pool
Cognos Confidential
BEA WebLogic
Cognos Confidential
http://e-docs.bea.com/wls/docs81/perform/topten.html
Navigate
Servers -> Server running CRN -> Configuration > Tuning tab
Cognos Confidential
Navigate
Servers -> Server running CRN -> Connections > Tuning tab
Cognos Confidential
Navigate
Servers -> Server running CRN -> Monitoring > General tab -> Monitor All Active Queues ->
Cognos Confidential
Navigate
Servers -> Server running CRN -> Monitoring > Performance tab
Cognos Confidential
WebLogic bugs have been encountered in testing (bug #) Create .hotspot_compiler file
exclude java/lang/Long toString exclude weblogic/socket/NTSocketMuxer processSockets
Cognos Confidential
Cognos Confidential
maxProcessors
Maximum number of threads that can be simultaneously processed
acceptCount
Length of the request queue before additional requests are refused
enableLookups
Specifies whether DNS lookups are enabled Some customer situations have benefited from switching to False
Cognos Confidential
Cognos Confidential
Survivor Ratios
Cognos Confidential
Databases
Cognos Confidential
Operating System
Solaris
No specific settings
Cognos Confidential
Agenda
Overview
Infrastructure tuning
Web servers J2EE application servers
Operating systems
Databases
Cognos Confidential
Application Tuning
ReportNet
Application Server
Java VM
O/S
Machine
Cognos Confidential
Application Design
Database Design
Indexes, data types Primary and foreign keys
Report Design
Model Design
Report Design
Query Report Layout
Database Design
Cognos Confidential
Report Design
4 # of Colum ns
Cognos Confidential
Cognos Confidential
Drawback is that CRN must do multiple passes of data to determine appropriate size
Tradeoff Performance (particularly PDF)
Cognos Confidential
Cognos Confidential
Introducing warpproperties.xml
Cognos Confidential
Temp Files
Temp files may be created if report processing activity exceeds memory thresholds
Large reports or load situations whereby memory is exhausted Monitor CRN_Root\temp directory for cclvpage*.tmp files
Drawback is that CRN must write to disk (usually a slow device) to build the entire report
Resolution is to allocate more memory (if available) to avoid writing to disk
Temp Files
Use of memory over disk has proven beneficial in a real customer example
Report processing time was reduced from over 2 hours to 11 minutes
Cognos Confidential
Workshops #1 to #3 1 hr
Cognos Confidential
Agenda
Overview
Infrastructure tuning
Web servers J2EE application servers
Operating systems
Databases
Cognos Confidential
Services Tuning
Tuning by scope is especially important when different server capacities are being used
Cognos Confidential
Services Tuning
Cognos Confidential
Default value = 2 Recommended value = 2 * # of CPUs per server Use monitoring to determine ideal setting
Cognos Confidential
Batch and Interactive usage periods are distinct Total processes = 2 * 4 CPUs = 8 Interactive processes = 8 4 CPUs Batch processes = 8
Cognos Confidential
Batch processes = 8
Two options:
1. 2. Consider dedicated servers for each of interactive and batch processing Throttle down number of processes (determine ratio by level of importance)
4 CPUs
Batch
4 CPUs
Interactive
Cognos Confidential
Affinity Connections
Considerations:
Clock rate of CPUs (E.g. 2.0 GHz) Type of transactions
Cognos Confidential
Affinity Connections
Recommended values
Low affinity = 2
High affinity = 1
Cognos Confidential
Workshop #4 10 mins
Cognos Confidential
Maximum amount of time that a request will remain in the dispatcher queue for an available report service connection
User receives error if queue time limit is exceeded
A process was not available within the configured time limit
Consider the memory requirements to manage more queued requests if limit is set high
Set a low limit to help troubleshoot slow performance and request latency
Cognos Confidential
Process Capacity
Scenario:
Note - All CPUs are equivalent (architecture, speed, etc) 4 CPUs 2 CPUs 2 CPUs
Server 1
Server 2
Server 3
Agenda
Overview
Infrastructure tuning
Web servers J2EE application servers
Operating systems
Databases
Cognos Confidential
Batch Reporting
Cognos Confidential
Cognos Confidential
Cognos Confidential
Example Scenario
Assumptions
Need to run 112 reports nightly 2 report servers are available and configured to use 8 low affinity connections each (16 in total)
# of reports > low affinity threads available (I.e. 112 > 16)
Use 16 individual jobs with 7 reports each
100 = 16x where X is the # of reports per job (X = 7) Therefore, 112 reports will be executed using:
16 jobs executing in parallel Each job will process 7 reports in sequence
Cognos Confidential
Example Scenario
Job #1
16 jobs are setup and execute simultaneously
Job #1
Report #1 Report #2 Report #3 Report #4 Report #5 Report #6 Report #7
Cognos Confidential
Bursting
Concurrent bursting for other report output types being considered for future releases
Cognos Confidential
Demo #1
Cognos Confidential
Workshop #5
Cognos Confidential
Demo #2
Cognos Confidential
Demo #3
Cognos Confidential
Prompting
Cognos Confidential
Designed to:
minimize number of database queries
<structure> <!-- MaxCachedQueries is the maximum number of queries the Prompt Manager will attempt to cache. Valid values are: 0=OFF (default) -1=NoLimit n=Cache up to 'n' queries --> <!-- <property>MaxCachedQueries</property> <value type="long">-1</value> --> </structure>
Query Reuse
Used when same results can be used or new results a subset of cached
Results are cached for the entire duration of a RS, QS and RV session
Cognos Confidential
Query Reuse
Set value = 0 to force database access Set value = -1 to use cache whenever possible Set value = N to force database access after N cache hits
Cognos Confidential
Agenda
Overview
Infrastructure tuning
Web servers J2EE application servers
Operating systems
Databases
Cognos Confidential
Monitoring
Windows
Task Manager Perfmon
UNIX
top
ps ef pstat Mpstat
Cognos Products
Server Administration tools Run a live user
Cognos Confidential
Cognos Confidential
Total number of requests processed per minute Total time (sec) to process a request Services selected for monitoring
Queue Time before a request can be processed Dispatcher queue timeout limit (sec)
Cognos Confidential
Process Monitoring
Possible reasons:
Number of affinity connections per BIBus is set too high Not enough requests to exhaust maximum BIBuses
Cognos Confidential
Cognos Confidential
Things to Avoid
Cognos Confidential
Questions?
Cognos Confidential