 |
|
Oracle9iAS Performance Tuning
Oracle Application Server Tips by Burleson
Consulting |
This chapter deals with the most important
areas of Oracle9iAS administration, optimization and high
availability. Even if you have done a superb job in installing
and configuring Oracle9iAS, if the system is not always available or
if the performance is poor, then you have not succeeded in your job.
This chapter will cover the following topics:
-
Overview of Oracle9iAS performance
-
Monitoring Oracle9iAS
-
Oracle9iAS tuning with component
parameters
-
Tuning the Oracle HTTP Server (OHS)
-
Tuning the Oracle9iAS Web Cache
-
Load balancing of Oracle9iAS components
-
Oracle9iAS server monitoring and load
balancing
Overview of Oracle9iAS Performance Tuning
Being complex, an Oracle9iAS environment has
a huge amount of tuning opportunities. For example, the Oracle
database back-end has more than 250 initialization parameters, each
Oracle9iAS component has many interrelated parameter and
configuration settings, and each server has dozens of tuning
options. Tuning any one of the Oracle9iAS components is
challenging by itself, but when we consider the complex interactions
between Oracle9iAS components, there can be an overwhelming amount
of tuning activity.
We must start by noting that every
Oracle9iAS system has a bottleneck. Even a well-tuned
Oracle9iAS system will have some resource that comprises the
majority of the response time. The best approach is to
identify the component that is the bottleneck and then drill-down
and identify the component resource that is responsible for the
latency. The bottleneck may be hardware related (CPU, RAM,
Disk I/O, or Network shortages), or software related (locks, latches
or contention).
There are two approaches to Oracle9iAS
tuning, the reactive and proactive approach. In the reactive
approach, we receive a response time complaint from the end-user
community and we use tools such as OEM to ascertain the cause of the
performance problem. In the proactive tuning approach we
collect detailed statistics from all Oracle9iAS components, analyze
the data, and develop predictive models that can predict those
conditions that will impede performance.
Let?s start by examining the tuning ?knobs?.
By altering a knob, we adjust the configuration and resources for
the Oracle9iAS farm and change the processing characteristics.
Common knobs or Oracle9iAS include three areas, physical server
(hardware-level) tuning, parameter tuning and RAM cache tuning:
Server tuning
-
Hardware configuration ? Adding RAM
of CPU resources to existing servers will improve the throughput
on the server
-
Hardware load balancing ? The
addition of new servers to the Oracle9iAS farm and relocating
Oracle9iAS components onto the servers allows for scalability
during times of peak usage. Spare servers can be configured
with both Web Cache and Application Server, and the appropriate
components can be started as-needed.
-
Server parameter tuning ? Adjusting
the parameters on your server can have a huge impact on the
performance of the Oracle9iAS components running on that server.
Parameter tuning
-
Oracle9iAS parameters - Adjusting
the Oracle9iAS configuration parameters for each Oracle9iAS
component has influence on performance and throughput.
-
Database parameters ? Because most
Oracle9iAS systems are disk I/O intensive, adjusting the Oracle
database parameters for the Infrastructure database (iasdb) and
the back-end database can heavily influence performance.
RAM cache tuning
-
Data buffer tuning ? Adding RAM to
the database db_cache_size on the Oracle Infrastructure and
back-end database can greatly reduce disk I/O and improve
throughput.
-
Web cache tuning (Oracle9iAS Web Cache)
? Adding RAM to the Oracle9iAS Web Cache can improve the delivery
rates of HTML and XML though the Oracle HTTP Server (OHS).
As we mentioned, proactive tuning is the
best approach for the tuning of Oracle9iAS because we can analyze
historical database information and observe trends and identify
performance thresholds. In order to do proactive monitoring we
must develop data collection mechanisms for the servers and each
Oracle9iAS component. Let?s take a look at Oracle9iAS
monitoring.
Monitoring Oracle9iAS
In order to develop a coherent picture of
overall Oracle9iAS performance we must collect data from a variety
of sources. Things to monitor and adjust:
-
Resource usage monitoring ?
Assuming that each Oracle9iAS component is optimally tuned, any
hardware-related overload must be addressed with more hardware.
The solutions may be to add a new application server, add RAM or
CPU to existing servers, or install faster disks. In UNIX or
Linux you can monitor Oracle9iAS servers with the vmstat utility,
top, glance or iostat, and store the data into Oracle tables for
time-based resource analysis. In a Windows environment you
can use the Windows performance monitor to measure hardware usage.
We will explore Oracle9iAS hardware monitoring & tuning later in
this chapter.
-
Response time monitoring ? Several
components within Oracle9iAS allow you to track overall response
time and the components of response time. For example, web
applications using the Oracle9iAS Forms Server can use the Forms
Server log to generate detailed response time report. We
will address this in greater detail later in this chapter.
-
Wait event monitoring ? Perform a
wait even analysis on each component of Oracle9iAS can provide
insights into the main source of latency for each Oracle9iAS
component. For example, in the Oracle database, a STATSPACK
report will show the top-5 database wait events (Listing 10.1):
Top 5
Timed Events
~~~~~~~~~~~~~~~~~~
% Total
Event
Waits Time (s) Ela Time
------------------------------ ----- --------
--------
CPU time
30 91.43
direct path read
95 1
3.53
control file sequential read 54
1 2.33
log file parallel write
62 0
.95
db file parallel write
20 0
.68
Listing 10.1: STATSPACK report of top-5 wait
events
This is an excerpt from "Oracle
10g Application Server Administration Handbook" by Don Burleson
and John Garmany.