Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje kolekci osvědčených postupů FinOps pro výpočetní služby. Poskytuje pokyny k optimalizaci nákladů, zlepšení efektivity a získání přehledů o výpočetních prostředcích v Azure. Postupy se kategorizují na základě typu výpočetní služby, jako jsou virtuální počítače, Azure Kubernetes Service (AKS) a Azure Functions.
Azure Kubernetes Service
Následující část obsahuje dotaz Azure Resource Graphu (ARG) pro clustery AKS. Dotaz vám pomůže získat přehled o virtuálních počítačích.
Dotaz – cluster AKS
Tento dotaz ARG načte podrobné informace o clusterech AKS ve vašem prostředí Azure.
Kategorie
Řízení zdrojů
Dotaz
resources
| where type == "microsoft.containerservice/managedclusters"
| extend AgentPoolProfiles = properties.agentPoolProfiles
| mvexpand AgentPoolProfiles
| project
id,
ProfileName = tostring(AgentPoolProfiles.name),
Sku = tostring(sku.name),
Tier = tostring(sku.tier),
mode = AgentPoolProfiles.mode,
AutoScaleEnabled = AgentPoolProfiles.enableAutoScaling,
SpotVM = AgentPoolProfiles.scaleSetPriority,
VMSize = tostring(AgentPoolProfiles.vmSize),
nodeCount = tostring(AgentPoolProfiles.['count']),
minCount = tostring(AgentPoolProfiles.minCount),
maxCount = tostring(AgentPoolProfiles.maxCount),
location,
resourceGroup,
subscriptionId,
AKSname = name
Virtuální počítače
Virtuální počítače Azure jsou jedním z několika typů škálovatelných výpočetních prostředků na vyžádání, které Azure nabízí. Virtuální počítač obvykle zvolíte v případě, že potřebujete větší kontrolu nad výpočetním prostředím, než nabízí ostatní možnosti.
Virtuální počítač Azure poskytuje flexibilitu virtualizace, aniž byste museli kupovat a udržovat fyzický hardware, na kterém běží. Virtuální počítač ale stále potřebujete udržovat provedením úloh, jako je konfigurace, opravy a instalace softwaru, který na něm běží.
Související zdroje:
- stránka produktu Virtuální počítače
- ceny virtuálních počítačů
- Dokumentace k virtuálnímu počítači
- Azure služby pro škálovatelné výpočetní kapacity na vyžádání
Uvolnit virtuální počítače
Doporučení: Uvolněte virtuální počítače, abyste se vyhnuli nepoužívaným poplatkům za výpočetní prostředky. Vyhněte se zastavení virtuálních počítačů bez jejich dealokace.
Informace o neaktivních virtuálních počítačích
Virtuální počítače mají dva neaktivní stavy: Zastaveno a Dealokováno.
Zastavené virtuální počítače se vypnuly z operačního systému (například pomocí příkazu Vypnout). Zastavené virtuální počítače jsou vypnuté, ale Azure stále rezervuje výpočetní prostředky, jako je procesor a paměť. Vzhledem k tomu, že výpočetní prostředky jsou rezervované a nejsou k dispozici pro použití s jinými virtuálními počítači, účtují se za tyto virtuální počítače i nadále poplatky za výpočetní prostředky.
Uvolněné virtuální počítače se zastaví přes rozhraní pro správu cloudu v Azure portálu, CLI, PowerShellu nebo jiném klientském nástroji. Když je virtuální počítač uvolněný, Azure uvolní odpovídající výpočetní prostředky. Vzhledem k tomu, že se uvolní výpočetní prostředky, za tyto virtuální počítače se neúčtují poplatky za výpočetní prostředky; Je však důležité si uvědomit, že zastavené a uvolněné virtuální počítače i nadále účtují poplatky nesouvisející s výpočetními prostředky, jako jsou poplatky za úložiště z disků.
Identifikace zastavených virtuálních počítačů
Pomocí následujícího dotazu Azure Resource Graphu (ARG) identifikujte zastavené virtuální počítače, které nejsou uvolněné. Načte podrobnosti o jejich stavu napájení, umístění, skupině prostředků a ID předplatného.
resources
| where type =~ 'microsoft.compute/virtualmachines'
| extend PowerState = tostring(properties.extended.instanceView.powerState.displayStatus)
| where PowerState !in =('VM deallocated', 'VM running')
| project
ResourceId = id,
PowerState,
Region = location,
ResourceGroupName = resourceGroup,
SubscriptionId = subscriptionId
Využijte slevy za závazek
Doporučení: Využijte slevy za závazky, abyste ušetřili až 72% v porovnání s ceníkovými cenami.
Informace o slevách na závazky
Slevy na závazky jsou finanční pobídky nabízené organizacím, které se zavázaly používat služby Azure za určité období nebo období, obvykle jeden nebo tři roky. Souhlasem se stanovenou částkou využití nebo výdajů na stanovené období mohou organizace získat výhodu v podobě významných slev (až 72%) oproti standardním ceníkovým cenám. Slevy se použijí na způsobilé prostředky, což organizacím pomáhá ušetřit náklady na cloud a zároveň zajistit flexibilitu a předvídatelnost rozpočtu.
Další informace o slevách za závazek viz Možnosti optimalizace sazeb.
Měřte pokrytí slevy za závazek na virtuálních počítačích
K měření celkového pokrytí slevy za závazek virtuálního počítače použijte následující dotaz centra FinOps.
Costs
| where ResourceType =~ 'Virtual machine'
| where x_SkuMeterCategory startswith 'Virtual Machines'
//
// Join with prices to filter out ineligible SKUs
| extend tmp_MeterKey = strcat(substring(ChargePeriodStart, 0, 7), x_SkuMeterId)
| project tmp_MeterKey, EffectiveCost, PricingCategory, CommitmentDiscountCategory, ResourceName, x_ResourceGroupName, SubAccountName, BillingCurrency
| join kind=leftouter (
Prices
| where x_SkuMeterCategory startswith 'Virtual Machines'
| summarize sp = countif(x_SkuPriceType == 'SavingsPlan'), ri = countif(x_SkuPriceType == 'ReservedInstance')
by tmp_MeterKey = strcat(substring(x_EffectivePeriodStart, 0, 7), x_SkuMeterId)
| project tmp_MeterKey, x_CommitmentDiscountSpendEligibility = iff(sp == 0, 'Not Eligible', 'Eligible'), x_CommitmentDiscountUsageEligibility = iff(ri == 0, 'Not Eligible', 'Eligible')
) on tmp_MeterKey
| extend x_CommitmentDiscountUsageEligibility = iff(isempty(x_CommitmentDiscountUsageEligibility), '(missing prices)', x_CommitmentDiscountUsageEligibility)
| extend x_CommitmentDiscountSpendEligibility = iff(isempty(x_CommitmentDiscountSpendEligibility), '(missing prices)', x_CommitmentDiscountSpendEligibility)
//
// Sum costs
| summarize
TotalCost = sum(EffectiveCost),
OnDemandCost = sumif(EffectiveCost, PricingCategory == 'Standard'),
SpotCost = sumif(EffectiveCost, PricingCategory == 'Dynamic'),
CommittedCost = sumif(EffectiveCost, PricingCategory == 'Committed'),
CommittedSpendCost = sumif(EffectiveCost, CommitmentDiscountCategory == 'Spend'),
CommittedUsageCost = sumif(EffectiveCost, CommitmentDiscountCategory == 'Usage')
by x_CommitmentDiscountUsageEligibility, x_CommitmentDiscountSpendEligibility, BillingCurrency
| extend OnDemandPercent = round(OnDemandCost / TotalCost * 100, 2)
| extend CoveragePercent = round(CommittedCost / TotalCost * 100, 2)
| extend CoverageUsagePercent = round(CommittedUsageCost / TotalCost * 100, 2)
| extend CoverageSpendPercent = round(CommittedSpendCost / TotalCost * 100, 2)
| order by CoveragePercent desc
Pomocí následujícího dotazu můžete měřit rozpis nákladů na virtuální počítač, včetně pokrytí slev za závazek.
Costs
| where ResourceType =~ 'Virtual machine'
| where x_SkuMeterCategory startswith 'Virtual Machines'
//
// Join with prices to filter out ineligible SKUs
| extend tmp_MeterKey = strcat(substring(ChargePeriodStart, 0, 7), x_SkuMeterId)
| project tmp_MeterKey, EffectiveCost, PricingCategory, CommitmentDiscountCategory, ResourceName, x_ResourceGroupName, SubAccountName, BillingCurrency
| join kind=leftouter (
Prices
| where x_SkuMeterCategory startswith 'Virtual Machines'
| summarize sp = countif(x_SkuPriceType == 'SavingsPlan'), ri = countif(x_SkuPriceType == 'ReservedInstance')
by tmp_MeterKey = strcat(substring(x_EffectivePeriodStart, 0, 7), x_SkuMeterId)
| project tmp_MeterKey, x_CommitmentDiscountSpendEligibility = iff(sp == 0, 'Not Eligible', 'Eligible'), x_CommitmentDiscountUsageEligibility = iff(ri == 0, 'Not Eligible', 'Eligible')
) on tmp_MeterKey
| extend x_CommitmentDiscountUsageEligibility = iff(isempty(x_CommitmentDiscountUsageEligibility), '(missing prices)', x_CommitmentDiscountUsageEligibility)
| extend x_CommitmentDiscountSpendEligibility = iff(isempty(x_CommitmentDiscountSpendEligibility), '(missing prices)', x_CommitmentDiscountSpendEligibility)
//
// Sum costs by resource
| summarize
TotalCost = sum(EffectiveCost),
OnDemandCost = sumif(EffectiveCost, PricingCategory == 'Standard'),
SpotCost = sumif(EffectiveCost, PricingCategory == 'Dynamic'),
CommittedCost = sumif(EffectiveCost, PricingCategory == 'Committed'),
CommittedSpendCost = sumif(EffectiveCost, CommitmentDiscountCategory == 'Spend'),
CommittedUsageCost = sumif(EffectiveCost, CommitmentDiscountCategory == 'Usage')
by ResourceName, x_ResourceGroupName, SubAccountName, x_CommitmentDiscountUsageEligibility, x_CommitmentDiscountSpendEligibility, BillingCurrency
| extend OnDemandPercent = round(OnDemandCost / TotalCost * 100, 2)
| extend CoveragePercent = round(CommittedCost / TotalCost * 100, 2)
| extend CoverageUsagePercent = round(CommittedUsageCost / TotalCost * 100, 2)
| extend CoverageSpendPercent = round(CommittedSpendCost / TotalCost * 100, 2)
| order by CoveragePercent desc
Další informace o centrech FinOps najdete v center FinOps.
Dotaz – podrobnosti o škálovací sadě virtuálních počítačů
Tento dotaz analyzuje škálovací sady virtuálních počítačů ve vašem prostředí Azure na základě jejich skladové položky, priority virtuálního počítače a zásad mixu priorit. Poskytuje přehledy pro optimalizaci nákladů a strategie správy prostředků.
Kategorie
Řízení zdrojů
Dotaz
resources
| where type =~ 'microsoft.compute/virtualmachinescalesets'
| extend SpotVMs = tostring(properties.virtualMachineProfile.priority)
| extend SpotPriorityMix = tostring(properties.priorityMixPolicy)
| extend SKU = tostring(sku.name)
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project id, SKU, SpotVMs, SpotPriorityMix, subscriptionId, resourceGroup, location
Dotaz – analýza typu procesoru virtuálního počítače
Tento dotaz identifikuje typ procesoru (ARM, AMD nebo Intel) používaný virtuálními počítači ve vašem prostředí Azure. Pomáhá pochopit distribuci virtuálních počítačů napříč různými architekturami procesoru, což je užitečné pro optimalizaci výkonu úloh a nákladovou efektivitu.
Kategorie
Řízení zdrojů
Dotaz
resources
| where type == 'microsoft.compute/virtualmachines'
| extend vmSize = properties.hardwareProfile.vmSize
| extend processorType = case(
// ARM Processors
vmSize has "Epsv5"
or vmSize has "Epdsv5"
or vmSize has "Dpsv5"
or vmSize has "Dpdsv", "ARM",
// AMD Processors
vmSize has "Standard_D2a"
or vmSize has "Standard_D4a"
or vmSize has "Standard_D8a"
or vmSize has "Standard_D16a"
or vmSize has "Standard_D32a"
or vmSize has "Standard_D48a"
or vmSize has "Standard_D64a"
or vmSize has "Standard_D96a"
or vmSize has "Standard_D2as"
or vmSize has "Standard_D4as"
or vmSize has "Standard_D8as"
or vmSize has "Standard_D16as"
or vmSize has "Standard_D32as"
or vmSize has "Standard_D48as"
or vmSize has "Standard_D64as"
or vmSize has "Standard_D96as", "AMD",
"Intel"
)
| project vmName = name, processorType, vmSize, resourceGroup
Váš názor
Dejte nám vědět, jak si vedeme, pomocí rychlé zpětné vazby. Tyto recenze používáme k vylepšení a rozšíření nástrojů a prostředků FinOps.
Pokud hledáte něco konkrétního, hlasujte pro existující nebo vytvořte nový nápad. Sdílejte nápady s ostatními, abyste získali více hlasů. Zaměřujeme se na nápady s nejvíce hlasy.
Související obsah
Související zdroje:
Související produkty:
Související řešení: