如果 azure VM 闲置 30 分钟,我需要将其关闭
If azure VM is idle for 30 minutes I need to shut it down
如果 Azure 虚拟机闲置 30 分钟,我需要将其关闭。我所说的闲置是指 CPU% 小于 30%。我怎样才能做到这一点?
我已经尝试使用 运行 书籍默认功能,但它有关机和启动功能,但没有空闲时间。
通过 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 指标数据,因为会有一些延迟。
如果 Azure 虚拟机闲置 30 分钟,我需要将其关闭。我所说的闲置是指 CPU% 小于 30%。我怎样才能做到这一点?
我已经尝试使用 运行 书籍默认功能,但它有关机和启动功能,但没有空闲时间。
通过 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 指标数据,因为会有一些延迟。