Title of Your Presentation
Download
Report
Transcript Title of Your Presentation
Performance and Tuning Tips
Mark Nesson/Vashti Ragoonath
October 2008
Copyright 2007, Information Builders. Slide 1
Performance and Tuning Tips
Overview
Performance Testing
Used to eliminate bottlenecks and establish a baseline
Should be conducted in a controlled environment
Must have a clear set of expectations
Number of concurrent users
Response times for queries
Meet users expectations and Service Level Response times
Tuning
Repetitive process of:
Running tests to identify bottlenecks
Tuning one component at a time and redoing tests
Increasing load to identify all bottlenecks
..until objectives are met
Copyright 2007, Information Builders. Slide 3
Performance and Tuning Tips
Overview
Bottlenecks can exist at different levels:
Application Level
Developers can look for inefficiencies in their code
Database Level
Use query optimizers and database profilers to check for
bottlenecks
Operating System Level
Administrators can use utilities tools like PerfMon on Windows
and on UNIX top, vmstat, iostat to track CPU, RAM, Disk Space
utilization
Network Level
Network Administrators can use utilities like netstat, packet
sniffers like tcpdump and others like ethereal
Copyright 2007, Information Builders. Slide 4
Performance and Tuning Tips
Tuning Components
External Tuning Components
Operating System
Database Server
Application Server
Java Virtual Machine
Network
WebFOCUS Tuning Components
Application
Data Adapters Dialect Specific or Generic
Reporting Server Workspace Manager
Reporting Server Java Services
ReportCaster Distribution Server
Copyright 2007, Information Builders. Slide 5
Performance and Tuning Tips
External Tuning Components - OS
Operating System
Work with the OS Administrators to identify bottlenecks. If the
system is maxed out on CPU and RAM use the system utilities
to identify which processes are taking up all the resources.
Maybe some jobs can be run at off-peak hours or deferred and
a lower CPU priority.
Check all configuration files to ensure they are in sync with the
current releases of installed software. Upgrades may require
updates to old configuration files that could improve
performance overall on the system.
Track usage patterns on the machines to identify problems and
failures which can be fixed easily.
Copyright 2007, Information Builders. Slide 6
Performance and Tuning Tips
External Tuning Components – Database
Database Server
Verify that the database optimizer runs as recommended to
generate good data statistics. Example: Oracle ANALYZE
command creates optimizer statistics to choose methods of fast
access to the data. If the statistics were not generated properly,
performance will be affected.
Fix Indexes. Use EXPLAIN to see what the optimizer does with
SQL statements. Does it do a full table scan? Does the table have
appropriate indexes for the queries?
You may have to rebuild indexes.
Spread the Database Over Disks and I/O Channels. e.g: Partition
tables and indexes over multiple disks
Copyright 2007, Information Builders. Slide 7
Performance and Tuning Tips
External Tuning Components – App Server
Use Pre-compiled JavaServer Pages
Disable Dynamic Application Reloading
Tune Thread Pool
Initial Thread Pool size
Minimum number of threads in pool
Maximum Thread Pool size
Maximum number of concurrent threads in pool
Thread inactivity timeout
Time spent waiting for client response before being
returned to pool
Growable thread pool
Number of threads the pool should increase by when it’s
maxed out
Copyright 2007, Information Builders. Slide 8
Performance and Tuning Tips
External Tuning Components – JVM
Java Virtual Machine (JVM)
Tune Heap Size so garbage collection time is minimized and
clients can still be processed.
Initial Heap Size
Maximum Heap Size
Garbage Collection
Use the -verbosegc option to track frequency and times of
garbage collection
Copyright 2007, Information Builders. Slide 9
Performance and Tuning Tips
External Tuning Components – Network
Network
Network administrators will be able to identify and tune
bottlenecks are with the use of:
packet sniffers such as tcpdump
network protocol analyzers such as ethereal
utilities such as netstat, ping, traceroute and others
Copyright 2007, Information Builders. Slide 10
Performance and Tuning Tips
Demo: JVM Tuning
Let’s see a live demo of tuning the Tomcat thread pool
Test Case 1 – Low thread pool
Tomcat parameters: Low thread pool(15), 256MB Heap size,
25 concurrent users, request sleeps for 15 secs, 100 available
tscom agents
Capture baseline performance statistics
Tune the Tomcat JVM: Large thread pool(75), 256MB Heap
size, 25 concurrent users, request sleeps for 15 secs, 100
available tscom agents
Capture performance statistics
Response times improved by a little less than 25%
Copyright 2007, Information Builders. Slide 11
Performance and Tuning Tips
Demo: JVM Tuning
INFO: Find registry server-registry.xml at classpath resource
Oct 28, 2008 12:41:25 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 65125 ms
Oct 28, 2008 12:42:31 PM
com.amberpoint.util.soa.servlet.ServiceDeploymentServle
t$ServiceInitializer run
url, then contact that service at that URL to get it started.
Oct 28, 2008 12:43:24 PM org.apache.tomcat.util.threads.ThreadPool
logFull
SEVERE: All threads (15) are currently busy, waiting. Increase
maxThreads (15) o
r check the servlet status
Copyright 2007, Information Builders. Slide 12
Performance and Tuning Tips
Demo: JVM Tuning
Copyright 2007, Information Builders. Slide 13
Performance and Tuning Tips
Demo: JVM Tuning
Copyright 2007, Information Builders. Slide 14
Performance and Tuning Tips
WebFOCUS Tuning Components – Application
Application
Verify that requests are generating optimized SQL
Enforcing all RDBMS efficiencies
Data Adapters
Enable OPTIMIZATION flags ( SET OPTIMIZATION)
Fetch data in larger blocks (SET FETCHSIZE)
Test for optimum performance
Has show to increase performance by 5%
Set ISOLATION Level RU (Read Uncommitted)
Copyright 2007, Information Builders. Slide 15
Performance and Tuning
Tuning Components –Reporting Server
Workspace Manager -Data Services
maximum
number_ready
deployment * private connection_pooling
Queuing
idle_session_limit
idle_agent_limit
cpu_limit
memory_limit
connection_limit
max_connections_per_user *
agent_refresh
sched_priority
Copyright 2007, Information Builders. Slide 16
Performance and Tuning
Tuning Components –Java Services
Workspace Manager –Configuration
Java Services
Most commonly used to:
Rendering output format of flex on the Reporting Server
With the JSCOM3
Tuning Parameters
Initial Java Heap Size
Maximum Java Heap Size
Java Thread Stack Size
JVM_OPTIONS
Specify other performance type options
Copyright 2007, Information Builders. Slide 17
Performance and Tuning
Demo: Graph Processing
Let’s see a live demo of how Java Services is used for processing
graphs.
JSCOM Listener under Java Services
Can have a cluster of JSCOM Listeners
Can be configurable
Graph request generates 5 flex reports. Using the default
JSCOM3 Listener we will run 1, 3, 5 concurrent users and look at
the response time.
We then add a second JSCOM Listener and rerun our test.
Is there an improvement in the response times?
Yes there is…
Copyright 2007, Information Builders. Slide 18
Demo: JSCOM/FLEX Processing (broflex)
#JSCOM3
1
1
1
1
1
1
1
1
3
3
3
3
HEAPSIZE
default
default
default
default
768
768
768
768
768
768
768
768
#THREADS
1
5
10
15
1
5
10
15
1
5
10
15
RESP
3
12
29
38
3
8
18
24
3
6
13
19
Copyright 2007, Information Builders. Slide 19
Performance and Tuning
Tuning Components –ReportCaster
ReportCaster Configuration
General Tab
Maximum Threads
Data Server (NODE)
Maximum Connections
Data Server (CLUSTER)
Weight
Maximum Connection
Algorithm to determine which server to send request to:
Weight * maximum connection = priority
Request will be routed to server with highest priority
Copyright 2007, Information Builders. Slide 20
Performance and Tuning
Demo: ReportCaster Compression
Let’s see a live demo of how we can have a scalable distribution
server by using ReportCaster compression.
Run request with embedded graphical images and distribute
in uncompressed PDF format to Report Library.
Check to see what the original file size is in the BOTLIB table
and make sure it was not flagged as compressed in the
BOTSCHED table.
Column AUDITOR in table BOTSCHED has a flag to
indicate if data is compressed.
Column REPORTSIZE in table BOTLIB has file size
before compression.
Column LIBFIELD1 in table BOTLIB has compressed file
size.
Clone and schedule the same request and distribute in
compressed PDF format to Report Library.
Check the file sizes.
View both reports from Report Library
Copyright 2007, Information Builders. Slide 21
Performance and Tuning
Demo: ReportCaster Compression
You can distribute the same report via EMAIL and use the ZIP
option to minimize space allocation.
You can also ZIP and distribute Active Reports for your users and
they can slice and dice that data without being connected.
We now have Active Reports in Connected mode but more details
in another presentation that we will be doing.
Copyright 2007, Information Builders. Slide 22
Performance and Tuning
Conclusion
Questions and Comments.
Copyright 2007, Information Builders. Slide 23