{"id":28275472,"url":"https://github.com/microsoftcloudessentials-learninghub/mysql-autoscale-iops","last_synced_at":"2025-10-28T00:08:43.487Z","repository":{"id":293086261,"uuid":"982900332","full_name":"MicrosoftCloudEssentials-LearningHub/MySQL-autoscale-IOPS","owner":"MicrosoftCloudEssentials-LearningHub","description":"Quick overview of what IOPS means in a MySQL server and explore a few example scripts to configure it ","archived":false,"fork":false,"pushed_at":"2025-05-16T15:08:40.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-21T03:16:56.196Z","etag":null,"topics":["automation","autoscale","iops","mysql-server"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MicrosoftCloudEssentials-LearningHub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-13T15:12:08.000Z","updated_at":"2025-05-16T15:08:43.000Z","dependencies_parsed_at":"2025-05-13T16:38:39.795Z","dependency_job_id":null,"html_url":"https://github.com/MicrosoftCloudEssentials-LearningHub/MySQL-autoscale-IOPS","commit_stats":null,"previous_names":["microsoftcloudessentials-learninghub/mysql-autoscale-iops"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MicrosoftCloudEssentials-LearningHub/MySQL-autoscale-IOPS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicrosoftCloudEssentials-LearningHub%2FMySQL-autoscale-IOPS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicrosoftCloudEssentials-LearningHub%2FMySQL-autoscale-IOPS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicrosoftCloudEssentials-LearningHub%2FMySQL-autoscale-IOPS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicrosoftCloudEssentials-LearningHub%2FMySQL-autoscale-IOPS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MicrosoftCloudEssentials-LearningHub","download_url":"https://codeload.github.com/MicrosoftCloudEssentials-LearningHub/MySQL-autoscale-IOPS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MicrosoftCloudEssentials-LearningHub%2FMySQL-autoscale-IOPS/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260187157,"owners_count":22971577,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","autoscale","iops","mysql-server"],"created_at":"2025-05-21T03:14:13.072Z","updated_at":"2025-10-28T00:08:43.481Z","avatar_url":"https://github.com/MicrosoftCloudEssentials-LearningHub.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Azure MySQL Autoscale IOPS - Overview \n\n\u003e IOPS (Input/Output Operations Per Second)\n\nCosta Rica\n\n[![GitHub](https://img.shields.io/badge/--181717?logo=github\u0026logoColor=ffffff)](https://github.com/)\n[brown9804](https://github.com/brown9804)\n\nLast updated: 2025-07-16\n\n----------\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eList of References\u003c/b\u003e (Click to expand)\u003c/summary\u003e\n\n- [Storage IOPS in Azure Database for MySQL - Flexible Server](https://learn.microsoft.com/en-us/azure/mysql/flexible-server/concepts-storage-iops#how-do-i-know-that-iops-have-scaled-up-and-scaled-down-when-the-server-is-using-the-autoscale-iops-feature-can-i-monitor-iops-usage-for-my-server)\n- [Azure Database for MySQL - Flexible Server service tiers](https://learn.microsoft.com/en-us/azure/mysql/flexible-server/concepts-service-tiers-storage#service-tiers-size-and-server-types)\n- [Autoscale IOPS for Azure Database for MySQL - Flexible Server - General Availability](https://techcommunity.microsoft.com/blog/adformysql/autoscale-iops-for-azure-database-for-mysql---flexible-server---general-availabi/3884602)\n- [Azure Database for MySQL pricing](https://azure.microsoft.com/en-us/pricing/details/mysql/)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eTable of Content\u003c/b\u003e (Click to expand)\u003c/summary\u003e\n\n- [How to provision](#how-to-provision)\n- [How to enable IOPS (manual approach)](#how-to-enable-iops-manual-approach)\n- [How to enable IOPS (script)](#how-to-enable-iops-script)\n- [How to Monitor IOPS Scaling](#how-to-monitor-iops-scaling)\n\n\u003c/details\u003e\n\n\u003e When Autoscale IOPS is enabled for Azure Database for MySQL (Flexible Server), the IOPS (Input/Output Operations Per Second) automatically scale both up and down based on your workload demands. \u003cbr/\u003e\n\u003e\n\u003e - During `high demand`, the system `increases IOPS` to maintain performance.\n\u003e - During `low demand`, it `scales down` to reduce resource usage and cost.\n\n## How to provision \n\n1. Go to the [Azure Portal](https://portal.azure.com/)\n2. Search for `Azure Database for MySQL Flexible Server` in the search bar.\n3. Click `Create`.\n4. Choose your subscription, resource group, and server name.\n5. Select the region, MySQL version, and workload type (e.g., Development, Production).\n\n     \u003chttps://github.com/user-attachments/assets/5b500aea-538d-4ddb-88b6-e0717a2d0fbe\u003e\n\n## How to enable IOPS (manual approach)\n\n1. Go to the [Azure Portal](https://portal.azure.com/)\n2. Select the server you want to configure.\n3. In the left-hand menu, go to `Settings \u003e Compute + Storage.`\n4. In the IOPS section, select the option `Autoscale IOPS`\n5. Click `Save` to apply the changes.\n\n     \u003chttps://github.com/user-attachments/assets/9e2983b3-3839-4ad3-8ab8-ccbb698f3228\u003e\n\n## How to enable IOPS (script)\n\n\u003e [Automate the activation of Autoscale IOPS using Python and the Azure REST API](./autoscaleMultiple-IOPS/), ideal for managing multiple servers across resource groups or entire subscriptions. This feature is only supported on General Purpose and Business Critical tiers, and currently not available via Azure CLI or PowerShell.\n\n## How to Monitor IOPS Scaling\n\n\u003e How I know if the IOPS have scaled up or down when the server's using the autoscale IOPS feature? You can use the `metrics available in Azure Monitor`. \n\n1. **Use Azure Monitor Metrics**:\n   - Go to your server in the [Azure portal](https://portal.azure.com/)\n   - Go to the `Monitoring` section and select `Metrics`.\n          \n     \u003cimg width=\"550\" alt=\"image\" src=\"https://github.com/user-attachments/assets/f08afb04-e271-4ac3-8594-e3e98a9bfd2e\" /\u003e\n\n   - Choose the `Storage IO` metric (both percent and count).\n\n     \u003cimg width=\"550\" alt=\"image\" src=\"https://github.com/user-attachments/assets/ca585f55-e943-413d-9477-f26c099a1e66\" /\u003e\n\n   - Set a `custom time range` to observe trends over time.\n\n     | Storage IO Count | Storage IO Percent |\n     | --- | --- | \n     | \u003cimg width=\"550\" alt=\"image\" src=\"https://github.com/user-attachments/assets/9be08df9-3fe6-4010-9e75-487a325d0acb\" /\u003e | \u003cimg width=\"550\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c5f7f45d-303d-48ce-82a4-00685da29849\" /\u003e |\n\n2. **Look for Scaling Patterns**:\n   - If you see `sudden increases or decreases` in the IOPS metric that correlate with workload changes, this indicates that autoscale IOPS has adjusted the performance level.\n   - You can also monitor `IO utilization percentage` to see how close your server is to its current IOPS limit.\n3. **Enable Alerts (Optional)**: You can set up `alerts` in Azure Monitor to notify you when IOPS usage crosses certain thresholds, which can help you track scaling events in real time.\n\n   \u003chttps://github.com/user-attachments/assets/19b96128-e37f-40b4-8e23-8a5384bc6686\u003e\n\n\u003c!-- START BADGE --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Total%20views-1153-limegreen\" alt=\"Total views\"\u003e\n  \u003cp\u003eRefresh Date: 2025-07-16\u003c/p\u003e\n\u003c/div\u003e\n\u003c!-- END BADGE --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoftcloudessentials-learninghub%2Fmysql-autoscale-iops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicrosoftcloudessentials-learninghub%2Fmysql-autoscale-iops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoftcloudessentials-learninghub%2Fmysql-autoscale-iops/lists"}