Databases Reference
In-Depth Information
Based on these numbers, for this single database we can assume that we need the following:
10.38 CPUs on the compute grid
14.47 CPUs for the storage grid
17.52 CPUs in total. Note that this number is smaller than the sum of compute grid and storage
grid estimates; this is due to a bit of estimation for compute node (that is, DB CPU ) metrics.
Note
For this analysis, we propose using the maximum values to account for resource consumptions spikes.
Next, you should expand your analysis to account for additional environments, an estimated percentage of
resource consumption expected across these databases, as well as add a “margin of error.” Use the following SQL*Plus
script to perform this task, with the following input variable descriptions:
&num_addtl_dbs = Number of additional, potentially non-production databases that we will
plan on consolidating on the same Exadata Database Machine.
&pct_resource_load = Estimated fraction of CPU consumption that each additional
environment will consume with respect to the database analyzed. For this, “1” = equal CPU
weight compared to the database you're running the analysis on, “.1” = 10% the CPU load of
your database, and so on.
&margin_err = Factor of safety. For this, “1” = no margin of error, “2” = multiply our measured
numbers by two, and so on.
In Listing 5-5, we will assume that we will have five additional databases, each with 25% the CPU load of our
original database, and add a 20% margin of error for our CPU calculations.
Of course, it's always more accurate to measure true CpU requirements for each database targeted for the
Exadata migration but in many cases, non-production databases may have a variable workload and usage pattern.
Note
Listing 5-5. lst05-05-awr-cpu-corecnt-sum-extr.sql
SYS @ PROD> select avg(OraCPU) AvgOraCPU, max(OraCPU) MaxOraCPU, stddev(OraCPU) StdOraCPU,
avg(OraIOCPU) AvgOraIOCPU, max(OraIOCPU) MaxOraIOCPU, stddev(OraIOCPU) StdOraIOCPU,
avg(OraCPUTot) AvgOraCPUTot, max(OraCPUTot) MaxOraCPUTot, stddev(OraCPUTot) StdOraCPUTot
from (
select
(aas + (&&num_addtl_dbs * &&pct_resource_load * &&margin_err * aas )) aas,
(oracpupct+ (&&num_addtl_dbs * &&pct_resource_load * &&margin_err * oracpupct)) oracpupct,
(OraCPU + (&&num_addtl_dbs * &&pct_resource_load * &&margin_err * OraCPU)) OraCPU,
(OraIOCPU + (&&num_addtl_dbs * &&pct_resource_load * &&margin_err * OraIOCPU)) OraIOCPU,
(OraCPUTot + (&&num_addtl_dbs * &&pct_resource_load * &&margin_err * OraCPUTot)) OraCPUTot
from ( {... code from Listing 5-4 ...} )
... output omitted
75 order by id asc
76 ) where OraCPUTot < 100
 
 
Search WWH ::




Custom Search