Azure brings intelligence and high performance to Azure Database for MySQL

Your primary job as a developer is building new value-added services for your customers, and you always expect your database to remain functional and performant. There isn’t time and resources to regularly monitor database performance as it scales; doing so can lead to degraded application performance during peak hours. In the past, the DBA managed resource configurations, but today that responsibility can be shared across many roles which makes it hard to achieve.

You no longer need to be a database expert to optimize your database and can now leverage the intelligent insights available for Azure Database for MySQL workloads through recommendations.

Analyzing workloads to make intelligent recommendations

The recommendations feature gives daily insights about your database server to optimize performance. These recommendations are tightly integrated with Azure Advisor to provide you with best practices directly within the Azure portal. Azure Advisor is a personalized cloud consultant that helps you follow guidelines to optimize your Azure deployments.

If you’re running a MySQL application on Azure today and you want to see the recommendations we’ve already made to help you optimize your Azure Database for MySQL resources. Check out the performance recommendations tab in the Azure Advisor.

Types of recommendations

Azure Database for MySQL recommendation continuously analyses your servers' telemetry to determine if your workload performance can be improved by configuring one or more of the resource settings. Currently, it monitors, analyzes, and makes recommendations for four different areas:

CPU bottlenecks – High utilization of the CPU over an extended period can cause slow query performance. Increasing CPU size is likely to help in optimizing the runtime of the queries and improve overall performance. Recommendations will identify servers with a high CPU utilization that are likely running CPU constrained workloads.

High utilization of the CPU over an extended period can cause slow query performance. Increasing CPU size is likely to help in optimizing the runtime of the queries and improve overall performance. Recommendations will identify servers with a high CPU utilization that are likely running CPU constrained workloads. Connection constraints – Each new connection occupies memory. The database server's performance degrades if connections to the server fail when memory consumption reaches the upper limit. Azure Database for MySQL recommendation identifies servers running with many connection failures and recommend upgrading the server's connections limits to provide more memory to the server by scaling up compute or using Memory Optimized SKUs, which have more memory per core.

Each new connection occupies memory. The database server's performance degrades if connections to the server fail when memory consumption reaches the upper limit. Azure Database for MySQL recommendation identifies servers running with many connection failures and recommend upgrading the server's connections limits to provide more memory to the server by scaling up compute or using Memory Optimized SKUs, which have more memory per core. Memory constraints – A low cache hit ratio can result in slower query performance and increased IOPS. This could be due to a bad query plan or running a memory intensive workload. Fixing the query plan or increasing the memory of the database server will help optimize the execution of the queries. Azure Database for MySQL recommendation identifies such affected servers with high buffer pool churn and recommends either fixing the query plan or moving to a higher SKU with more memory or increasing storage size to get more IOPS.

A low cache hit ratio can result in slower query performance and increased IOPS. This could be due to a bad query plan or running a memory intensive workload. Fixing the query plan or increasing the memory of the database server will help optimize the execution of the queries. Azure Database for MySQL recommendation identifies such affected servers with high buffer pool churn and recommends either fixing the query plan or moving to a higher SKU with more memory or increasing storage size to get more IOPS. Read-intensive workloads – Azure Database for MySQL recommendation feature leverages workload-based heuristics such as the ratio of reads to writes on the server over the past seven days. The MySQL resource with a very high read/writes ratio can result in CPU or memory contentions impacting query performance. Adding a replica will help in scaling out reads to the replica server, preventing CPU or memory constraints on the primary server. Azure Database for MySQL Recommendation identifies servers with high read-intensive workloads and recommend adding a read replica to offload some of the read workloads.



Getting started with the Recommendation feature

To get started with the recommendation for MySQL, please follow the step below:

Access Azure Database for MySQL Recommendation in the Azure portal

You can access the recommendations feature by default with no additional cost. The recommendations provided are accessible in the Azure Advisor page or the server’s overview page.

Recommendation on the Azure Advisor’s blade on the portal

Recommendations from the overview blade of your Azure Database for MySQL resource

Go deeper with the recommendation on Azure portal

Selecting a specific recommendation provides details on the actions needed to address the performance constraints for the server. You can see the recommendation details as you select the recommendation type (Label 1 in Fig 3). To act on a recommendation select recommended actions (Label 2 in Figure 3).

Gather further recommendation details and take actions

Recommendations can be postponed or dismissed. If you do not want to receive recommendations for a specific subscription or resource group, you can configure Azure Advisor via the portal or by using the CLI to generate recommendations only for those that you specify. For more information about using Azure Advisor, see the article Get started with Azure Advisors.

After implementing any recommendation, be sure to evaluate performance to measure the impact of the changes.

Get started...

We have had great success for our early users of the recommendations feature in Azure Database for MySQL . Our goal is to simplify the manageability of your database server and make it easier for you to focus on your application development.

So, go ahead and check out the Recommendation for your Azure Database for MySQL. If you identify any problems or want to make a feature suggestion, please reach out to the Ask Azure DB for MySQL alias. You can also engage with us on the Azure feedback forums for Azure Database for MySQL.

Manish Kumar

Program Manager, Microsoft