> For the complete MongoDB documentation index, see www.mongodb.com/docs/llms.txt

# Fix IOPS Issues

[System and disk alert](https://www.mongodb.com/docs/atlas/reference/alert-conditions.md#std-label-system-disk-alerts) conditions can indicate IOPS issues.

**Note:**

All hardware metrics have burst reporting equivalents with distinct configurable alerts. To learn more, see [Burst Reporting.](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics.md#std-label-burst-metrics)

## Alert Conditions

You can configure the following alert conditions in the project-level [alert settings](https://www.mongodb.com/docs/atlas/configure-alerts.md#std-label-configure-alerts) page to trigger alerts.

The [`Disk read IOPS on Data Partition is`](https://www.mongodb.com/docs/atlas/reference/alert-conditions.md#mongodb-alert-Disk-read-IOPS-on-Data-Partition-is) alert condition is raised if the average number of disk read operations per second exceeds the specified threshold.

The [`Disk write IOPS on Data Partition is`](https://www.mongodb.com/docs/atlas/reference/alert-conditions.md#mongodb-alert-Disk-write-IOPS-on-Data-Partition-is) alert condition is raised if the average number of disk write operations per second exceeds the specified threshold.

[`System: CPU (User) % is`](https://www.mongodb.com/docs/atlas/reference/alert-conditions.md#mongodb-alert-System--CPU--User----is) measures the CPU usage of the processes on the node, normalized by the number of CPUs. This value is scaled to a range of 0-100%.

## Common Triggers

A few common events may trigger these alerts:

- [Unoptimized queries.](https://www.mongodb.com/docs/manual/core/query-optimization/)

- A one-time event, such as an [index build.](https://www.mongodb.com/docs/manual/core/index-creation/)

## Fix the Immediate Problem

Consider a few possible actions to help resolve these alerts:

- [Optimize your queries.](https://www.mongodb.com/docs/manual/core/query-optimization/)

- Use the Atlas [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor.md#std-label-pa-slow-queries) to view slow queries and suggested [indexes.](https://www.mongodb.com/docs/manual/indexes/)

- Review [Indexing Strategies](https://www.mongodb.com/docs/manual/applications/indexes/) for possible further indexing improvements.

  **Note:**

  You might need to temporarily increase your cluster IOPS (Input/Output Operations per Second) to create new indexes. Provisioned IOPS (Input/Output Operations per Second) is supported only for `M30+` tier AWS (Amazon Web Services) clusters.

To change a cluster's IOPS (Input/Output Operations per Second), go to the Cluster Configuration page and do the following possible actions:

| Cloud Provider | Tier | Possible Actions |
| --- | --- | --- |
| AWS (Amazon Web Services) | `M10`, `M20` | [Increase Storage Capacity](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-storage); [Scale Cluster Tier](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-instance) |
| AWS (Amazon Web Services) | `M30` or larger | [Increase Cluster IOPS](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-storage); [Increase Storage Capacity](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-storage); [Scale Cluster Tier](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-instance) |
| Google Cloud | `M10` or larger | [Increase Storage Capacity](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-storage); [Scale Cluster Tier](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-instance) |
| Azure | `M10` or larger | [Increase Storage Capacity](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-storage); [Scale Cluster Tier](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-instance) |

- [Analyze Query Performance](https://www.mongodb.com/docs/manual/tutorial/analyze-query-plan/) to review how your queries are using your indexes.

- Increase hardware resources, such as instance size and IOPS (Input/Output Operations per Second), in the [Cluster Configuration Page.](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-modify-cluster)

## Implement a Long-Term Solution

### Disk IOPS Burst Credits for Atlas Clusters on Azure (Microsoft Azure)

Atlas clusters deployed to Azure (Microsoft Azure) may use credit-based bursting, but the disk will burst only if it has burst credits accumulated in its credit bucket. Azure (Microsoft Azure) also offers an on-demand bursting model, where the disk bursts whenever its needs exceed its current capacity.

See the Azure (Microsoft Azure) [Disk Bursting documentation](https://docs.microsoft.com/en-us/azure/virtual-machines/disk-bursting) for more information about how bursting for Azure (Microsoft Azure) disks works.

### Conserve Burst Credits

If you regularly exceed your configured IOPS (Input/Output Operations per Second) threshold, you can avoid depleting your burst credits by increasing your configured IOPS (Input/Output Operations per Second) with any of the following actions:

- [Increase Cluster IOPS](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-storage) to increase the cluster's IOPS (Input/Output Operations per Second) threshold.

- [Increase Storage Capacity](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-storage). The IOPS (Input/Output Operations per Second) threshold increases as you increase storage capacity. Clusters configured to use at least 1 TB of storage have baseline IOPS (Input/Output Operations per Second) performance that is equal to or greater than the maximum burst performance. These volumes do not deplete burst credit balances.

- [Scale Cluster Tier](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-scale-cluster-instance). Larger cluster tiers include higher IOPS (Input/Output Operations per Second) thresholds.

  **Note:**

  Cluster tiers `M140` and larger are deployed with at least 1 TB of storage capacity by default. Clusters with 1 TB or more of storage capacity do not deplete burst credit balances.

## Monitor Your Progress

These are a few possible methods to observe high disk I/O:

- The disk IOPS (Input/Output Operations per Second) use from the Disk IOPS graph in the cluster [metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics.md#std-label-monitor-cluster-metrics) exceeds the provisioned IOPS (Input/Output Operations per Second) from the Atlas cluster [configuration page.](https://www.mongodb.com/docs/atlas/scale-cluster.md#std-label-modify-cluster)

- The Normalized System CPU [metric](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics.md#std-label-monitor-cluster-metrics) has a high IOWait curve. IOWait measures the percentage of time the CPU is idle and waiting for an I/O operation to complete. The Normalized System CPU chart is located under the Hardware Metrics section of the Metrics tab.
