我将Azure云服务与单个Azure数据库一起使用。我将定价层设置为S4,这给了我200个DTU和250GB。问题是我的所有工作者和Web角色都设置为使用除数据库之外的加载进行自动扩展。当我进行负载测试时,所有内容都会自动升级,直到数据库开始阻塞导致瓶颈的查询。
我找不到任何数据库的自动缩放选项。我在微软发现了这个视频: Azure SQL Database dynamically scale-up or scale-down
但它基本上表示您需要转到Azure门户并手动扩展到更大的定价层。它没有提到有关自动放大或缩小的任何内容。
我也查看了Elastic Pools,但这些似乎更多的是同时使用许多数据库,而不仅仅是1个数据库。
所以我的问题是:
如何自动扩展和缩小单个Azure数据库?
答案 0 :(得分:5)
您有几个选项,例如Alberto提到您可以使用REST API,当然还有azure run-books / webhooks来配置警报规则。
让我在这里解释一下我的过程。
答案 1 :(得分:2)
您可以测试资源消耗是否符合资源限制,如下所示:
SELECT
(COUNT(end_time) - SUM(CASE WHEN avg_cpu_percent > 80 THEN 1 ELSE 0 END) * ,(COUNT(end_time) - SUM(CASE WHEN avg_log_write_percent > 80 THEN 1 ELSE 0 END),
(COUNT(end_time) - SUM(CASE WHEN avg_data_io_percent > 80 THEN 1 ELSE 0 END FROM sys.dm_db_resource_stats
服务水平目标(SLO)为99.9%< =进入下一层
如果SLO为99.9%,则可以使用REST API或T-SQL从应用程序中扩展层。
ALTER DATABASE [db1] MODIFY (EDITION = 'Premium', MAXSIZE = 1024 GB, SERVICE_OBJECTIVE = 'P15');