Рекомендации по FinOps для баз данных
В этой статье описывается коллекция проверенных методик FinOps для служб баз данных. Он предоставляет стратегии оптимизации затрат, повышения эффективности и использования запросов Azure Resource Graph (ARG) для получения аналитических сведений о ресурсах базы данных. Следуя этим методикам, вы можете убедиться, что службы баз данных являются экономически эффективными и соответствуют финансовым целям вашей организации.
Cosmos DB
В следующих разделах приведены запросы ARG для Cosmos DB. Эти запросы помогают получить аналитические сведения о учетных записях Cosmos DB и убедиться, что они настроены с соответствующими единицами запросов (ЕЗ). Анализируя шаблоны использования и рекомендации по поиску из Помощника по Azure, вы можете оптимизировать ЕЗ для повышения эффективности затрат.
Запрос. Подтверждение единиц запросов Cosmos DB
Этот запрос ARG анализирует учетные записи Cosmos DB в среде Azure, чтобы убедиться, что они настроены с соответствующими ЕЗ.
Description
Этот запрос определяет учетные записи Cosmos DB с рекомендациями по оптимизации ЕЗ на основе шаблонов использования. Он предоставляет рекомендации помощника по Azure для настройки единиц запросов на экономичность.
Категория
Optimization
Запрос
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 определяет коллекции Cosmos DB в вашей среде Azure, которые могут воспользоваться переключением режима пропускной способности на основе рекомендаций Помощника по Azure.
Description
Этот запрос предоставляет коллекции Cosmos DB, которые имеют рекомендации по переключении режима пропускной способности (например, вручную на автомасштабирование или наоборот) для оптимизации производительности и затрат. В нем используются рекомендации Помощника по Azure для выделения потенциальных улучшений.
Категория
Optimization
Льготы
- Оптимизация затрат: определяет коллекции 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, использующие политику периодического резервного копирования и не включающую несколько расположений записи.
Категория
Optimization
Запрос
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
В следующих разделах приведены запросы ARG для База данных SQL. Эти запросы помогают определить базы данных SQL, которые могут быть бездействующими, старыми, в разработке или используемыми для тестирования. Анализируя эти базы данных, вы можете оптимизировать затраты и повысить эффективность путем вывода из эксплуатации или повторного использования неиспользуемых ресурсов.
Запрос: простой базы данных SQL
Этот запрос ARG определяет базы данных SQL с именами, указывающими, что они могут быть старыми, в разработке или используются для тестирования.
Категория
Optimization
Запрос
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 определяет потенциально неактивные эластичные пулы в среде SQL Azure, анализируя количество баз данных, связанных с каждым эластичным пулом.
Категория
Optimization
Запрос
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
Ищете больше?
Упустили ли мы что-нибудь? Хотите ли вы увидеть что-то добавленное? Мы хотели бы услышать о любых проблемах, проблемах или решениях, которые вы хотели бы увидеть здесь. Создайте новую проблему с подробными сведениями, которые вы хотите просмотреть здесь.
Связанный контент
Связанные ресурсы:
Связанные решения: