Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a számítási szolgáltatások bevált FinOps-eljárásainak gyűjteményét ismerteti. Útmutatást nyújt a költségek optimalizálásához, a hatékonyság javításához és az Azure-beli számítási erőforrások elemzéséhez. A gyakorlatok a számítási szolgáltatás típusa alapján vannak kategorizálva, például a virtuális gépek (VM), az Azure Kubernetes Service (AKS) és az Azure Functions alapján.
Azure Kubernetes Service
Az alábbi szakasz egy Azure Resource Graph (ARG) lekérdezést nyújt az AKS-fürtökhöz. A lekérdezés segítségével betekintést nyerhet a virtuális gépekbe.
Lekérdezés – AKS-fürt
Ez az ARG-lekérdezés részletes információkat kér le az Azure-környezetben található AKS-fürtökről.
Kategória
Erőforrás-kezelés
Lekérdezés
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
Virtual machines (Virtuális gépek)
Az Azure-beli virtuális gépek (VM-ek) a igény szerinti, méretezhető számítási erőforrások egyike, amelyet az Azurekínál. Általában akkor választ ki egy virtuális gépet, ha a többi választási lehetőségnél nagyobb mértékű vezérlésre van szüksége a számítási környezet felett.
Az Azure-beli virtuális gépek rugalmasságot biztosítanak a virtualizáláshoz anélkül, hogy meg kellene vásárolniuk és karbantartaniuk az azt futtató fizikai hardvert. A virtuális gépet azonban továbbra is fenn kell tartania olyan feladatok végrehajtásával, mint a konfigurálás, a javítás és a rajta futó szoftverek telepítése.
Kapcsolódó erőforrások:
- Virtuális gépek termékoldala
- A virtuális gép díjai
- virtuális gépek dokumentációja
- Azure-szolgáltatások igény szerinti, méretezhető szolgáltatások
Virtuális gépek kihelyezése
Javaslat: A VM-ek deallokálása a fel nem használt számítási költségek elkerülése érdekében. Kerülje a virtuális gépek leállítását anélkül, hogy dealokálná őket.
Tudnivalók az inaktív virtuális gépekről
A virtuális gépeknek két inaktív állapotuk van: leállítva és felszabadítva.
A leállított virtuális gépek le lettek állítva az operációs rendszeren belülről (például a Leállítás paranccsal). A leállított virtuális gépek ki vannak kapcsolva, de az Azure továbbra is fenntartja a számítási erőforrásokat, például a CPU-t és a memóriát. Mivel a számítási erőforrások fenntartottak, és nem használhatók más virtuális gépekhez, ezek a virtuális gépek továbbra is számítási díjakat vonnak maga után.
A felszabadított virtuális gépeket az Azure Portalon, a parancssori felületen, a PowerShellben vagy más ügyféleszközön lévő felhőfelügyeleti API-k segítségével állítja le a rendszer. Egy virtuális gép felszabadításakor az Azure felszabadítja a megfelelő számítási erőforrásokat. A számítási erőforrások kiadása óta ezek a virtuális gépek nem járnak számítási költségekkel; Fontos azonban megjegyezni, hogy a leállított és a felszabadított virtuális gépek továbbra is a számításhoz nem kapcsolódó díjakat vonnak maga után, például a lemezek tárolási díjait.
Leállított virtuális gépek azonosítása
Az alábbi Azure Resource Graph-lekérdezéssel azonosíthatja a leállított, de nem kiosztott virtuális gépeket. Lekéri az energiaállapotuk, a helyük, az erőforráscsoportjuk és az előfizetés-azonosítójuk részleteit.
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
Kötelezettségvállalási kedvezmények használata
Javaslat: A kötelezettségvállalási kedvezmények használatával akár 72% takaríthat meg a listaköltségekhez képest.
Tudnivalók a kötelezettségvállalási kedvezményekről
A kötelezettségvállalási kedvezmények pénzügyi ösztönzők azoknak a szervezeteknek, akik egy adott időszakra vagy időszakra, általában egy vagy három évre vállalják az Azure-szolgáltatások használatát. Azáltal, hogy megállapodnak egy meghatározott mennyiségű kihasználásról vagy költésről a periódusra, a szervezetek élvezhetik a jelentős kedvezményeket, akár 72%-vel, a listaárakhoz képest. A kedvezmények a jogosult erőforrásokra vonatkoznak, így a szervezetek megtakaríthatják felhőköltségeiket, miközben rugalmasságot és kiszámíthatóságot biztosítanak a költségvetésükben.
A kötelezettségvállalási kedvezményekről az Ároptimalizálási képességcímű cikkben olvashat bővebben.
Virtuális gép kötelezettségvállalási kedvezmény lefedettségének mérése
A következő FinOps Hub-lekérdezéssel mérheti a virtuális gépek teljes kötelezettségvállalási kedvezményének lefedettségét.
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
Az alábbi lekérdezéssel mérheti a költséglebontást virtuális gépenként, a kötelezettségvállalási kedvezmények lefedettségével együtt.
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
A FinOps hubokkal kapcsolatos további információkért tekintse meg FinOps Hubs.
Lekérdezés – Virtuális gép méretezési csoport részletei
Ez a lekérdezés az Azure-környezetben lévő virtuális gép méretezési készleteket elemzi SKU, spot virtuális gép prioritás és prioritás-elosztási szabályzat alapján. Elemzéseket nyújt a költségoptimalizáláshoz és az erőforrás-kezelési stratégiákhoz.
Kategória
Erőforrás-kezelés
Lekérdezés
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
Lekérdezés – Virtuálisgép-processzortípus-elemzés
Ez a lekérdezés azonosítja az Azure-környezetben lévő virtuális gépek által használt processzortípust (ARM, AMD vagy Intel). Segít megérteni a virtuális gépek különböző processzorarchitektúrák közötti elosztását, ami hasznos a számítási feladatok teljesítményének és költséghatékonyságának optimalizálásához.
Kategória
Erőforrás-kezelés
Lekérdezés
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
Visszajelzés küldése
Kérem, tájékoztasson minket egy gyors visszajelzéssel arról, hogyan haladunk. Ezeket a felülvizsgálatokat a FinOps-eszközök és -erőforrások fejlesztésére és bővítésére használjuk.
Ha valami konkrétat keres, szavazzon egy meglévőre, vagy hozzon létre egy új ötletet. Ossza meg ötleteit másokkal, hogy több szavazatot kapjon. A legtöbb szavazattal rendelkező ötletekre összpontosítunk.
Kapcsolódó tartalom
Kapcsolódó erőforrások:
Kapcsolódó termékek:
Kapcsolódó megoldások: