Navigation

Cluster Auto-Scaling

Feature Availability

Cluster Auto-Scaling is available for M10+ clusters using the General instance class.

You can configure your Atlas cluster to automatically scale its cluster tier, storage capacity, or both in response to cluster usage. Cluster auto-scaling removes the need to write scripts or use consulting services to make scaling decisions. To help control costs, you can specify a range of cluster tiers to which your cluster can automatically scale.

Auto-scaling works on a rolling basis, meaning the process does not incur any downtime.

How Atlas Scales Cluster Tier

Atlas analyzes the following cluster metrics to determine when to scale a cluster, and whether to scale the cluster tier up or down:

  • CPU Utilization
  • Memory Utilization

To learn more about how to monitor cluster metrics, see View Cluster Metrics.

Before scaling your cluster tier, Atlas checks that the cluster would not be in a tier outside of your specified Minimum and Maximum Cluster Size range.

Scaling Up a Cluster Tier

If the next highest cluster tier is within your Maximum Cluster Size range, Atlas scales the cluster up to the next tier if one of the following is true for the current cluster:

  • Average CPU Utilization has exceeded 75% for the past hour, or
  • Memory Utilization has exceeded 75% for the past hour.

Note

Atlas only auto-scales a cluster up if the cluster has not been scaled up (manually or automatically) in the past hour.

Scaling Down a Cluster Tier

If the next lowest cluster tier is within your Minimum Cluster Size range, Atlas scales the cluster down to the next lowest tier if both of the following are true:

  • The average CPU Utilization and Memory Utilization over the past 72 hours is below 50%, and
  • The cluster has not been scaled down (manually or automatically) in the past 72 hours.

To learn more about downward auto-scaling behavior, see Considerations for Downward Auto-Scaling.

How Atlas Scales Cluster Storage

When cluster storage auto-scaling is enabled, Atlas automatically increases cluster storage when disk usage reaches 90%. The scaling behavior differs by cloud provider:

  • On AWS and GCP clusters, Atlas increases cluster storage capacity to achieve 70% disk utilization. For information on AWS storage change limitations and how Atlas works around them, see Changing Storage Capacity on AWS.
  • On Azure clusters, Atlas doubles the current amount of cluster storage.

Note

When you increase the storage capacity of a cluster, Atlas increases the cluster’s oplog size. Atlas scales the oplog to 5% of the cluster capacity, not to exceed 50 GB. NVMe storage requires an oplog which is 10% of the storage capacity. Atlas doesn’t change the oplog size if it exceeds 5% of the new storage capacity (10% in the case of NVMe storage).

As cluster storage capacity decreases, Atlas doesn’t change the oplog size unless it exceeds a certain maximum determined according to MongoDB best practices.

Cluster Tier and Cluster Storage May Scale in Parallel

When Atlas attempts to automatically scale your cluster storage capacity, it may need to scale your storage outside of the bounds supported by your current cluster tier. To help ensure that your cluster does not experience any downtime, Atlas will scale your cluster tier (in addition to cluster storage) to accommodate the new storage capacity.

Example

The maximum storage capacity for an M30 cluster is 480 GB. If you have an M30 cluster with maximum storage allocated and your disk usage reaches 90%, a storage auto-scaling event would require raising your storage capacity to 600 GB. In this case, Atlas scales your cluster tier up to M40, because this is the lowest cluster tier which can support the new required storage capacity.

In the event that your specified maximum cluster tier cannot support the new storage capacity, Atlas:

  1. Raises your maximum cluster tier to the next lowest tier that can accommodate the new storage capacity.
  2. Scales your cluster tier to that new maximum tier.

Note

When Atlas overrides your maximum cluster tier, it also disables your cluster from automatically scaling down. If you want to re-enable downward auto-scaling, you must do so manually from your Cluster Settings. See Considerations for Downward Auto-Scaling.

If Atlas attempts to scale your cluster tier down and the target tier cannot support your current disk capacity, provisioned IOPS, or both, Atlas does not scale your cluster down. In this scenario, Atlas updates your auto-scaling settings based on the relationship between your current cluster tier and configured maximum cluster tier:

  • If the cluster is currently at the configured maximum cluster tier, Atlas disables the cluster from automatically scaling down because all smaller tiers would not be able to accommodate the necessary storage settings. If you want to re-enable downward auto-scaling, you must do so manually from your Cluster Settings. See Considerations for Downward Auto-Scaling.
  • If the cluster is not currently at the configured maximum cluster tier, Atlas raises the minimum cluster tier to the current cluster tier. In this case, Atlas does not disable downward auto-scaling.

This auto-scaling logic is designed to reduce downtime incurred by your storage settings not matching your workload.

When an auto-scaling event modifies your configured minimum or maximum cluster tier, Atlas sends an email to all project members with information on the event. The email includes the new cluster tier and information on any modified minimum or maximum tier bounds.

Configure Auto-Scaling Options

You can configure auto-scaling options when you create or modify a cluster.

Atlas displays auto-scaling options in the Auto-scale section of the cluster builder:

Image showing the auto-scaling cluster options.

Configure Cluster Tier Auto-Scaling

In the Cluster tier section of the Auto-scale options, you can specify the minimum and maximum sizes to which your cluster can automatically scale.

Auto-scaling is disabled by default. To enable auto-scaling:

  1. In the Auto-Scale section, check Cluster tier.
  2. Select a Maximum Cluster Size from the dropdown.

When you enable auto-scaling, by default your cluster can only automatically scale up to a higher cluster tier. To enable auto-scaling to a lower cluster tier:

  1. Check Allow cluster to be scaled down.
  2. Select a Minimum Cluster Size from the dropdown.

Considerations for Downward Auto-Scaling

  • Automatically scaling down to a lower cluster tier may leave your cluster unable to handle your workload. Only allow the cluster to be scaled down if you have a clear understanding of your cluster’s workload. Ensure that you account for any possible spikes or dips in cluster activity.

  • You cannot scale to a cluster smaller than M10.

  • When Atlas auto-scales your cluster down, it checks that your minimum cluster tier bound supports your cluster’s current disk configuration. If your selected minimum cluster tier cannot support your current disk configuration, Atlas adjusts your minimum tier to the next lowest tier which can support your configuration.

    Example

    You have set your auto-scaling bounds to M10-M60 and your current cluster tier is M40. Atlas triggers a downward auto-scaling event because the average CPU Utilization and Memory Utilization on your current cluster has been under 50% for the past 72 hours.

    1. Atlas attempts to auto-scale your cluster down to M30. M30 supports your current disk configuration, so the auto-scaling operation succeeds.
    2. Atlas checks your minimum cluster bound (M10) and determines that M10 cannot support your current disk configuration.
    3. Atlas determines that M20 is the lowest cluster tier which can support your current disk configuration, and sets your minimum cluster tier to M20.

Configure Cluster Storage Auto-Scaling

Cluster storage scaling is enabled by default. To opt out of cluster storage scaling, un-check the Storage checkbox in the Auto-scale section.

For more information on cluster storage, see Customize Cluster Storage.

Acknowledge Auto-Scaling Events

When an auto-scaling event occurs:

  • Atlas logs the event in the project Activity Feed. For more information on the Activity Feed, see View All Activity.
  • Atlas sends an email to all project members with information on the event. The email includes the original cluster tier and the new cluster tier after auto-scaling has occurred.