Customize Cluster Storage¶
Each cluster tier comes with a default set of resources. Clusters of size M10 and larger provide the ability to customize your storage capacity.
Atlas provides the following storage configuration options, depending on the selected cloud provider and cluster tier.
Clusters of size M40 and larger offer multiple options, including:
- Low CPU
- Local NVM SSD
All production environments can use the General option.
Select the Class box with your preferred speed. Changes to cluster class affect cost.
Low CPU Class¶
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. 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. For more information, see Connection Limits and Cluster Tier.
NVMe Storage on AWS¶
AWS-backed clusters have the additional option of using Local NVMe SSD storage. Locally attached ephemeral NVMe SSDs offer the highest level of speed and performance.
The size of the server data volume. To change this, either:
- Specify the exact disk size in the text box, or
- Move the slide bar until the text box displays your preferred disk size.
Changes to storage capacity affect cost.
MongoDB uses a small portion of your specified storage capacity for buffer files, journal files, and log files to ensure proper cluster operation.
Oplog Scaling Behavior¶
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.
Changing Storage Capacity on AWS¶
AWS allows one storage capacity upgrade every six hours. When you upgrade a cluster's storage capacity for the first time during a six-hour period, Atlas modifies the size of the servers' data volumes with zero downtime. If you upgrade the cluster's storage capacity again within six hours, Atlas provisions new volumes and synchronizes data from the old to the new volumes to work around the AWS limitation. During this time, you can still access your cluster, but each node that AWS modifies is unavailable until AWS attaches the new volume.
AWS does not allow in-place storage capacity downgrades. If you downgrade a cluster's storage capacity, Atlas provisions new volumes and synchronizes data from the old to the new volumes to work around the AWS limitation. During this time, you can still access your cluster, but each node that AWS modifies is unavailable until AWS attaches the new volume.
This behavior also applies when you enable storage auto-scaling and Atlas changes cluster storage.
To learn more about AWS volume modification limitations, see Requirements When Modifying Volumes in the AWS documentation.
Changing Storage Capacity on Azure¶
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, Azure does not allow in-place storage capacity downgrades. If you downgrade a cluster's storage capacity, Atlas replaces each node and performs an initial sync for each node in the cluster.
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 is unavailable until the initial sync for that node completes.
For large clusters, initial syncs for each node might take several hours to complete.
Changing Storage Capacity for Multi-Cloud Provider Clusters¶
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.
If your multi-cloud cluster includes Azure, storage capacity can be changed only in preset increments.
IOPS (configurable for AWS only)¶
Atlas clusters on AWS of size
M30 and greater allow you to
customize the maximum IOPS rate of your cluster. Low-CPU or
general class clusters of
M30 or greater tiers have a minimum of
ratio of IOPS to storage of 3:1. You can't change the IOPS of a
local NVMe SSD class cluster. To set a greater IOPS rate for your
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.
The available IOPS range for a cluster relates to disk storage capacity. Changing your cluster's storage capacity changes the range of available IOPS.
The default IOPS rate changes as the cluster's storage capacity changes. If you want to provision an exact IOPS value, enable provisioning.
Changes to IOPS provisioning affect characteristics, performance and cost. When you select Provision IOPS, the storage changes from General Purpose SSD (gp2) volumes to Provisioned IOPS SSD (io1) volumes.
Minimum Disk Capacity to RAM Ratios¶
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.
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 a 4 TB disk capacity limit on a single replica set, regardless of cluster tier. To expand total cluster storage beyond 4 TB, enable sharding.
Auto-Scale Cluster Tier and Storage Capacity¶
Atlas enables Cluster Auto-Scaling for
M10+ clusters using
the General tier clusters.
Use Auto-scale options to configure your cluster to automatically scale your cluster tier, storage capacity, or both in response to cluster usage. Cluster storage auto-scaling is enabled by default.
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.
To configure your cluster to automatically scale its cluster tier, check the Cluster tier checkbox. When you enable cluster tier scaling, by default, your cluster can only scale up. To allow your cluster to scale down, check the Allow cluster to be scaled down checkbox. Specify a range of cluster tiers to which your cluster can scale.
To opt out of cluster storage scaling, un-check the Storage checkbox.
To learn more about cluster auto-scaling and when auto-scaling occurs, see Cluster Auto-Scaling.