首页 > 解决方案 > 如果 azure VM 空闲 30 分钟,我需要将其关闭

问题描述

如果 azure VM 空闲 30 分钟,我需要将其关闭。空闲是指 CPU 百分比小于 30%。我怎样才能做到这一点?

我已经尝试过运行书籍默认功能,但它具有关闭和启动功能,但没有空闲时间。

标签: azureazure-powershellazure-automationazure-runbookazure-vm-role

解决方案


通过 Powershell 试试这个,您可以根据您的要求将此命令作为计划作业运行:

$vm = Get-AzureRmVM -Name <your vm name> -ResourceGroupName <your resource group name>
$current = Get-Date

#get cpuMetrics for each minute in past 30 mins 
$cpuMetrics = Get-AzureRmMetric -ResourceId $vm.Id -TimeGrain 00:01:00 -StartTime $current.AddMinutes(-30) -EndTime $current -DetailedOutput -MetricNames "Percentage CPU"
$CPUUsangeRange = ($cpuMetrics.Data | select Average).Average | measure -Maximum

#get Maximum value of cpu usage percentage in past 30 mins, if the Maximum value less than 30% ,its idle and stop it .
if($CPUUsangeRange.Maximum -lt 30){
   Stop-AzureRMvm -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Force
}

有时您无法获得最后 2 或 3 分钟的 cpu Metrics 数据,因为会有一些延迟。


推荐阅读