Azure VM BシリーズのCPUクレジットのメトリック確認と監視設定
Bシリーズの仮想マシン(Azure VM)のCPUクレジット使用状況を確認するためのメトリックや、Azure Monitorでの監視設定方法について紹介します。
PowerShellを使ったCPUクレジットの確認方法についても紹介しています。
Bシリーズは、Azureで提供されている仮想マシンシリーズの1つです。
未使用のCPUリソースをクレジットとして蓄積し、負荷が高まった際にその蓄積されたCPUクレジットを使用できます。
同じリソースサイズの仮想マシンと比較すると、コストを抑えて利用できます。
一方で、サーバーのCPU使用負荷が高い状態が長時間続くと、CPUクレジットが使い果たされてしまう可能性があります。
このような状況を防ぐためには、Bシリーズ仮想マシンのメトリックを確認・監視しておくことが重要です。
Bシリーズのメトリックには以下の項目があります:
-
- CPU Credits Remaining(使用可能なCPUクレジット)
- CPU Credits Consumed(使用済みのCPUクレジット)
これらのメトリックを定期的に確認し、適切に監視設定を行うことで、CPUリソースの枯渇を未然に防ぐことができます。
今回は、CPUクレジットの概要から、メトリックの確認方法、Azure Monitorを利用した監視設定までを確認しています。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
BシリーズのCPUクレジットの概要やメトリックの確認方法
ベースラインを下回ったCPU使用量がクレジット残として蓄積される
Bシリーズの仮想マシンには、サイズに応じたベースラインが設定されています。
このベースラインとは、仮想マシンが恒常的に利用可能なCPU使用量の基準を指します。
Bsv2 シリーズ
Basv2 シリーズ
Bpsv2 シリーズ
仮想マシンのCPU使用率がこのベースラインを下回った場合、余ったCPU容量がクレジットとして蓄積されます。
ベースラインを超えてCPUリソースを使用した際には、蓄積されたクレジットが消費されます。
蓄積できるクレジットには上限が設定されています。
CPUバースト(Bsv2 シリーズ)
CPUバースト(Basv2 シリーズ)
CPUバースト(Bpsv2 シリーズ)
例えばStandard_B2s_v2(2コア)であれば40%、1時間あたりに利用可能なクレジット数は48となっています。
最大クレジット数1152に設定されています。
※仮想マシン単位で蓄積されます。他の仮想マシンとCPUクレジットを共有して使用できません。
仮想マシンを割り当て解除すると蓄積されたCPUクレジットはクリアされる
仮想マシンを停止し、割り当て解除すると、蓄積されたクレジットはクリアされます。
一方、OSのみをシャットダウンして仮想マシンを停止した場合、そのリソースはリリースされないため、クレジットは維持され、引き続き蓄積されます。
※再起動など、短時間での起動と停止を行った場合、仮想マシンが別ホストに移動しないこともあるようです。
仮想マシンの停止と課金状況の関連については、こちらで紹介してます。
Bシリーズとスポットインスタンスの違い
どちらも仮想マシンのコスト削減に活用することができます。
Bシリーズの仮想マシンは強制的に停止されることはありませんが、スポットインスタンスは停止される場合があります。
一方、スポットインスタンスではリソースの使用量自体に制限がかかることはありません。
しかし、BシリーズではCPUクレジットを使い果たした場合、ベースラインのCPU使用量のみが利用可能となります。
CPUクレジットに関するメトリックはCPU Credits ConsumedとCPU Credits Remaining
BシリーズのCPUクレジットの利用状況を確認できるメトリクスは2つあります。
Microsoft.Compute/virtualMachines でサポートされているメトリック
-
- CPU Credits Consumed
- 消費したCPU クレジット
- CPU Credits Remaining
- 使用可能なCPU クレジット
- CPU Credits Consumed
仮想マシンのメトリックでCPUクレジットの利用状況を確認
CPUクレジットのメトリックを確認します。
クレジットは数値で表示されます。
CPUクレジットに関するメトリック | |
CPU Credits Remainingの表示例です。 |
![]() |
CPU Credits Consumedの表示例です。 消費されたCPUクレジットの使用量を確認できます。 |
![]() |
PowerShellのGet-AzMetricでCPU Credits Remainingのメトリック値を確認
CPU Credits RemainingやCPU Credits Consumedのメトリック値確認には、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 |
—広告—
CPU Credits Remaining(使用可能なCPUクレジット容量)をAzure Monitorで監視
CPU Credits Remainingを監視するアラートルールを作成
Azure Monitorを使用してCPU Credits Remainingを監視することで、CPUクレジットの枯渇に事前に気づくことができます。
CPU Credits Remainingが一定値を下回った場合のアラートルールを作成します。
蓄積可能な最大クレジット数は、サイズごとに異なります。
CPUバースト(Bsv2 シリーズ)
CPUバースト(Basv2 シリーズ)
CPUバースト(Bpsv2 シリーズ)
今回は、CPU Credits Remainingが100を下回った場合に、アラート検知するようにしています。
仮想マシンのCPU負荷を上げてCPU Credits Remainingの変化を確認
仮想マシンの負荷を上げて、CPU Credits RemainingやCPU Credits Consumedの変化を確認します。
CPU Credits Consumedの値が、ベースラインの40%を上回っているため、CPU Credits Remainingの値が減少しています。
※Standard_B2s_v2場合は、2コア×40%となるため、CPU Creditsベースラインは0.8となります。
仮想マシンのメトリックを確認 | |
仮想マシンの負荷上昇と共に、CPU Credits Consumedの値が上昇していることを確認できます。 | ![]() |
CPU Credits Consumedの上昇と共に、CPU Credits Remainingが減少していることが確認できます。 | ![]() |
※CPU使用率と共に、CPU Credits Consumedの値も上下します。
CPU Credits Remainingのアラートメール
CPU Credits Remainingのアラートメール例です。
アラートメール例 | |
CPU Credits Remainingのメトリック値が、アラートルールで設定した100を下回ったため、アラート通知が送信されています。 | ![]() |
![]() |
|
![]() |
—広告—
最後に
Bシリーズの仮想マシンにおけるCPUクレジットのメトリックや監視方法について確認してみました。
Bシリーズの仮想マシンを利用する場合は、CPUクレジットの残容量を適切に管理することが重要になります。
クレジットの残容量に関するアラートが頻繁に発生したり、継続する場合は、CPU使用率が高いと思われます。
その場合は、Bシリーズではなく、Dシリーズを選択したほうが良いと考えられます。
引き続き、いろいろ試してみたいと思います。