适用于数据库的 FinOps 最佳做法
本文概述了一系列经过验证的适用于数据库服务的 FinOps 做法。 它提供了优化成本、提高效率和使用 Azure Resource Graph (ARG) 查询来深入了解数据库资源的策略。 通过遵循这些做法,可以确保数据库服务经济高效,并与组织的财务目标保持一致。
Cosmos DB
以下部分为 Cosmos DB 提供 ARG 查询。 这些查询可帮助你深入了解 Cosmos DB 帐户,并确保这些帐户配置了相应的请求单位(RU)。 通过分析 Azure 顾问的使用情况模式和呈现建议,可以优化 RU,提高成本效益。
查询:确认 Cosmos DB 请求单位
此 ARG 查询分析 Azure 环境中的 Cosmos DB 帐户,以确保使用适当的 RU 进行配置。
描述
此查询标识 Cosmos DB 帐户,其中包含根据使用模式优化其 RU 的建议。 它会显示来自 Azure 顾问的建议,以调整 RU 以提高效率。
类别
优化
查询
advisorresources
| where type =~ 'microsoft.advisor/recommendations'
| where properties.impactedField == 'microsoft.documentdb/databaseaccounts'
and properties.recommendationTypeId == '8b993855-1b3f-4392-8860-6ed4f5afd8a7'
| order by id asc
| project
id, subscriptionId, resourceGroup,
CosmosDBAccountName = properties.extendedProperties.GlobalDatabaseAccountName,
DatabaseName = properties.extendedProperties.DatabaseName,
CollectionName = properties.extendedProperties.CollectionName,
EstimatedAnnualSavings = bin(toreal(properties.extendedProperties.annualSavingsAmount), 1),
SavingsCurrency = properties.extendedProperties.savingsCurrency
查询:将受益于切换到另一个吞吐量模式的 Cosmos DB 集合
此 ARG 查询标识 Azure 环境中的 Cosmos DB 集合,这些集合将受益于基于 Azure 顾问建议切换吞吐量模式。
描述
此查询显示 Cosmos DB 集合,这些集合具有切换吞吐量模式的建议(例如,从手动缩放切换到自动缩放,反之亦然),以优化性能和成本。 它使用 Azure 顾问建议来突出显示潜在的改进。
类别
优化
优点
- 成本优化: 根据使用模式和建议切换到更适当的吞吐量模式,识别 Cosmos DB 集合,这些集合可以节省成本。
- 性能管理: 确保 Cosmos DB 集合使用最佳吞吐量模式,增强性能,避免过度预配或预配不足。
查询
advisorresources
| where type =~ 'microsoft.advisor/recommendations'
| where properties.impactedField == 'microsoft.documentdb/databaseaccounts'
and properties.recommendationTypeId in (
' cdf51428-a41b-4735-ba23-39f3b7cde20c',
' 6aa7a0df-192f-4dfa-bd61-f43db4843e7d'
)
| order by id asc
| project
id, subscriptionId, resourceGroup,
CosmosDBAccountName = properties.extendedProperties.GlobalDatabaseAccountName,
DatabaseName = properties.extendedProperties.DatabaseName,
CollectionName = properties.extendedProperties.CollectionName,
EstimatedAnnualSavings = bin(toreal(properties.extendedProperties.annualSavingsAmount), 1),
SavingsCurrency = properties.extendedProperties.savingsCurrency
查询:Cosmos DB 备份模式详细信息
此 ARG 查询分析使用“定期”备份策略且未启用多个写入位置的 Cosmos DB 帐户。
类别
优化
查询
resources
| where type == "microsoft.documentdb/databaseaccounts"
| where resourceGroup in ({ResourceGroup})
| where properties.backupPolicy.type == 'Periodic'
and tobool(properties.enableMultipleWriteLocations) == false
| extend BackupCopies = toreal(properties.backupPolicy.periodicModeProperties.backupRetentionIntervalInHours)
/ (toreal(properties.backupPolicy.periodicModeProperties.backupIntervalInMinutes) / real(60))
| where BackupCopies >= 10
or (BackupCopies > 2
and toint(properties.backupPolicy.periodicModeProperties.backupRetentionIntervalInHours) <= 168)
| order by id asc
| project id, CosmosDBAccountName=name, resourceGroup, subscriptionId, BackupCopies
SQL 数据库
以下部分为SQL 数据库提供 ARG 查询。 这些查询可帮助你识别可能处于空闲状态、旧数据库、开发中或用于测试目的的 SQL 数据库。 通过分析这些数据库,可以通过停用或重新利用未充分利用的资源来优化成本和提高效率。
查询:SQL DB 空闲
此 ARG 查询标识具有名称的 SQL 数据库,这些数据库指示它们可能是旧数据库、开发中或用于测试目的。
类别
优化
查询
resources
| where type == "microsoft.sql/servers/databases"
| where name contains "old" or name contains "Dev"or name contains "test"
| where resourceGroup in ({ResourceGroup})
| extend SQLDBName = name, Type = sku.name, Tier = sku.tier, Location = location
| order by id asc
| project id, SQLDBName, Type, Tier, resourceGroup, Location, subscriptionId
查询:未使用的弹性池分析
此 ARG 查询通过分析与每个弹性池关联的数据库数来确定 Azure SQL 环境中潜在的空闲弹性池。
类别
优化
查询
resources
| where type == "microsoft.sql/servers/elasticpools"
| extend elasticPoolId = tolower(tostring(id))
| extend elasticPoolName = name
| extend elasticPoolRG = resourceGroup
| extend skuName = tostring(sku.name)
| extend skuTier = tostring(sku.tier)
| extend skuCapacity = tostring(sku.capacity)
| join kind=leftouter (
resources
| where type == "microsoft.sql/servers/databases"
| extend elasticPoolId = tolower(tostring(properties.elasticPoolId))
) on elasticPoolId
| summarize databaseCount = countif(isnotempty(elasticPoolId1)) by
elasticPoolId,
elasticPoolName,
serverResourceGroup = resourceGroup,
name,
skuName,
skuTier,
skuCapacity,
elasticPoolRG
| where databaseCount == 0
| project elasticPoolId,
elasticPoolName,
databaseCount,
elasticPoolRG,
skuName,
skuTier,
skuCapacity
正在查找更多内容?
我们错过了什么吗? 是否希望看到添加的内容? 我们非常想了解你希望在此处介绍的任何问题、问题或解决方案。 创建一个新问题 ,其中包含要在此处查看的详细信息。
相关内容
相关资源:
相关解决方案: