The
performance of the Scoring Accelerator for Oracle can be affected
by altering the Degree of Parallelism (DOP) setting. The DOP setting
defines how many parallel processes work on a single statement. In
a Real Application Clusters (RAC) environment, the parallel processes
are distributed among the available database instances when the chosen
DOP exceeds the expected capabilities of a single node. In environments
with mixed workloads and multi-concurrency, you should rely on the
parallelism provided by the Oracle database. However, you might want
to consider adjusting the DOP setting to achieve maximum throughput
for dedicated Scoring Accelerator operations.
Because Oracle and SAS
use separate threads during execution, improvements throughput diminish
for DOP values that are greater than half the total number of cores
available. For example, if you have 128 cores total available for
all instances, a DOP greater than 64 is not likely to yield improved
performance. Performance is not improved because both the Oracle and
SAS processes tend to be CPU intensive. Setting the DOP up to this
maximum level assumes that the system is solely dedicated to running
the SAS Scoring Accelerator. For a mixed load system, a lower DOP
value might be more appropriate.
In RAC environments,
Oracle allocates parallel execution servers based on an internal load-balancing
algorithm. This allocation ensures approximately average loads across
all nodes that are accessible for a given parallel operation. Because
the load of the SAS processes is not compensated for in Oracles internal
algorithms, it can be beneficial in some environments to change Oracles
default behavior. There are two ways of doing so:
-
Disable Oracles internal load balancing:
this can be accomplished by setting the internal parameter _parallel_load_balancing
to FALSE (the default value of this parameter is TRUE). Oracle then
does a plain round-robin allocation of processes across all available
nodes. This parameter can be changed on a system and session level.
-
Adjust the number of parallel execution
servers per load balance unit. The load balance unit is chosen internally
by Oracle to ensure a maximum co-location of parallel execution servers
on a single node. This unit is dependent on the number of available
CPUs in a system. You can decrease the unit by setting the internal
Oracle parameter _parallel_load_bal_unit. The default value of this
parameter is 0, meaning the system internally calculates this value.
Similar to DOP, setting the _parallel_load_bal_unit parameter beyond
half the core total per instance is not likely to be beneficial.
CAUTION:
Influencing
Oracles internal load balancing for parallel execution does not harm
a system in any way.
However, influencing
(changing) Oracles internal algorithms even in a single session has
an impact on the overall system through the different allocation of
parallel processing resources across the cluster. You have to test
your adjustments for possible run time and performance impacts of
the overall system.