Docs Menu

Docs HomeLaunch & Manage MongoDBMongoDB Atlas

Customize Cluster Storage

On this page

  • Cluster Class
  • Low CPU Class
  • NVMe Storage
  • Storage Capacity
  • Oplog Size Behavior
  • Change Storage Capacity or IOPS on AWS
  • Extend Storage Capacity and IOPS on Azure
  • Change Storage Capacity on Google Cloud
  • Change Storage Capacity for Multi-Cloud Provider Clusters
  • IOPS (AWS Only)
  • Provisioned IOPS vs Standard IOPS in AWS
  • Configure the IOPS Rate
  • Minimum Disk Capacity to RAM Ratios
  • Auto-Scale Cluster Tier and Storage Capacity

Each cluster tier comes with a default set of resources. M10+ clusters provide the ability to customize your storage capacity.

Atlas provides the following storage configuration options, depending on the selected cloud provider and cluster tier.

M40+ clusters offer multiple options, including:

  • Low CPU

  • General

  • Local NVMe SSD

All production environments can use the General option.

Select the Class box with your preferred speed. Changes to cluster class affect cost.

Generally, the Low CPU option offers a lower-cost alternative for applications that require more memory and fewer CPUs. This option includes half the vCPUs of an instance with the General option of the same tier. For example, a General M40 instance includes 4 vCPUs, while a Low CPU M40 instance includes 2 vCPUs. Depending on the cluster tier, this option may also include fewer max connections. To learn more, see Connection Limits and Cluster Tier.

You can select the Local NVMe SSD storage option for some dedicated clusters that run on AWS or Azure. Locally attached ephemeral NVMe SSDs offer the highest level of speed and performance.

File Copy Based Initial Sync is enabled for dedicated clusters with NVMe running on MongoDB 6.0+.

Note

Atlas doesn't support NVMe clusters on Google Cloud.

To change the server data volume size, do one of the following tasks:

  • Move the slider until the text box displays your preferred disk size.

  • Specify the exact disk size in the text box.

For Azure-specific instructions, see Extend Storage Capacity and IOPS on Azure.

Changes to storage capacity affect cost.

Note

MongoDB uses a small portion of your specified storage capacity for buffer files, journal files, and log files to ensure proper cluster operation. In no-overwrite storage engines like the WiredTiger storage engine, you should expect to use approximately 20% more disk space than your compressed data occupies.

Atlas manages the cluster's oplog size and its entries differently, depending on whether storage auto-scaling is enabled for the cluster.

  • Atlas enables cluster storage auto-scaling by default. If you choose to use storage auto-scaling, Atlas manages the oplog entries based on the minimum oplog retention window (oplogMinRetentionHours) setting. The oplog entries are time-stamped. The oplog window is the time difference between the newest and the oldest timestamps in the oplog.

    By default, Atlas sets the minimum oplog retention window to 24 hours. This means that, unless you set the minimum oplog retention window to a particular custom value, the mongod for the Atlas cluster retains all oplog entries for at least 24 hours and until the oplog reaches the maximum size that MongoDB best practices permit.

    You can set the minimum oplog retention window to a particular value in the Atlas UI. For storage auto-scaling to complete successfully, Atlas requires the minimum oplog retention window (oplogMinRetentionHours) up to (60 seconds) * (GB of disk space configured).

  • You can opt out of cluster storage auto-scaling by un-checking the Storage Scaling checkbox in the Auto-scale section. If you opt out of storage auto-scaling, Atlas manages the oplog size as follows:

    • If you don't specify the oplog size in the UI, Atlas sets the oplog size to:

      • 5% of the disk size when you create a cluster, for General and Low-CPU clusters

      • 10% of the disk size for clusters with NVMe storage.

      Atlas doesn't change the oplog size if you change the storage size.

    • You may choose to scale up the oplog size when you scale up the cluster's storage. In this case, manually set the oplog size to a particular value when you create a cluster. As you increase the cluster's storage, Atlas scales the oplog size as follows:

      • For General and Low-CPU clusters, the oplog size scales up to remain at 5% of the storage capacity, not to exceed a certain maximum determined according to MongoDB best practices.

      • For clusters with NVMe storage, the oplog size scales up to remain at 10% of the storage capacity, not to exceed a certain maximum determined according to MongoDB best practices.

    If the cluster's storage capacity decreases, Atlas doesn't change the oplog size.

Atlas handles changes differently based on whether you want to increase or decrease storage capacity or storage throughput (IOPS) on AWS.

If previous changes are completed, AWS usually takes about six hours to increase storage capacity or IOPS. However, this time frame can vary depending on the data size stored on disk. To learn more, see the AWS documentation. Atlas supports more changes within the time frame for volume modification changes.

How Atlas handles additional changes within the time frame for volume modification changes depends on the size of your hosts' data volumes and the time when you make the change.

  • For the first change, Atlas modifies data volumes in place without downtime.

  • For later changes:

    Data Volume Size
    Time Since Last Storage Change
    Action Atlas Takes
    Less than 1TB
    Less than 5h30m
    Atlas provisions new volumes and syncs the data from the old volumes. If Atlas provisions new volumes, you can access your cluster. You can't access nodes that AWS modifies until AWS attaches the new volume.
    Less than 1TB
    More than 5h30m
    Atlas waits until the volume modification takes effect, then modifies the hosts' data volumes in place without downtime.
    More than 1TB
    Any
    Atlas waits until the volume modification takes effect, then modifies the hosts' data volumes in place without downtime. This takes less time than provisioning new volumes and syncing data from the old to the new volumes.

Before you apply your storage capacity or IOPS increases, the Review Changes page describes how Atlas approaches the increase.

The Database Deployments page displays a banner if Atlas waits until a six-hour window closes before modifying your cluster's storage capacity or IOPS.

These behaviors apply when Atlas changes capacity during auto-scaling.

To learn more about AWS's limitations, see the AWS documentation.

  • AWS doesn't allow you to reduce storage capacity in place.

    Atlas can reduce storage capacity in place. Atlas provisions new volumes then syncs data from the old to the new volumes. This works around the AWS limitation.

  • AWS does allow you to reduce IOPS without migrating data.

For Low CPU or General clusters deployed on Azure, you can extend IOPS and the data volumes' storage capacity in the Atlas UI.

If you increase disk storage for Low CPU or General clusters, you can:

  • Receive more IOPS on clusters in the same cluster tier.

  • Use these clusters for hosting applications with high IO workload requirements without having to configure sharding to spread the applications' workload across servers.

The following statements describe the options you have in the Atlas UI for IOPS and storage management on Azure clusters.

  1. Initially, when you choose an Azure Low CPU or General cluster, Atlas assigns the default storage size and IOPS based on the tier you choose.

  2. Depending on the specific characteristics of the storage volumes used in your region and whether the cluster is in the region that supports extended storage, you can do one of the following actions:

    • If your region doesn't support extended storage, you can change storage capacity only in preset amounts and can't change the IOPS using the slider.

    • If your region supports extended storage, you can use the Storage slider to increase the default storage capacity within the same tier. Atlas also increases IOPS to correspond to the increased storage size.

  3. If, after you increase the storage volume's size, the increased number of IOPS still isn't sufficient, and the cluster's tier is in a region that supports extended storage, you can further extend the number of IOPS using the IOPS slider, without changing the cluster tier.

  4. In addition, you can also expand the total cluster storage beyond the default limits for the cluster's tier in regions that support extended storage. You enable extended storage sizes in the Project Settings.

The following sections describe how to increase the storage size and IOPS.

To change the server's data volume size:

  1. View the cluster details.

  2. In the Cluster tier > Storage section, you can do one of the following actions, depending on the region:

    • If your region supports extended storage, move the slider to the right and choose your preferred disk size.

      The text box to the right of the slider changes dynamically and indicates the new disk size. Atlas also increases IOPS to correspond to the increased storage size.

    • If your region doesn't support extended storage, you can increase the disk capacity in preset amounts. In this case, Atlas doesn't increase IOPS.

    Regardless of the option for increasing storage, Atlas increases the storage capacity in place without copying data or performing an initial sync.

    Note

    If you change to another region or to a multi-region cluster, the specific storage volume capabilities or extended storage might be unavailable. The {+atlas-ui} notifies you that your IOPS will be reduced. This change might impact the application's performance, the speed of restoring data from a backup, or copying backups from these regions to other regions. To preserve the same performance, continue using the same region. To learn more, see regions that support extended storage.

    Azure doesn't allow decreasing the storage capacity in place. To downgrade the storage capacity of a cluster on Azure, Atlas provisions new volumes, and then syncs data from the old to the new volumes. Before you apply your storage capacity downgrades, the Review Changes page notifies you that Atlas triggers a rolling restart of your cluster when you make this change.

    An initial sync copies data across the network and rebuilds all indexes. During this time, you can still access your cluster, but each node that Azure modifies remains unavailable until the node's initial sync completes. For large clusters, initial syncs for each node might take several hours to complete.

To expand the total cluster storage beyond the limits for the cluster tier, you can enable extended storage in the Project Settings for regions that support extended storage.

The following procedure describes how to obtain extended IOPS, on top of the number of IOPS that you receive when you increase the storage size within the same cluster tier.

You can change the number of IOPS for M40+ Atlas clusters for regions that support extended storage.

To extend the number of IOPS:

  1. View the cluster details.

  2. In the Cluster tier, change to the M40 or higher cluster tier. The IOPS slider displays in the IOPS section.

  3. If you haven't already, increasee the storage size.

  4. If your application requires additional IOPS on top of increased IOPS that you received by increasing storage, you can extend IOPS further. Move the IOPS slider to the right and choose your preferred number of IOPS. Extending IOPS affects cost.

When you change a cluster's storage capacity, Atlas modifies the size of the servers' data volumes in a rolling manner with zero downtime.

Atlas increases the storage capacity in place without copying data or performing an initial sync. However, Google Cloud doesn't allow in-place storage capacity downgrades.

If you downgrade the storage capacity of a cluster, Atlas provisions new volumes, and then syncs data from the old to the new volumes.

Before you apply your storage capacity changes, the Review Changes page notifies you that Atlas triggers a rolling restart of your cluster when you make this change.

Atlas has disk capacity limits on single replica sets, scaling up to 4 TB for higher cluster tiers. To expand the total cluster storage beyond default limits, you can enable extended storage in the Project Settings. To accommodate further scaling in the future, enable sharding for long-term expansion.

Atlas selects the lowest common denominator across the three cloud providers. This ensures consistency across the multi-cloud deployment.

You can't adjust the IOPS for your multi-cloud cluster.

AWS-backed M30+ clusters offer the option to provision IOPS.

Provisioned IOPS let you customize the maximum IOPS rate for your cluster. They also:

  • Deliver their configured IOPS rate more consistently when compared to standard IOPS.

  • Lower your cluster's p90 latency (measurement of the server's response time). 90 percent of server requests have responses faster than the p90 latency value, so a lower p90 latency value means a generally faster response time.

To learn more about the merits of using provisioned vs standard IOPS, see Amazon EBS-optimized instances. See the following summary:

  • General Purpose SSD volumes are designed to deliver their baseline performance 99% of the time.

  • Provisioned IOPS SSD volumes are designed to deliver their provisioned performance 99.9% of the time.

Note

Changes to IOPS provisioning affects characteristics, performance, and cost. When you select Provision IOPS, the storage changes from General Purpose SSD volumes to Provisioned IOPS SSD volumes.

If you do not select the Provision IOPS option when you create your M30+ tier cluster, the cluster uses standard IOPS. The default standard IOPS rate changes as the cluster's storage capacity changes. If you want to provision an exact IOPS value, enable provisioning.

The minimum standard IOPS for M30+ tier clusters is 3000. The standard IOPS value remains at 3000 unless you set the cluster storage size to 1TB or more. If the storage for your M30+ cluster meets or exceeds 1TB, Atlas increases the standard IOPS rate using an IOPS to a storage ratio of 3:1, up to 16k IOPS for AWS network storage volumes.

Local NVMe SSD class clusters must use standard IOPS.

To provision IOPS for your M30+ tier cluster, select Provision IOPS and either:

  • Specify the exact IOPS rate in the text box, or

  • Move the slide bar until the text box displays your preferred IOPS rate.

Note

The available provisioned IOPS range for a cluster relates to disk storage capacity. Changing your cluster's storage capacity changes the range of available provisioned IOPS.

Atlas enforces the following minimum ratios for given cluster tiers. This keeps cluster performance consistent with large datasets.

Instance sizes M10 to M40 have a ratio of disk capacity to system memory of 60:1. Instance sizes greater than M40 have a ratio of 120:1.

Example

To support 3 TB (or 3,072 GB) of disk capacity, select a cluster tier with a minimum of 32 GB of RAM. This would be M50 or greater.

Atlas has disk capacity limits on single replica sets, scaling up to 4 TB for higher cluster tiers. To expand the total cluster storage beyond default limits, you can enable extended storage in the Project Settings. To accommodate further scaling in the future, enable sharding for long-term expansion.

Tip

See also:

To learn more about the default resources and available configuration options for each cloud service provider, see:

Note

Feature Availability

Atlas enables Cluster Auto-Scaling for all cluster tiers (except the highest cluster tier) under the General and the Low-CPU tier clusters.

For new clusters, Atlas automatically enables cluster tier auto-scaling and storage auto-scaling.

Use Auto-scale options to configure your cluster to automatically scale your {+cluster tier+}, storage capacity, or both in response to cluster usage.

Important

During a migration, if you restore a snapshot with a larger size than the storage capacity of the destination cluster, the cluster does not automatically scale.

You can opt out of cluster tier and storage auto-scaling. To learn more, see How Atlas Scales Cluster Tier and How Atlas Scales Cluster Storage.

← Manage Clusters