| |
 |
|
Oracle Tips by Burleson Consulting
|
UNIX CPU Monitoring
CPU consumption on an Oracle server is a simple matter because the
server manages all CPU transactions automatically. All servers are
configured to use CPU cycles on an as-needed basis, and the Oracle
database will use CPU resources freely. The internal machine code
will manage the assignment of processors to active tasks and ensure
that the maximum amount of processing power is applied to each task.
CPU shortages are evidenced in cases where the CPU run queue is
greater than the number of CPUs. In these cases, the only solutions
are to increase the number of CPUs on the processor or reduce the
CPU demands on Oracle. You can decrease CPU demands on Oracle by
turning off Oracle Parallel Query, replacing the standard Oracle
listener with the multithreaded server (MTS), and other actions that
would reduce the processing demands on the hardware.
Tasks are serviced in UNIX according to their internal dispatching
priority. Important tasks such as the UNIX operating system tasks
will always have a more favorable dispatching priority because the
UNIX system tasks drive the operating system
CPU overload is usually evidenced by high values in the vmstat
runqueue column. Whenever the runqueue value exceeds the number of
CPUs of the server, some task may be waiting for service. When we
see a CPU overload, we have several alternatives:
1. Add additional processors?This is usually the best solution,
because an Oracle server that is overloading the CPU will always run
faster with additional processors.
2. Reduce server load?If the CPU overload is not constant, task load
balancing may be the solution. For example, it is not uncommon to
see a server overloaded during peak work hours, and then return to
80-percent idle in the evenings. In these cases, batch tasks can be
rescheduled to execute when there are more idle CPU resources
available.
3. Alter task dispatching priorities?Most all UNIX operating systems
allow the root user to change the dispatching priority for tasks. As
a general rule, the online database background tasks are given more
priority (a smaller priority value), while less critical batch
processes are placed with less priority (a higher priority value).
However, altering the default dispatching priorities is not a good
long-term solution, and it should only be undertaken in emergency
situations.
 |
For more details and scripts, see my new book "
Oracle
Tuning: The Definitive Reference", over 900 pages
of BC's favorite tuning tips & scripts.
You can buy it direct from the publisher for 30%-off and get
instant access to the code depot. |
|