Applying sizing recommendations for MIGs

Beta

This is a Beta release of
Rightsizing recommendations. This feature
is not covered by any SLA or deprecation policy and might be subject to backward-incompatible
changes.

Compute Engine provides machine type recommendations to help you
use the resources in your managed instance groups (MIGs) more efficiently.
The Stackdriver Monitoring service generates these recommendations based on
system metrics that it gathers. Use these
recommendations to determine whether you should resize the machine type of your
instances to add or remove vCPU and memory resources.

To learn more about the different sizing options available to VM instances,
read the machine types documentation.

Sizing recommendations are also known as rightsizing recommendations.

Note: These recommendations do not change the size of the managed instance
group.

Before you begin

Restrictions

Pricing

During beta, sizing recommendations are available free of charge. However,
Google might charge for this feature in future releases.

Metrics used for sizing recommendations

Compute Engine monitors the CPU and memory utilization of running
virtual machines (VMs) and makes recommendations using the last 8 days of data.
To recommend the best single machine type for all instances in a managed
instance group, Compute Engine generates a standard sizing
recommendation for individual instances and, after adjusting for outliers,
chooses a machine type that does not undersize any single VM instance. Any
instances that aren't running, such as stopped or restarting VM instances,
aren't included in the calculation.

Compute Engine might make recommendations similar to the following:

If your instance group has had low CPU utilization most of the time,
Compute Engine recommends a machine type with fewer virtual CPUs.

If your instance group has had high CPU utilization most of the time,
Compute Engine recommends a machine type with more virtual CPUs.

If your instance group hasn't used a large fraction of its memory,
Compute Engine recommends a machine type with less memory.

If your instance group has actively been using a large fraction of its memory
most of the time. Compute Engine recommends a machine type with
more memory.

Note: Compute Engine uses the same CPU utilization numbers reported on
the Compute Engine dashboard to determine the recommendations to
make. These numbers are based on the average utilization of your instances over
60-second intervals, so they do not capture short CPU spikes. Apps with
short CPU spikes might need to run on a larger machine type than the one
recommended by Google, or they might need to enable autoscaling to accommodate
these spikes.

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.

If the workload for the managed instance group is very different across
individual instances, some instances might be oversized so that the fully
utilized instances have enough resources according to the recommendation. For
example, Compute Engine might make the following recommendation to
support the workload of instance 4 even though instances 1, 2, 3, and 5 might
be oversized and underutilized:

Recommendations made for a managed instance group

For this reason, recommendations for a managed instance group work best when the
instances have a reasonably distributed workload.

For cost difference estimations, the cost of an instance group 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.

Workloads for sizing recommendations

You can take advantage of sizing recommendations if you have the following
workloads:

Workloads with periodic increases and decreases in traffic, such as workloads
susceptible to seasonal traffic.

Workloads that are underutilized in CPU and RAM because they are bounded by
other limitations, such as read/write throughput.

Workloads that run software that requires individual software licenses and
that can't afford to add more instances; in this case, you might rely on
sizing recommendations to scale your resources while keeping the number of VM
instances constant.

Workloads that are unable to dynamically adapt to a changing number of
instances, such as workloads that aren't a good fit for autoscaling.

You might not want to use sizing recommendations if you have workloads that see
very limited spikes where a recommendation wouldn't be generated quickly enough
to be useful or if you have managed instance groups where each instance handles
a drastically different workload, creating recommendations that would oversize
most VM instances in the group.

Viewing sizing recommendations

Compute Engine makes recommendations through the Google Cloud Platform Console.
Recommendations are turned on by default, but if you need to toggle
recommendations on or off, follow these instructions.

Look at the Recommendation column to review recommendations for
individual managed instance groups. You can also sort the column by the
amount of estimated savings. If there are no recommendations next to the
instance groups, Compute Engine doesn't have any recommendations
to make.

If your instance group has two instance templates, Compute Engine
provides recommendations for each instance template. Click a
recommendation to view recommendations for the respective instance template.

When you create a new managed instance group, recommendations for the new group
appear 24 hours after the instance has been created.

Afterward, recommendations are refreshed at regular intervals throughout the
day.

Applying recommendations to instance groups

Note: You might have valid reasons for running a particular instance group at
very low or very high utilization. Sizing recommendations are suggestions to
help you more efficiently use your instances, but they might not be appropriate
for every situation. For example, if you expect your VM instances to be heavily
utilized at startup, you should never apply recommendations because, after a
period of time, the recommendations don't take into account the high
utilization required for startup. Applying recommendations could cause you to
resize your instances below the capacity the instances need to boot up,
preventing the instances from booting up successfully the next time they're
restarted.

To apply the recommendations made by Compute Engine, you can resize
the instances in the group directly from the recommendations screen.

When you apply a recommendation to a managed instance group,
Compute Engine:

Clones the instance templates being used by the managed instance group.

Modifies the cloned instance templates based on the recommendations and any
changes you make.

You can only apply recommendations for one instance template at a time.

A managed instance group can maintain at most two instance templates at a
time, so it is not possible to canary a recommendation while still
maintaining two other instance templates. However, you could canary a
recommendation if your instance group only has one instance template.

Caution: Applying a recommendation causes Compute Engine to actively
delete and create instances to replace your existing instances. This is a
potentially disruptive action for your instance group, so make sure you prepare
appropriately. Compute Engine attempts to alleviate some of these
concerns by letting you control the rate of updates in the
Customize deployment screen, described below.

To apply a recommendation:

On the Instance groups page, click the recommendation text for the
instance group that you want to update.

A pop-up appears with more detail and a choice to Cancel,
Dismiss Recommendation, or Continue. To review and apply the
recommendation, click Continue.

On the next screen, the recommendation is explained in detail. If you proceed
with the recommendation, Compute Engine creates an instance
template and updates all instances in the instance group to use the new
template.

(Advanced) If you want to customize how the new template is rolled out to
your instances, click Customize deployment. A new screen appears.

Under Template, you can choose whether to apply the new template to
100% of the instances in the instance group or to only a subset of the
instances.

Under Update mode, you can choose whether Compute Engine
actively deletes and creates instances using the new instance template
(Proactive) or if Compute Engine only applies the update
if the instance is created by other means, such as a resize or when a
new instance is added to the group (Opportunistic).

Under Maximum surge, you can choose how many temporary extra
instances to create above the managed instance group's target size.
The more instances you allow, the faster your update will be, at the
cost of additional instances. The default is 1 additional instance.

Under Maximum unavailable, you can choose how many instances are
allowed to be offline at a time during this update. This number also
includes any instances that are unavailable for other reasons. For
example, if the instance group is in the process of being resized up,
instances in the middle of being created might be unavailable; these
instances would count towards this number. The default is 1 instance
that can be unavailable at a time.

Under Minimum wait time, you can choose how many seconds to wait
before marking a new instance as updated. The time starts
after a successful health check. Use this feature to control the rate
at which the instance template is applied.

Click the Save button to apply the changes.

When you are ready, click Deploy to deploy the changes.

Dismissing recommendations

When you have finished with a recommendation, you can dismiss it. Dismissing
removes a recommendation from the total savings estimate and also minimizes the
appearance of the recommendation by rendering the recommendation shaded.

Total savings estimate

To dismiss a single recommendation:

On the Instance groups 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
Instance groups page.

Note: Dismissing a recommendation de-emphasizes it in the table but does not
hide it.

To restore a recommendation:

On the Instance groups page, click the grey 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.