Compute の調整の制限
適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット
Microsoft Compute には調整メカニズムが実装されており、サービスの全体的なパフォーマンスを強化し、顧客に一貫したエクスペリエンスを提供するのを支援します。 最大許容制限を超える API 要求は調整され、ユーザーには HTTP 429 エラーが表示されます。 すべての Compute 調整ポリシーが、リージョンごとに実装されます。
調整ポリシーのしくみ
Microsoft Compute には、1 分あたりのリージョンごとの API 要求数を、リソースごと、およびサブスクリプションごとに制限する調整ポリシーが実装されています。 API 要求数がこれらの制限を超えると、その要求は調整されます。 この制限のしくみを次に示します。
リソースあたりの制限 – API 要求数には、仮想マシン (VM) などのリソースごとに特定の制限があります。 たとえば、ユーザーがサブスクリプションに 10 個の VM を作成するとします。 そのユーザーは、各 VM に対して 1 分間に最大 12 回、更新要求を呼び出すことができます。 ユーザーがこの VM の制限を超えると、API 要求は調整されます。 この制限により、いくつかのリソースが、サブスクリプション レベルの制限を使用せずに、他のリソースを調整するようになります。
サブスクリプションの制限 – API 要求数には、リソースの制限のほか、サブスクリプション内のすべてのリソースに適用される包括的な制限があります。 この制限を超えると、API 要求はすべて、個々のリソースの制限に達したかどうかに関係なく調整されます。 たとえば、ユーザーのサブスクリプションに 200 個の VM があるとします。 ユーザーは VM ごとに最大 12 回、VM 更新要求を開始する権利がありますが、VM 更新 API 要求は 1 分あたり合計 1500 回に制限されます。 サブスクリプションに対する VM 更新 API 要求は、1500 回を超えると調整されます。
Microsoft Compute による調整制限の決定方法
各リソースとサブスクリプションの制限を決定するために、Microsoft Compute ではトークン バケット アルゴリズムが使用されます。このアルゴリズムでは、制限ごとバケットが作成され、各バケットに特定の数のトークンが保持されます。 バケット内のトークンの数は、その時間 (分) における調整制限を表します。
調整時間枠の開始時にリソースが作成されると、バケットはその "最大容量" まで入力されます。 ユーザーが開始した API 要求ごとに、1 つのトークンが使用されます。 トークン数が 0 に減ると、その後の API 要求が調整されます。 バケットには、リソースとサブスクリプションの "バケット リフィル レート" と呼ばれる一貫した速さで、毎分新しいトークンが補充されます。
たとえば、バケット リフィル レートが 1 分あたり 4 トークン、最大バケット容量が 12 トークンに規定されている "VM 更新 API の調整ポリシー" について考えてみましょう。 ユーザーは、次の表に従って、仮想マシン (VM) の VM 更新 API 要求を呼び出します。 最初は、調整時間枠の開始時に 12 個のトークンがバケットに入力されます。 4 分後までに、ユーザーは 12 個すべてのトークンを使い、バケットは空になります。 その後 5 分後までに、バケット リフィル レートに従って 4 つの新しいトークンがバケットに補充されます。 これにより、その 5 分後までの 1 分間に API 要求を 4 回行うことができますが、トークンが不足しているため、Microsoft Compute により 1 回の API 要求が調整されます。
(分) | 1st | 2 番目 | 3 つ目 | 4 番目 | 5 | 6 番目 |
---|---|---|---|---|---|---|
開始時のトークン数 (A) | 12 | 12 | 8 | 12 | 4 | 4 |
1 分あたりの要求数 (B) | 0 | 8 | 0 | 13 | 5 | 0 |
調整された要求数 (C) | 0 | 0 | 0 | 1 | 1 | 0 |
終了時の残りのトークン数 D = Max(A-B, 0) |
12 | 4 | 8 | 0 | 0 | 4 |
サブスクリプション レベルでの調整制限も、同様のプロセスに従って決定されます。 次のセクションでは、Virtual Machines、Virtual Machine Scale Sets、および Virtual Machine Scale Sets VM の調整制限を決定するときに使用される、バケット リフィル レートと最大バケット容量について詳しく説明します。
Virtual Machines の調整制限
Virtual Machines の API 要求は、7 つの個別のポリシーに分類されます。 各ポリシーには、そのポリシーに基づいて API 要求がどのくらい多くのリソースを消費するかに応じて独自の制限があります。 次の表は、これらのポリシー、それに対応する REST API、およびそれぞれの調整制限の包括的なリストです。
ポリシー カテゴリ | REST API | リソース レベル | リソース レベル | サブスクリプション レベル | サブスクリプション レベル |
---|---|---|---|---|---|
バケット リフィル レート (1 分あたり) | 最大バケット容量 (1 分あたり) |
バケット リフィル レート (1 分あたり) |
最大バケット容量 (1 分あたり) |
||
VM 配置 (新しい VM の作成) |
作成 | 4 | 12 | 500 | 1,500 |
VM 更新 (既存の VM の更新) |
更新プログラム Reapply Restart 電源オフ Start 一般化 マネージド ディスクへの変換 Redeploy メンテナンス実行 実行コマンド Create または Update 拡張機能 - 更新 拡張機能 - 削除 再イメージ化 更新プログラム 実行コマンド - 更新 実行コマンド - 削除 実行コマンド - 作成または更新 |
4 | 12 | 500 | 1,500 |
VM を削除する (VM の削除) |
削除 削除のシミュレート 割り当て解除 |
4 | 12 | 500 | 1,500 |
低コストの VM 取得 (単一 VM に関する情報の取得) |
Get インスタンス ビュー 拡張機能 - 取得 使用可能なサイズの一覧表示 ブート診断データの取得 実行コマンド - 仮想マシンで取得 実行コマンド - 仮想マシンで一覧表示 |
12 | 36 | 8,000 | 24,000 |
高コストの VM 取得1 (複数 VM に関する情報の取得) |
一覧取得 すべてを一覧表示 場所で一覧表示 |
NA | NA | 300 | 900 |
GET 操作 (非同期 VM 操作に関する情報の取得) |
非同期操作の状態 | 15 | 45 | 5,000 | 15,000 |
VM ゲスト パッチの操作 (ゲスト パッチの評価とインストール) |
パッチの評価 パッチのインストール |
2 | 6 | 200 | 600 |
1 サブスクリプション レベルのポリシーのみが適用されます。
Virtual Machine Scale Sets の調整制限
Virtual Machine Scale Set (Uniform と Flex) の API 要求は、5 つの個別のポリシーに分類されます。 各ポリシーには、そのポリシーに基づいて API 要求がどのくらい多くのリソースを消費するかに応じて独自の制限があります。 これらのポリシーは、Flex と Uniform の両方のオーケストレーション モードに適用されます。 次の表は、これらのポリシー、それに対応する REST API、およびそれぞれの調整制限の包括的なリストです。
ポリシー カテゴリ | REST API | リソース レベル | リソース レベル | サブスクリプション レベル | サブスクリプション レベル |
---|---|---|---|---|---|
バケット リフィル レート (1 分あたり) |
最大バケット容量 (1 分あたり) |
バケット リフィル レート (1 分あたり) | 最大バケット容量 (1 分あたり) |
||
PUT (新しいスケール セットの作成) |
作成 | 4 | 12 | 125 | 375 |
更新する (既存のスケールセットの更新) |
更新プログラム 起動2 再起動2 再デプロイ2 メンテナンスの実行2 再イメージ化2 すべて再イメージ化2 Create または Update ローリング アップグレード - キャンセル 拡張機能 - 作成 拡張機能 - 更新 拡張機能 - 削除 強制的に回復 Service Fabric プラットフォーム更新ドメイン ウォーク 1 つの配置グループに変換 オーケストレーション サービスの状態の設定 |
4 | 12 | 500 | 1,500 |
削除 (スケール セットの削除) |
削除 電源オフ2 割り当て解除 |
4 | 12 | 175 | 525 |
低コストの取得 (単一スケール セットに関する情報の取得) |
Get SKU の一覧表示 ローリング アップグレード - 最新の取得 OS アップグレードの履歴の取得 |
12 | 36 | 800 | 2,400 |
高コストの取得 (大量のリソース消費に関する情報の取得) |
インスタンス ビュー取得 一覧表示2 すべてを一覧表示2 場所で一覧表示2 |
10 | 30 | 360 | 1,080 |
2 サブスクリプション レベルのポリシーのみが適用されます。
Virtual Machine Scale Sets 仮想マシンの調整制限
Virtual Machine Scale Set 仮想マシンの API 要求は、3 つの個別のポリシーに分類されます。 各ポリシーには、そのポリシーに基づいて API 要求がどのくらい多くのリソースを消費するかに応じて独自の制限があります。 次の表は、これらのポリシー、それに対応する REST API、およびそれぞれの調整制限の包括的なリストです。
ポリシー カテゴリ | REST API | リソース レベル | リソース レベル | サブスクリプション レベル | サブスクリプション レベル |
---|---|---|---|---|---|
バケット リフィル レート (1 分あたり) |
最大バケット容量 (1 分あたり) |
バケット リフィル レート (1 分あたり) |
最大バケット容量 (1 分あたり) |
||
スケール セット VM の更新 (スケール セットにある既存の VM の更新) |
Start Restart 再イメージ化 すべて再イメージ化 更新プログラム 削除のシミュレート 拡張機能 - 作成または更新 実行コマンド - 作成または更新 実行コマンド - 更新 |
4 | 12 | 500 | 1,500 |
スケール セット VM の削除 (スケール セット VM の削除) |
削除 PowerOff 割り当て解除 拡張機能 - 削除 実行コマンド - 削除 |
4 | 12 | 500 | 1,500 |
スケール セット VM の取得 (スケール セット VM に関する情報の取得) |
Get インスタンス ビューの取得 拡張機能 - 取得 実行コマンド - 取得 ブート診断データの取得 |
12 | 36 | 2,000 | 6,000 |
トラブルシューティングのガイドライン
Compute の調整が原因でユーザー側で問題がまだ発生している場合は、Azure での調整エラーのトラブルシューティング - Virtual Machinesに関するページを参照してください。 ここには、調整に関する問題をトラブルシューティングする方法の詳細、および調整を回避するためのベスト プラクティスが記載されています。
よく寄せられる質問
ユーザー側で行う必要のあるアクションはありますか?
ユーザー側では、構成またはワークロードを何も変更する必要はありません。 既存の API すべてが引き続きそのまま動作します。
調整ポリシーにはどのようなメリットがありますか?
調整ポリシーにはメリットがいくつかあります。
すべての Compute リソースの時間枠が 1 分に統一されています。 ユーザーは、調整されてから 1 分後に API 呼び出しを正常に起動できます。
リソース レベルで制限が定義されるため、サブスクリプションのすべての制限が、1 つのリソースで使い果たされることはありません。
Microsoft Compute には、制限を決定するための新しいアルゴリズム、トークン バケット アルゴリズムが導入されています。 このアルゴリズムにより、大量の API 要求を行っている間、追加のバッファーが顧客に提供されます。
調整の制限にまもなく達しようとしているとき、顧客にはアラートが表示されますか?
すべての応答の一部として、Microsoft Compute は x-ms-ratelimit-remaining-resource を返します。これを、ポリシーに対する調整制限を決定するために使用できます。 適用される調整ポリシーの一覧は、呼び出しレート情報ヘッダーへの応答として返されます。