Compute Engine provides machine type recommendations to help you optimize the resource utilization of your virtual machine (VM) instances. These recommendations are generated automatically based on system metrics gathered by the Stackdriver Monitoring service over the previous 8 days. Use these recommendations to resize your instance's machine type to more efficiently use the instance's resources. This feature is also known as rightsizing recommendations.
To learn more about the different sizing options available to VM instances, read the machine types documentation.
Sizing recommendations are available free of charge.
Limitations and use cases
Sizing recommendations are currently not available for VM instances created using App Engine flexible environment, Cloud Dataflow, or Google Kubernetes Engine, or for VM instances with ephemeral disks, GPUs, or TPUs.
In rare cases, you might see an error message when applying a recommendation. For example, a recommended machine type might be too small for the number of attached disks, it might not meet the resource requirements of your images or licenses, or it might not be available in a particular zone.
The sizing recommendation algorithm is suited to workloads that follow weekly patterns, workloads that grow or shrink over weeks of time, workloads that persistently underutilize their resources, or workloads that are persistently throttled by insufficient resources. In such cases, 8 days of historical data is enough to predict how a change in the size of the machine can improve resource utilization.
The sizing recommendation algorithm is less suited to workloads that spike less frequently (for example, monthly spikes) because 8 days of data is not enough to capture or predict the processing fluctuations.
For workloads where cost is more important to you than performance, such as batch workloads, you can ignore recommendations to increase size.
Metrics used for sizing recommendations
Compute Engine monitors the CPU and memory utilization of running VMs and makes recommendations using the last 8 days of data. Compute Engine makes recommendations like the following:
If your instance has had low CPU utilization most of the time, Compute Engine recommends a machine type with fewer virtual CPUs.
If your instance has had high CPU utilization most of the time, Compute Engine recommends a machine type with more virtual CPUs.
If your instance hasn't used a large fraction of its memory, Compute Engine recommends a machine type with less memory.
If your instance has actively been using a large fraction of its memory most of the time. Compute Engine recommends a machine type with more memory.
Compute Engine might make recommendations to use either a standard or custom machine type. Note that there are some limitations in the amount of memory and vCPU available to a machine. In particular, increasing one resource might require increasing the other at the same time, to follow the specifications of a valid machine type. Also, Compute Engine only recommends machine types that are available in the zone where the instance is running.
See custom machine type specifications for details.
For cost difference estimations, the cost of an instance is based on the previous week's usage (before sustained use discount) and is extrapolated to 30 days. This is then compared to the recommended machine type monthly cost (before sustained use discount). For accurate pricing and details, read the pricing documentation.
Viewing sizing recommendations
Compute Engine makes recommendations through the Google Cloud Platform Console. Recommendations are turned on by default.
- Go to the VM instances page.
- Select your project and click Continue.
- On your list of instances, click the Columns drop-down list in the upper-right corner to toggle one or more columns.
- Enable or disable the columns that you want, including Recommendation.
Look at the Recommendation column to review recommendations for individual instances. You can also sort the column by amount of estimated savings. If there are no recommendations next to your instances, Compute Engine does not have any recommendations to make.
When you create an instance, recommendations for the new instance appear 24 hours after the instance is created. If you change the machine type of an instance, Compute Engine provides further recommendations within 24 hours after the change.
Afterward, VM recommendations are refreshed at regular intervals throughout the day.
Resizing instances according to recommendations
If you determine that you want to apply the recommendations made by Compute Engine, you can resize the instance directly from the recommendations screen.
On the VM instances page, click the recommendation text for the instance you want to resize.
A pop-up appears with more detail and an Apply button to apply the recommendations to the instance. Clicking this button causes Compute Engine to stop the instance, change its machine type, and restart the instance.
Optionally, you can also click the Customize link to customize the instance as you prefer.
Click the Apply button to apply the changes.
When you have finished using a recommendation, you can dismiss it. Dismissing removes a recommendation from the total savings estimate and also minimizes the appearance of the recommendation by shading the recommendation.
To dismiss a single recommendation:
On the VM instances page, click the recommendation text you want to dismiss.
A pop-up appears with more detail and a Dismiss recommendation button.
Click Dismiss recommendation.
To dismiss all recommendations, click the Dismiss all button on the VM instances page.
To restore a recommendation:
On the VM instances page, click the gray recommendation text you want to restore.
A pop-up appears with more detail and a Restore recommendation button.
Click Restore recommendation.
Using the monitoring agent for more precise recommendations
Stackdriver offers a Monitoring agent that collects additional disk, CPU, network, and process metrics from your VM instances. To collect this data, install the Monitoring agent on your VM instances so it can access system resources and app services.
If the Monitoring agent is installed and running on a VM instance, the CPU and memory metrics collected by the agent are automatically used to compute sizing recommendations. The agent metrics provided by the Monitoring agent give better insights into resource utilization of the instance than the default Compute Engine metrics. This allows the recommendation engine to estimate resource requirements better and make more precise recommendations.
To install the agent, see Installing the Monitoring agent.