Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update concepts-service-tiers-storage.md (Typo "flexible server"→"Fle… #12

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions articles/mysql/flexible-server/concepts-service-tiers-storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ ms.custom:

# Azure Database for MySQL - Flexible Server service tiers

You can create an Azure Database for MySQL flexible server instance in one of three service tiers: Burstable, General Purpose, and Business Critical. The underlying VM SKU differentiates the service tiers used B-series, D-series, and E-series. The compute tier and size choice determines the memory and vCores available on the server. The exact storage technology is used across all service tiers. All resources are provisioned at the Azure Database for MySQL flexible server instance level. A server can have one or many databases.
[!INCLUDE [applies-to-mysql-flexible-server](../includes/applies-to-mysql-flexible-server.md)]

You can create an Azure Database for MySQL Flexible Server instance in one of three service tiers: Burstable, General Purpose, and Business Critical. The underlying VM SKU differentiates the service tiers used B-series, D-series, and E-series. The compute tier and size choice determines the memory and vCores available on the server. The exact storage technology is used across all service tiers. All resources are provisioned at the Azure Database for MySQL Flexible Server instance level. A server can have one or many databases.

| Resource / Tier | **Burstable** | **General Purpose** | **Business Critical** |
| :--- | :--- | :--- | :--- |
Expand Down Expand Up @@ -116,26 +118,26 @@ The detailed specifications of the available server types are as follows for the

**Default Zone-Resilience in Azure Database for MySQL – Flexible Server Business Critical Tier**: Starting mid-December 2024, all new servers provisioned in the Azure Database for MySQL – Flexible Server Business Critical tier will come with built-in zone-resilience—at no extra cost! This means your data and log files will automatically be stored on zone-redundant storage, ensuring rapid recovery from zonal outages. Even without High-Availability enabled, you'll benefit from seamless protection with zone-redundant backups. [Overview of business continuity with Azure Database for MySQL - Flexible Server](concepts-business-continuity.md).

## Memory management in Azure Database for MySQL flexible server
## Memory management in Azure Database for MySQL Flexible Server

In MySQL, memory plays a vital role throughout various operations, including query processing and caching. Azure Database for MySQL flexible server optimizes memory allocation for the MySQL server process ([mysqld](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html)), ensuring it receives sufficient memory resources for efficient query processing, caching, client connection management, and thread handling. [Learn more on how MySQL uses memory](https://dev.mysql.com/doc/refman/8.0/en/memory-use.html).
In MySQL, memory plays a vital role throughout various operations, including query processing and caching. Azure Database for MySQL Flexible Server optimizes memory allocation for the MySQL server process ([mysqld](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html)), ensuring it receives sufficient memory resources for efficient query processing, caching, client connection management, and thread handling. [Learn more on how MySQL uses memory](https://dev.mysql.com/doc/refman/8.0/en/memory-use.html).

### Physical Memory Size (GB)

The Physical Memory Size (GB) in the table below represents the available random-access memory (RAM) in gigabytes (GB) on your Azure Database for MySQL flexible server.
The Physical Memory Size (GB) in the table below represents the available random-access memory (RAM) in gigabytes (GB) on your Azure Database for MySQL Flexible Server.

### Total Memory Size (GB)

Azure Database for MySQL flexible server provides a Total Memory Size (GB). This represents the total memory available to your server, which is a combination of physical memory and a set amount of temporary storage SSD component. This unified view is designed to streamline resource management, allowing you to focus only on the total memory available to your Azure MySQL Server (mysqld) process.
Memory Percent (memory_percent) metric represents the percentage of memory occupied by the Azure MySQL server process (mysqld). This metric is calculated from the **Total Memory Size (GB)**. For example, when the Memory Percent metric displays a value of 60, it means that your Azure MySQL Server process is utilizing **60% of the Total memory size (GB)** available on your Azure Database for MySQL flexible server.
Azure Database for MySQL Flexible Server provides a Total Memory Size (GB). This represents the total memory available to your server, which is a combination of physical memory and a set amount of temporary storage SSD component. This unified view is designed to streamline resource management, allowing you to focus only on the total memory available to your Azure MySQL Server (mysqld) process.
Memory Percent (memory_percent) metric represents the percentage of memory occupied by the Azure MySQL server process (mysqld). This metric is calculated from the **Total Memory Size (GB)**. For example, when the Memory Percent metric displays a value of 60, it means that your Azure MySQL Server process is utilizing **60% of the Total memory size (GB)** available on your Azure Database for MySQL Flexible Server.

### MySQL Server (mysqld)

The Azure MySQL server process, [mysqld](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html), is the core database operations engine. Upon startup, it initializes total components such as the InnoDB buffer pool and thread cache, utilizing memory based on configuration and workload demands. For example, the InnoDB buffer pool caches frequently accessed data and indexes to improve query execution speed, while the thread cache manages client connection threads. [Learn more](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html).

### InnoDB Storage Engine

As MySQL's default storage engine, [InnoDB](https://dev.mysql.com/doc/refman/8.0/en/innodb-in-memory-structures.html) uses memory for caching frequently accessed data and managing internal structures like the innodb buffer pool and [log buffer](https://dev.mysql.com/doc/refman/8.0/en/innodb-redo-log-buffer.html). [InnoDB buffer pool](https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-pool.html) holds table data and indexes in memory to minimize disk I/O, enhancing performance. InnoDB Buffer Pool Size parameter is calculated based on the physical memory size (GB) available on the server. [Learn more on the sizes of the InnoDB Buffer Pool available](./concepts-server-parameters.md#innodb_buffer_pool_size) in Azure Database for MySQL flexible server.
As MySQL's default storage engine, [InnoDB](https://dev.mysql.com/doc/refman/8.0/en/innodb-in-memory-structures.html) uses memory for caching frequently accessed data and managing internal structures like the innodb buffer pool and [log buffer](https://dev.mysql.com/doc/refman/8.0/en/innodb-redo-log-buffer.html). [InnoDB buffer pool](https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-pool.html) holds table data and indexes in memory to minimize disk I/O, enhancing performance. InnoDB Buffer Pool Size parameter is calculated based on the physical memory size (GB) available on the server. [Learn more on the sizes of the InnoDB Buffer Pool available](./concepts-server-parameters.md#innodb_buffer_pool_size) in Azure Database for MySQL Flexible Server.

### Threads

Expand Down Expand Up @@ -174,7 +176,7 @@ For more information on [how to set up alerts on metrics, refer to this guide](h

## Storage

The storage you provision is the storage capacity available to your flexible server. Storage is used for the database files, temporary files, transaction logs, and the MySQL server logs. For Burstable and General Purpose service tiers, the storage range spans from a minimum of 20 GiB to a maximum of 16 TiB. Conversely, storage support extends up to 32 TiB for Business Critical service tier. In all service tiers, storage is scaled in 1-GiB increments and can be scaled up after the server is created.
The storage you provision is the storage capacity available to your Flexible Server. Storage is used for the database files, temporary files, transaction logs, and the MySQL server logs. For Burstable and General Purpose service tiers, the storage range spans from a minimum of 20 GiB to a maximum of 16 TiB. Conversely, storage support extends up to 32 TiB for Business Critical service tier. In all service tiers, storage is scaled in 1-GiB increments and can be scaled up after the server is created.
hyoshioka0128 marked this conversation as resolved.
Show resolved Hide resolved

> [!NOTE]
> Storage can only be scaled up, not down.
Expand Down Expand Up @@ -206,7 +208,7 @@ Remember that storage, once autoscaled up, can't be scaled down.

## IOPS

Azure Database for MySQL flexible server supports pre-provisioned IOPS and autoscale IOPS. [Storage IOPS in Azure Database for MySQL - Flexible Server](concepts-storage-iops.md) The minimum IOPS is 360 across all compute sizes, and the maximum IOPS is determined by the selected compute size. To learn more about the maximum IOPS per compute size, refer to the [table](#service-tiers-size-and-server-types).
Azure Database for MySQL Flexible Server supports pre-provisioned IOPS and autoscale IOPS. [Storage IOPS in Azure Database for MySQL - Flexible Server](concepts-storage-iops.md) The minimum IOPS is 360 across all compute sizes, and the maximum IOPS is determined by the selected compute size. To learn more about the maximum IOPS per compute size, refer to the [table](#service-tiers-size-and-server-types).

> [!IMPORTANT]
> **Minimum IOPS are 360 across all compute sizes <br>
Expand All @@ -216,13 +218,13 @@ You can monitor your I/O consumption in the Azure portal (with Azure Monitor) us

## Pre-provisioned IOPS

Azure Database for MySQL flexible server offers pre-provisioned IOPS, allowing you to allocate a specific number of IOPS to your Azure Database for MySQL flexible server instance. This setting ensures consistent and predictable performance for your workloads. With pre-provisioned IOPS, you can define a specific IOPS limit for your storage volume, guaranteeing the ability to handle some requests per second. This results in a reliable and assured level of performance. Pre-provisioned IOPS enables you to provision **additional IOPS** above the IOPS limit. Using this feature, you can increase or decrease the number of IOPS provisioned based on your workload requirements at any time.
Azure Database for MySQL Flexible Server offers pre-provisioned IOPS, allowing you to allocate a specific number of IOPS to your Azure Database for MySQL Flexible Server instance. This setting ensures consistent and predictable performance for your workloads. With pre-provisioned IOPS, you can define a specific IOPS limit for your storage volume, guaranteeing the ability to handle some requests per second. This results in a reliable and assured level of performance. Pre-provisioned IOPS enables you to provision **additional IOPS** above the IOPS limit. Using this feature, you can increase or decrease the number of IOPS provisioned based on your workload requirements at any time.

## Autoscale IOPS

The cornerstone of Azure Database for MySQL flexible server is its ability to achieve the best performance for tier 1 workloads. This can be improved by enabling the server to automatically scale its database servers' performance (IO) seamlessly depending on the workload needs. This opt-in feature enables users to scale IOPS on demand without having to pre-provision a certain amount of IO per second. With the Autoscale IOPS featured enabled, you can now enjoy worry-free IO management in Azure Database for MySQL flexible server because the server scales IOPs up or down automatically depending on workload needs. AutoScale IOPS automatically scales up to the 'Max Supported IOPS' for each service tier and compute size, as specified in the [service tiers documentation](#service-tiers-size-and-server-types). This ensures optimal performance without the need for manual scaling efforts
The cornerstone of Azure Database for MySQL Flexible Server is its ability to achieve the best performance for tier 1 workloads. This can be improved by enabling the server to automatically scale its database servers' performance (IO) seamlessly depending on the workload needs. This opt-in feature enables users to scale IOPS on demand without having to pre-provision a certain amount of IO per second. With the Autoscale IOPS featured enabled, you can now enjoy worry-free IO management in Azure Database for MySQL Flexible Server because the server scales IOPs up or down automatically depending on workload needs. AutoScale IOPS automatically scales up to the Max Supported IOPS for each service tier and compute size, as specified in the [service tiers documentation](#service-tiers-size-and-server-types). This ensures optimal performance without the need for manual scaling efforts

With Autoscale IOPS, you pay only for the IO the server uses and no longer need to provision and pay for resources they aren't fully using, saving time and money. In addition, mission-critical Tier-1 applications can achieve consistent performance by making additional IO available to the workload anytime. Autoscale IOPS eliminates the administration required to provide the best performance at the least cost for Azure Database for MySQL flexible server customers.
With Autoscale IOPS, you pay only for the IO the server uses and no longer need to provision and pay for resources they aren't fully using, saving time and money. In addition, mission-critical Tier-1 applications can achieve consistent performance by making additional IO available to the workload anytime. Autoscale IOPS eliminates the administration required to provide the best performance at the least cost for Azure Database for MySQL Flexible Server customers.

**Dynamic Scaling**: Autoscale IOPS dynamically adjusts your database server's IOPS limit based on your workload's actual demand. This ensures optimal performance without manual intervention or configuration.

Expand Down