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

Azure,Monitor,Virtual Machine

Bシリーズの仮想マシン(Azure VM)のCPUクレジット使用状況を確認するためのメトリックや、Azure Monitorでの監視設定についての紹介です。
PowerShellを使ったCPUクレジットの確認についても紹介しています。

Azureで提供されている仮想マシンのシリーズの1つにBシリーズがあります。
Bシリーズは使っていないCPU使用量をクレジットとして貯めておき、負荷が高くなった時に貯めておいたCPUクレジットを使う事ができます。
同じリソースのDシリーズと比較してコストを抑えて仮想マシンを使う事ができます。

サーバのCPU使用負荷が高い状態が継続すると、CPU クレジットが使い果たされてしまう事があります。
Bシリーズの仮想マシンのメトリックにはCPU Credits Remaining(使用済みの CPU クレジット)、CPU Credits Consumed(使用可能なCPUクレジット)と言った項目がありCPUクレジットの使用状況を確認できます。
これらのメトリックを確認、監視しておくことでCPUリソースの枯渇を防ぐことができます。

※本記事内ではAzure VM(Azure Virtual Machines)を仮想マシンとして表記しています。
※2024年3月に記事をBシリーズのモデル名などを修正しています。

スポンサーリンク

CPUクレジットに関するメトリックを確認

ベースラインを下回ったCPU使用量がクレジット残として蓄積される

Bシリーズの仮想マシンにはサイズに応じたベースラインが設定されています。
このベースラインはCPUを恒常的に使用できる水準を指します。

Bsv2 シリーズ
Basv2 シリーズ
Bpsv2 シリーズ

仮想マシンがこのベースラインを下回る使用率だった場合に、余ったCPU容量をクレジットとして蓄積します。
ベースラインを超えてCPUリソースを使用すると、蓄積されたクレジットを消費します。
また貯める事ができるクレジットには上限があります。

B シリーズ CPU クレジット モデル

例えばStandard_B2s_v2であれば40%に設定されています。
Standard_B2s_v2の場合は2コアなので、1コアあたり20%のCPU使用率がベースラインとなります。

※仮想マシン単位で蓄積されます。他の仮想マシンとCPUクレジットを共有して使用できません。

仮想マシンを停止(割り当て解除)するとクレジットはクリアされる

仮想マシンを停止した際に割り当て解除まで実施するとクレジットはクリアされます。
OSのみシャットダウンをして停止した場合では、仮想マシンのリソースはリリースされてないためクレジットは維持、蓄積されます。

※再起動など短時間での起動停止の場合では別ホストに移動しない事もあるようです。

仮想マシンの停止と課金状況の関連についてはこちらに纏めています。

Bシリーズとスポットインスタンスの違い

どちらも仮想マシンのコスト削減に利用する事ができます。

Bシリーズは停止する事はありませんが、スポットインスタンスは停止する事があります。
一方でスポットインスタンスはリソースの使用量自体が制限される事はありませんが、BシリーズはCPUクレジットを使い果たした場合はベースラインのCPU使用量しか利用できません。

CPUクレジットに関するメトリックはCPU Credits ConsumedとCPU Credits Remainingの2つ

BシリーズのCPUクレジットの利用状況を確認出来るメトリックは2つあります。

Microsoft.Compute/virtualMachines でサポートされているメトリック

    • CPU Credits Consumed
      • 消費したCPU クレジット
      • ベースラインを上回って消費されたCPU容量(クレジット)
    • CPU Credits Remaining
      • 使用可能なCPU クレジット
      • 蓄積されているCPU容量(クレジット)

仮想マシンのメトリックでCPUクレジットの利用状況を確認

CPUクレジットは仮想マシンのメトリックで確認できます。
クレジットは数値で表示されます。

CPUクレジットに関するメトリック 

CPU Credits Remainingの表示例です。
使用可能な残CPU クレジット容量を確認できます。
CPU Credits Consumedが発生したタイミングでCPU Credits Remainingが減少しているのが確認できます。

Azure VM(Bシリーズ)のCPU Credits Remainingの画面表示例
CPU Credits Consumedの表示例です。
ベースラインを上回った時に消費したCPU クレジット使用量を確認できます。
Azure VM(Bシリーズ)のCPU  Credits Consumedの画面表示例

PowerShellでCPUクレジットを確認

Get-AzMetricを使うとCPU Credits Remaining(使用可能なCPU クレジット容量)やCPU Credits Consumed(消費したCPUクレジット)のメトリック値を確認できます。

Get-AzMetric

PowerShellを使って過去3分間のCPUクレジットに関するメトリック値(CPU Credits Remaining)を取得します。
PowerShell実行時に取得対象の仮想マシン名を指定します。

※Get-Dateで取得した日付フォーマットを使用した際にエラーになった為にフォーマットを変更しています。
※※MetricNameの値をCPU Credits Consumedにすると1分間にどれだけクレジットがたまっているか確認出来ます。

#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"
 
(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
 

使用可能なCPUクレジット残容量をAzure Monitorで監視

Azure MonitorでCPU Credits Remaining(使用可能なCPUクレジット容量)を監視する事でCPUクレジットの枯渇を事前に気づけます。 
CPU Credits Remaining(使用可能なCPUクレジット容量)が一定値を下回った場合にアラート通知してみます。
蓄積可能な最大クレジット(数)はサイズごとに異なります。

Bsv2 シリーズ
Basv2 シリーズ
Bpsv2 シリーズ

※Azure MonitorのスコープはVirtual Machinesを選択します。

Azure Monitorのメトリック監視設定
CPU Credits Consumed、CPU Credits Remaining共にシグナルとして指定可能です。
CPU Credits Remainingを選択します。
Azure Monitorのシグナル設定画面(CPU Credits Remaining)

条件でしきい値設定します。
CPU Credits Remainingが半分以下になった際にアラートを発生させます。
最大値の半分である144以下になった場合にアラート発生させるようにします。

Azure Monitorの条件設定画面(CPU Credits Remaining)

※画面はStandard_B1msの例です。最大CPUクレジット量が288となっています。

最後に

Bシリーズの仮想マシンのCPUクレジットのメトリックや監視ついて確認してみました。
CPUクレジット残容量を適切に管理する事でBシリーズかDシリーズかどちらを利用するのか判別条件の1つに使う事も出来ます。
クレジット残容量のアラートが発生したり継続するようだと、Dシリーズを選択した方が良いと思われます。

引き続き色々試してみたいと思います。

スポンサーリンク