azure - 如果 azure VM 空闲 30 分钟,我需要将其关闭
问题描述
如果 azure VM 空闲 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 Metrics 数据,因为会有一些延迟。
推荐阅读
- angular - Angular:路由多个ID(父母和孩子)
- python - 没有名为“meshpy._triangle”的模块
- c# - 在 startup.cs 中播种数据
- node.js - 使用 Powershell 向 VSCode 发送密钥:仅适用于第 1 次、第 2 次,为什么我会收到有关 nodejs 的错误消息?
- angular - 为什么我需要后缀“?” 以角度形式验证属性
- r - 使用列表或向量作为 select 语句的输入
- debugging - 使用 QEMU 调试自定义操作系统
- swift - Swift String lastPathComponent
- javascript - 如何在 JSP 中打印 UTF8 cookie 值?
- angular - 加载数据时在 mat-table 中隐藏 mat-rows