共用方式為


適用於計算的 FinOps 最佳做法

本文概述計算服務的已實證 FinOps 做法集合。 其提供優化成本、提高效率,以及深入瞭解 Azure 中計算資源的指引。 這些做法會根據計算服務的類型分類,例如虛擬機(VM)、Azure Kubernetes Service (AKS)和 Azure Functions。


Azure Kubernetes Service

下一節提供 AKS 叢集的 Azure Resource Graph (ARG) 查詢。 此查詢可協助您深入瞭解 VM。

查詢 - AKS 叢集

此 ARG 查詢會擷取 Azure 環境中 AKS 叢集的詳細資訊。

類別

資源管理

查詢

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

虛擬機器

下列各節提供 VM 的 ARG 查詢。 這些查詢可協助您將成本優化、提高效率,以及深入瞭解 VM。

查詢 - 列出已停止的虛擬機器(且未解除分配)

此 ARG 查詢會識別沒有 deallocatedrunning 狀態的 VM。 它會擷取其電源狀態、位置、資源群組和訂用帳戶標識碼的詳細數據。

類別

減少廢物

查詢

resources
| where type =~ 'microsoft.compute/virtualmachines' 
    and tostring(properties.extended.instanceView.powerState.displayStatus) != 'VM deallocated' 
    and tostring(properties.extended.instanceView.powerState.displayStatus) != 'VM running'
| extend PowerState = tostring(properties.extended.instanceView.powerState.displayStatus)
| extend VMLocation = location
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| order by id asc
| project id, PowerState, VMLocation, resourceGroup, subscriptionId

查詢 - 虛擬機擴展集詳細數據

此查詢會根據其 SKU、現成 VM 優先順序和優先順序混合原則,分析 Azure 環境中的 虛擬機器擴展集。 其提供成本優化和資源管理策略的見解。

類別

資源管理

查詢

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

查詢 - 虛擬機處理器類型分析

此查詢會識別 Azure 環境中 VM 所使用的處理器類型(ARM、AMD 或 Intel)。 它有助於瞭解不同處理器架構之間 VM 的分佈,這對於優化工作負載效能和成本效益很有用。

類別

資源管理

查詢

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

正在尋找其他專案嗎?

我們錯過了什麼嗎? 您要看到新增的內容嗎? 我們很想聽聽任何您想要在這裡看到的問題、問題或解決方案。 使用您想要在這裡看到的詳細數據,建立新的問題


相關資源:

相關產品:

相關解決方案: