Analyze Available CPU Resources

For a complete view of CPU usage across all Ops Insights enabled databases, click CPU under Resources in the left navigation menu. This page has a master-detail design with three primary components:

  • Insights: Table of databases flagged for CPU utilization insights
  • Aggregate: Treemap of CPU utilization over all databases in the compartment
  • Trend & Forecast: Time series charts of CPU usage trends and forecasts for individual or groups of databases

By default, you view comprehensive CPU usage for each database. Viewing the resource utilization for each database, lets you compare resource utilization between databases and identify servers with underused or overused resources.

Note

To view or use this CPU usage information outside of this service, Ops Insights allows you to download a CSV version.
Note

For specific details about the selected database, click the external link icon next to the database name in the Trend & Forecast chart. You'll be taken to the details page for that database.

Insights Table

The Insights table and Aggregate treemap are either-or choices for the top half of the page, which is used to drive the Trend & Forecast drill-down chart in the bottom half.

Figure 3-1 Ops Insights Table

Ops Insights Table

Database Types
  • ADW-D: Autonomous Data Warehouse Dedicated
  • ADW-S: Autonomous Data Warehouse Serverless
  • External NonCDB: External Non-Container Database
  • External PDB: External Pluggable Database
  • Virtual Machine PDB: Virtual Machine Pluggable Database
  • Bare Metal PDB: Bare Metal Pluggable Database
  • ExaDB-D PDB: Exadata Database Service on Dedicated Infrastructure pluggable database
  • ExaDB-D NonCDB: Exadata Database Service on Dedicated Infrastructure non-container database
Note

ExaDBs monitored by Enterprise Manager are also allowed.
  • Utilization (%): Utilization percentage for the 90th percentile value of the daily average CPU usage over the selected time period
  • Usage Change (%): Percentage change in the linear trend of CPU usage over the selected time period
  • Usage: 90th percentile value of the daily average CPU usage over the selected time period
  • Allocation: Total number of CPUs allocated to the database across instances.
  • Database Version: Version of the Oracle Database.
  • Telemetry: The source platform of the database: Cloud Infrastructure, Enterprise Manager, or Agent Service
  • Instances: The number of instances. Click on the instance number to display a list of the instance and host names.

The table facilitates a number of tasks in support of Capacity Planning use cases:

  • Isolates databases with current or forecasted high (or low) utilization
  • Quickly compare these databases to each other by size or usage to prioritize analysis
  • Identify databases with fastest growth (shrinkage) in CPU demand over the time period

Selecting a database row in the Insights Table will display historical trends and future forecasts for CPU usage for that database in the lower half of the page, described next.

Trend and Forecast Chart

The Trend and Forecast chart displays several historical time series plots related to CPU allocation and usage for the selected database or group, as well as linear regression, seasonality aware and AutoML forecasting (machine learning) trends and forecasts over these data. Trends are computed over the time period selected in the global context area.

The chart facilitates numerous tasks in support of Capacity Planning use cases:

  • Forecast future maximum and average demand for CPU resources
  • Compare current usage to allocation to detect over-provisioning
  • Compare maximum to average usage and trends to assess demand volatility
  • Forecast difference between maximum and average daily CPU usage to estimate potential savings from workload smoothing
  • Detect and forecast daily or weekly seasonality in CPU demand
  • See confidence channels around forecasts to contextualize variability
The following models can be selected for display on the upper right of the Trend and Forecast chart:
  • Linear regression: The linear regression model assumes a linear relationship across variables to predict the future resource usage.
  • Seasonality aware: The seasonal option combines a simple model that detects basic seasonality with dynamic, user-selectable data.
  • AutoML forecasting: The AutoML forecasting option selects the best fin from multiple machine learning models trained on fixed data window.

The following CPU data series can be selected or deselected for display from the legend at right end of the chart:

  • Capacity - Maximum number of CPUs (cores x threads/core) available on the underlying infrastructure. This is only shown when looking at a single non-autonomous database, or when grouping by Host or CDB
  • Allocation - Total number of CPUs allocated to the current database or databases
  • Max Allocation - Maximum number of CPUs allocated to the current database or databases. This is relevant when an autonomous database has auto-scaling enabled
  • Max Usage - Maximum value of daily (hourly) CPU usage data for database (or group)
  • Max Usage Forecast - Forecast of Max Usage data using selected forecast model
  • Avg Usage - Average value of daily (hourly) CPU usage data
  • Avg Usage Forecast - Forecast of Avg Usage data using selected forecast model
  • Max Confidence Channel - Confidence channel for Max Usage Forecast
  • Avg Confidence Channel - Confidence channel for Avg Usage Forecast
  • Over-Allocation Range - Over-Allocation Range appears (shaded region) when the total number of allocated CPUs across the databases is greater than the CPUs of the underlying infrastructure (host).

Linear regression

Averages and maximums are over either daily raw data or hourly raw data depending on the global time context as follows: hourly aggregates are used when time period is within the last seven days, otherwise daily aggregates are used.

Forecasts periods are set to ½ the length of the trending time period, e.g. 30-day trends are projected 15 days forward, and 90-day trends 45 days forward.

Figure 3-2 Trend Forecast Chart

Trend Forecast Chart

The above chart shows daily average and maximum CPU usage over 30-days for the HR-Dev database. We see a consistent and considerable gap between the Avg Usage and Max Usage data series, indicating a high level of variability in CPU demand during the day.

The Max Usage trend and forecast are both very close or touching the Max Allocation for the database, indicating a risk of capacity exhaustion should demand increase or if new workload is introduced.

The difference here between forecast Max Usage (~29 Avg Active CPU) and forecast Avg Usage (~15 Avg Active CPU) is the difference between how much CPU is required to run all work safely and how much CPU is actually required to do all work. When CPU resources are “hard allocated” to databases, this difference represents the amount of resource being paid for minus the amount of resource being used, and is thus an “opportunity cost” induced by having highly variable CPU demand.

One potential way to mitigate this imputed cost of variability is by sharing CPU resources among several databases and allowing dynamic resource allocation among them in response to changing demand.

Oracle Autonomous Database with Auto-scale enabled offers precisely such a solution.

Seasonality Aware

The following chart shows 90-day trend and forecast for the ATP-D database using the seasonality aware model:

Figure 3-3 Seasonality Detection

Graphic depicting Seasonality Detection

We see that the seasonality aware model has detected strong weekly seasonality in both the Avg Usage and Max Usage time series, resulting in the wavy forecast lines. There is also a high level of variability in the data, as evidenced by the very wide confidence channels around the forecast lines.

By incorporating the undulating weekly seasonality of the data in the forecast, users are better able to anticipate peak demand requirements that can be smoothed away using linear forecasts.

Forecast Backtesting

Forecast Backtesting allows you to compare historical forecasts for time periods over which actual data is collected and quantify the deviation between historical and forecasted trends. This lets you easily test the accuracy of forecasted trends and gain confidence in forecasts by allowing you to:
  • Assess the sensitivity of forecasts to training range selection
  • Assess the sensitivity of forecasts to outliers
  • Assess the accuracy of longer-range forecasts (longer than 1/2 training period)

Figure 3-4 Forecast Backtesting UI

Graphic shows the forecast backtesting UI

You perform Forecast Backtesting via Capacity Planning (CPU, Storage, Memory, I/O) for database and host resources. Immediately below the Trend & Forecast chart is Forecast Settings. Here, you set the Forecast Period (how far in the future you want to predict a trend) as well as the Training Period (the time period for which historical data is used to forecast a trend). Changes made to Forecast Settings are immediately reflected in the Trend & Forecast chart.

You can move, expand, or contract the Training Period selector to isolate the exact historical data you determine to be the most predictive for accurate forecasting. For example, you may want to exclude time periods that contain anomalous data spikes, which would throw off predictive analysis and result in higher percentage deviations between actual and predicted trends.

The forecast period begins immediately after the training period ends. More than just allowing you to set when the forecast should begin, the selector lets you begin the forecast period at a point in the past (backtesting), thus allowing you test how accurate the forecast will be based on how accurately it predicts a known historical trend. By default, Ops Insights creates a forecast period of 1/2 of the training period. You can set this to a specific number of days (45, 90, 180, and 365).

To get a quantitative look at how accurate the forecast is, hover your cursor over Average Deviation Values in the Forecast Settings pane to view the average percentage deviation between forecast and actual data.

To clear all forecast settings and start over, click Reset.

AutoML forecasting

AutoML (Machine Learning) forecasting leverages Oracle Data Science, employing metalearning to quickly identify the most relevant features, model and hyperparameters for a given training dataset. Forecast and model are precomputed and the forecasts are periodically retrained. AutoML's forecasting selects the best fit from multiple machine learning models trained on fixed data windows. The forecast uses up to 13 months of data, or the highest amount of data available for a resource if the resource has less than 13 months since onboarding. AutoML utilizes daily data and is only available within a single resource scope (single host or database).

AutoML forecasting is located within the Trend & Forecast chart, click on the AutoML forecasting button. A new pop up will appear with the AutoML forecasting charts loaded. It will state the training period and the selected forecast algorithms for maximum usage and average usage. The maximum and average confidence channels are also displayed within the chart. The confidence interval for these are 95%, meaning that 95% of future points are expected to fall within this radius from the forecast.

Figure 3-5 AutoML forecasting Chart

AutoML forecasting Chart
Note

The slider is a viewport selector.

To learn more about AutoML see: AutoMLx.

View Unused CPU Capacity

To view unused CPU capacity within your database resources navigate to Capacity Planning, then Databases, and select CPU. In the Database CPU screen select the Aggregate tab, under Grouping select either Exadata, VM cluster or Host. Selecting one of these will allow you to checkmark the Show Unused Capacity check.

Once the Show Unused Capacity has been checked, a gray bar will appear on the treemap showing the unused space. You can additionally expand the treemap for a better visualization, as well as view the treemap squarified, vertical, or horiziontal. Unused capacity will be grouped by vertically default.

Figure 3-6 Database CPU Treemap Unused Capacity

Database CPU Aggregate treemap showing unused capacity