Azure VM Bシリーズ CPUクレジットの確認と監視

 

Azure VMのシリーズの1つに、Bシリーズがあります。

Bシリーズは普段使わないCPUの使用量を貯めておいて、負荷が高くなった時にその貯めたCPU使用量を使うシリーズです。

Dシリーズと比較して2分の1位の使用料金で使える為、普段からCPUを使わないようなサーバに向いているシリーズになります。

Azure VM Bシリーズの詳細については下記マイクロソフト様のサイトを確認してください。

  • Virtual Machineシリーズ

https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/series/

  • Bシリーズ詳細

https://docs.microsoft.com/ja-jp/azure/virtual-machines/sizes-b-series-burstable

このAzure VMのBシリーズですが、負荷が高い状態が継続するとCPUの使用量(クレジット)が使い果たされている為性能が発揮されないという可能性もあります。

今回はCPUクレジット残量確認方法を試し、Azure Monitorの設定項目確認までを行ってみました。

1 .Azure VM BシリーズのCPUクレジット残(CPU Credits Remaining)をAzure Portal上で確認する

Azure Portal上のメトリックで確認ができます。

仮想マシンのメニューの監視にあるメトリックという項目を選択します。

このメトリックを選択すると、下記のように項目を選ぶとグラフが表示されます。この項目でCPU Credits Remainingを選択すると過去のクレジット残の履歴確認ができます。

CPU使用率が高く使い果たしているような状況だと0になります。

なお、CPU Credits Consumedを使う事により、CPUクレジットがどれだけ溜まっているのか確認できます。

.BシリーズのCPUクレジット残(CPU Credits Remaining)をPower Shellで確認する

Power ShellでもCPU Credits Remainingが確認できます。今回は直近の値を確認しています。

サブスクリプションIDやリソースグループ名は環境に合わせて設定します。Power Shell実行時に取得対象のVM名を指定します。

Get-Dateで取得した日付フォーマットそのままだとエラーになるので、フォーマットを変更しています。

StartTime等を変更することにより、過去の値も取得可能です。

#CPU Credits Remaining

param (
    [String] [Parameter(Mandatory=$true)]  $VMname
    )

$subscriptionID =“サブスクリプションID”
$RGName = “リソースグループ名”

$startTime = (Get-Date).AddMinutes(-3) | Get-Date  -Format ‘yyyy-MM-dd THH:mm’
$endTime = Get-Date -Format “yyyy-MM-dd THH:mm”
 
# 注意-ResourceIdの行は折り返していますが、実際には1行です。GitHubの方を参考にして下さい
# https://github.com/Tama-negi/Li-akb-branch-office/tree/PowerShell_Azure/Azure_PowerShell

(Get-AzMetric `
    -ResourceId “/subscriptions/$subscriptionID/resourceGroups/$RGName/providers/Microsoft.Compute
/virtualMachines/$VMname” `
    -TimeGrain 00:01:00 `
    -AggregationType “Average” `
    -StartTime $startTime `
    -EndTime $endTime `
    -MetricName “CPU Credits Remaining” `
    -DetailedOutput).Data `
| Select-Object TimeStamp,Average
 

実行すると以下のように結果が得られます。

TimeStamp Average

——— ——-

2020/04/16 10:20:00 316.12
2020/04/16 10:21:00 316.12
2020/04/16 10:22:00 316.12
 

※MetricNameの値を、CPU Credits Consumedに変更することにより、1分間にどれだけクレジットがたまっているかの確認が可能です。

.Azure MonitorでAzure VM Bシリーズの残CPUクレジット(CPU Credits Remaining)を監視

Azure MonitorのVirtual Machineメトリック監視にCPU Credits Remainingの項目があります。

スコープにAzure VMを指定します。

条件の選択でCPU Credits Remainingを選択するとシグナルロジックの構成が表示されます。

下記画面のように残量が次の値より小さいと指定すると、CPU Credits Remainingが少なくなった場合にアラートを上げる事も可能です。 

このアラートが頻発するようだと、CPUのリソースを使っているという事になるので、Dシリーズを選択した方が良いと思われます。