Azure storage available space refers to the amount of cloud storage for database data provided by Azure services in accordance with the purchased package. This metric measures the storage available space in Gigabytes (GB) units out of the total space purchased.
In Amazon RDS, the equivalent concept is the Amazon RDS storage capacity available within the selected instance type and configuration. Monitoring FreeStorageSpace is critical for Amazon RDS users, as running low on storage can prevent normal database operations.
It is recommended to guarantee at least a few GB of free space to avoid running out of storage for your database files. In this scenario, you will face limitations in database operations—preventing data inserts and likely causing issues in data retrieval, as data access also relies on available storage.
For both Azure and Amazon RDS, there are many reasons for file growth, some of which are normal and expected, but certain conditions that can lead to abnormal growth require attention to maintain regular activity. These include:
- Unexpected SQL data growth due to increased workload or transaction volume.
- A package or instance type that inadequately meets system requirements for routine operations.
Monitoring these metrics and planning for potential storage growth can help avoid performance issues and ensure ongoing database reliability in both Azure and Amazon RDS environments.
Find out how you can save hours of work when investigating the root cause of this issue.
Symptoms :
The storage’s free space ratio has fallen below the threshold. Users cannot insert new data into the database, face errors, and processes get stuck, causing performance degradation.
Impact: High
In extreme cases, users can’t add new data or modify it. Usually, when close to reaching the storage limit, the performance might be slower, or inserting large amounts of data won’t be possible.
Expected behavior :
There is no standard metric for free space. It has to be enough to allow users to update, insert, modify, or view data.
Possible causes for running out of storage space:
1- Data growth is caused by increased volume and workload activity. Priority: Medium
High user activity levels might cause data growth.
The data file contains the database’s actual data, such as tables, indexes, and other objects.
When more queries are running than usual or are too intense for current system resources, if this activity is related to new data insertion, it will result in more storage utilization. When data modifications happen at a higher rate or frequent transactions occur, it results in overload.
Problem identification:
Check current storage free space and identify patterns of increased activity. You should track more queries running than usual associated with a higher user connection count.
- You can check the available storage space by navigating through your Azure SQL Database in the Azure Portal or the Amazon RDS service in the AWS Management Console. Here, you’ll find an overview of storage details, including current storage usage out of total allocated storage. Alternatively, you can use SQL Server Management Studio (SSMS) to check database size for both Azure SQL Database and Amazon RDS SQL Server instances.
- Check Azure Log Analytics (or the Error Logs in Amazon RDS) to track unusual database activity, which might indicate increased activity or errors impacting storage. These logs can provide insights into potential root causes of storage consumption spikes.
- Identify the cause and timing of any sudden increase in data files. You may need to wait for it to recur and then use Azure Query Performance Insights (or Amazon RDS Performance Insights) to investigate potentially problematic queries. Another useful option is leveraging Dynamic Management Views (DMVs), which can hint at queries consuming excessive storage or system resources.
- Another option is to check via the Azure Portal (or the AWS Management Console) if the number of queries or database connections has increased compared to previous usage. This helps in assessing whether a higher connection volume or activity is responsible for the rise in storage usage.
AimBetter immediately notifies you about data file growth and lets you easily track impactful queries with data and performance history saved for up to 30 days.
Recommended action :
To maintain enough free storage to handle your business needs, try to identify the reason for the increased activity by comparing past performance with current behavior. In most cases, anomalies requiring action should be identified quickly to avoid harming smooth business flow. Our experts can help with that.
Read more about troubleshooting SQL data growth issues.
Sometimes, it will be just enough to prioritize tasks again and delay those that are not urgent to lower activity times.
Ensure that you are not opening more connections than necessary.
If you have concluded that queries seem simple or that all tasks are highly prioritized, proceed to the next cause. You should decide if upgrading the current tier of Azure or Amazon RDS resources available to your database environment is the only solution.
2- The current package does not fit system demands. Priority: Low
After checking that the cause does not seem to be query complexity or higher activity, if your Azure is experiencing mostly full utilization of Azure Max Worker, upgrading may be the appropriate choice.
Problem identification:
Identify routine performance involved with the low available storage.
- Monitor the incoming request rates that affect the workload. For Azure SQL Database, you can use Azure Metrics to track request rates, while in Amazon RDS, you can use CloudWatch metrics like DatabaseConnections and ReadIOPS/WriteIOPS. Analyzing these can help you determine if the activity is routine or new, which may impact storage usage or performance.
- Check Azure Log Analytics (or the Error Logs in Amazon RDS) to track unusual database activity that might indicate increased activity or issues impacting storage or workload performance. This is helpful for identifying unexpected spikes that could lead to capacity limitations.
- Keep in mind that Azure does not automatically recommend or alert you to upgrade your service tier. In Azure, you can use Azure Advisor for best practice recommendations, which may highlight if an upgrade would help optimize resources. Similarly, Amazon RDS doesn’t automatically prompt tier upgrades, but Amazon Trusted Advisor offers best practice recommendations that can indicate potential adjustments, including upgrades, based on observed workload.
You can easily compare different periods and check for routine or irregular performance cases. Using AimBetter’s graphs, it should be easy and clear to understand that the cause is an inadequate package.
Monitor your database performance regularly using Azure Monitor (or Amazon CloudWatch for Amazon RDS) to track key performance metrics. This helps identify potential issues before they require costly solutions.
Before upgrading to a higher-tier service, like Azure’s Max Worker package or an upgraded Amazon RDS instance type, assess your performance requirements carefully. Consider whether adjusting workload demands or redistributing processes could achieve the desired performance without increasing costs.
Alternatively, you can implement Azure Autoscale for Azure SQL Database, or use Amazon RDS’s Auto Scaling options for read replicas and instance storage. These tools can automatically scale resources up or down based on defined rules, optimizing cost and performance.