 |
|
Dedicating CPU processors - Oracle affinity
Oracle Tips by Burleson Consulting |
Question: I have a 32 CPU Linux server with four large
applications and I want to dedicate 4 banks of 8 CPU's of each
application. Is CPU affinity a good practice for Oracle?
Answer: Processor (CPU) dedication is called "CPU affinity", and it's
been used for decades on large mainframe computers.
Today, CPU affinity a common technique on large Oracle servers with dozens of
applications and Oracle databases to keep any single application from "hogging"
all of the processing power. The downside, of course, is that one
application may suffer CPU enqueues (as evidenced by the "r" column of vmstat
output).
For complete details on CPU configuration for Oracle, see my book
"Oracle
Tuning: The Definitive Reference".
Remember, CPU affinity is O/S specific, where you tell the OS to route
specific classes of tasks to specific processors:
-
Solaris - You can create a processor set:
-
Linux - You use the Linux processor schedule utility (schedutils)
Oracle also has some hidden parameters that enable/disable CPU affinity, but
YOU MUST get the consent of Oracle Technical support before altering an
undocumented parms:
_affinity
_enable_default_affinity
Also see my notes on using the
_high_priority_processes parameter
to change dispatching priority of background tasks.
 |
If you like Oracle tuning, see the book "Oracle
Tuning: The Definitive Reference", with 950 pages of tuning tips and
scripts.
You can buy it direct from the publisher for 30%-off and get
instant access to the code depot of Oracle tuning scripts. |