Fabricの容量スロットリングポリシーを理解する

スロットリングは、操作で消費される CU 秒が容量 SKU で許可される量を超えると発生します。 容量単位は 各SKUで利用可能な計算能力を測定します。 スロットリングが大きすぎると、エンド ユーザー エクスペリエンスが低下する可能性があります。 Microsoft Fabric テナントでは、複数の容量を作成し、課金とサイズ設定に関してワークスペースを特定の容量に割り当てることができます。

Fabric では、容量単位でスロットリングが適用されます。 ある容量やワークスペースのセットは過負荷でパフォーマンスが低下するかもしれませんが、他の容量は通常通り稼働し続けることがあります。 ある容量がOneLakeアイテムなどの機能を生成し、別の容量がそれらを消費する場合、消費容量のスロットリング状態がそのアイテムへの呼び出しをスロットルするかどうかを決定します。

Fabricがパフォーマンスと信頼性をどのようにバランスよく取るか

Fabricは顧客に高速なパフォーマンスを提供します。 他のプラットフォームで完了するまでに数分かかる場合があるタスクは、Fabric でわずか数秒で完了できます。 大規模な操作は、Fabricが計算を長期間にわたって分散させ、動作を遅らせないため、1日中いつでも実行可能です。 Fabricは内蔵のバースティングスムージング機能を使ってこの動作を可能にします。 これらの機能により、一時的な使用量の急増で他のシステムが停止したり遅くなったりする際、能力が自己管理・自己修復されます。

バースティング:SKUが提供する容量以上の計算量を活用しましょう

高速なパフォーマンスを確保するために、Fabricはバースティングを使って可能な限り高速で操作を行います。 バースティングにより、操作は一時的に容量SKUのプロビジョニング計算量より多くの計算量を消費できます。 バースト処理により、待たずに結果を得られます。 小規模な容量でも、通常はより高価な容量を必要とする大規模な作業をバースティングで実行できます。

平滑化:CUの使用を将来のタイムポイントに分散させる

バーストの恩恵を受ける処理でペナルティが発生しないように、Fabric は、ある処理の CU 使用量をより長い時間枠で平滑化、つまり平均化します。 この動作により、スロットリングなしで安定した高速パフォーマンスを享受できます。

平滑化すると、消費された CU 使用量が、将来の各 "タイムポイント" に分散されます。 Fabric のタイムポイントは 30 秒です。 次の24時間には2,880のタイムポイントが含まれる。 Fabricは各タイムポイントで消費されたCUの数を自動的に管理します。

操作の利用タイプは、Fabricが平滑化に使用するタイムポイントの数を決定します。 Fabric の操作について説明します。

  • Fabric は、対話型操作を少なくとも 5 分間、CU 使用量に応じて最大 64 分間にわたって円滑化します。
  • Fabricは通常、長時間の実行時間と大きなCU消費を持つため、24時間にわたってバックグラウンド操作を滑らかにします。

スムージングにより、操作の CU 使用量の一部のみが個々のタイムポイントに適用され、調整全体が減少します。 スムーズな CU の利用は、操作が進むにつれて蓄積します。 将来のキャパシティとは、将来の時点で利用可能な CU のことであり、キャパシティは継続的に稼働するため、平準化された使用量に対して課金されます。

バースティングとスムージングは連携して作業を楽にします。 例えば、通常は仕事のスケジューリングをして一日に分散させる時間を割きます。 平滑化により、Fabricはバックグラウンドジョブの計算コストを24時間にわたって分散させます。 その結果、スケジュールされたジョブをすべて同時に実行しても、ジョブの開始を妨げるような負荷の急増は発生しません。 同時に、遅い作業の完了を待ったり、スケジュール管理に時間を無駄にしたりせずに、安定した高速パフォーマンスを享受できます。

Fabricは、容量管理者がSparkの自動拡大請求を有効にする場合、バーストングやスムージングをサポートしません。 この場合、Sparkの使用は従量課金制で動作し、バースティングやスムージングの概念は適用されません。

スロットル トリガーとスロットル ステージ

容量には、使用量の急増の影響を軽減するスムージングが組み込まれていますが、多すぎる操作を実行することで容量を 過負荷 にすることは引き続き可能です。

容量は過負荷になると自動的に新規作業を制限します。 調整は、データ更新などの重要なタスクへの影響を最小限に抑えるために、段階的な手順で行われます。

容量が100%を超える使用率で動作している場合でも、ファブリックはすぐにスロットリングを適用しません。 代わりに、容量は 超過防止 を提供し、将来の容量を10分間消費してもスロットリングなしで済むようにしています。 この動作はサージからの限定的な内蔵保護を提供しつつ、ユーザーには途切れなく安定した高速パフォーマンスを提供します。

調整は、容量で次の 10 分間に CU リソースがすべて使い果たされると開始します。 スロットリングの第一段階では、新しいインタラクティブ操作に20秒の遅延が適用されます。 スロットリングの第2段階では、容量が次の1時間すべてのCUリソースを使い切った場合、新しいインタラクティブ操作を拒否します。 この段階では、バックグラウンド操作を開始・実行することができます。 スロットリングの第3段階では、容量が今後24時間の利用可能なCUリソースをすべて使い切った時点で、すべての新しいリクエスト(インタラクティブおよびバックグラウンド)を拒否します。 消費した CU の料金を支払うまで、キャパシティはリクエストの抑制を続けます。

Microsoft は、お客様の容量使用量を管理する必要性のバランスを取りつつ、お客様がサービスを利用するうえでの柔軟性を向上させるように努めています。 このため、Microsoft はファブリックのスロットリングポリシーを変更または更新する可能性があります。

以下の表はスロットリングトリガーと段階を要約しています。

使用方法 ポリシーの制限 経験の影響
使用量 <= 10 分 超過料金防止 ジョブは、スロットリングなしで将来 10 分間の容量使用量を消費できます。
10 分 < 使用量 <= 60 分 対話型の遅延 Fabricは、ユーザーが要求したインタラクティブジョブを送信時に20秒遅延させます。
60 分 < 使用量 <= 24 時間 対話的な拒否 Fabricはユーザーからのリクエストされたインタラクティブジョブを拒否します。
使用量 > 24 時間 バックグラウンドの拒否 Fabricはすべてのリクエストを拒否します。

例:バックグラウンド操作におけるスムージングがスロットリングを減らす方法

以下は、1 CU 時間を消費した 1 つのバックグラウンド操作に対して、スムージングがどのように機能するかを示す例です(その使用量は、1 時間にわたって 1 CU を使用したのと同等です)。 Fabricは24時間にわたるバックグラウンド作業をスムーズにします。 バックグラウンドオペレーションの任意のタイムポイントへの寄与は、オペレーションのCU時間をスムージング期間中のSKUのCUアワーで割ったものです。 F2 は 2 CU、つまり 1 日あたり 48 CU時間(2 CU × 24 時間)を提供します。 このジョブは各タイムポイントに1 CU時間 / 48 CU 時間 = ~2.1% を寄与します。 10分および60分のスロットリング制限への影響も~2.1%です。

この例をサポートする詳細を次に示します。

1 CU時間 = 3,600 CU秒(1 CUに1時間60分と60秒/分を掛けたものです)。

各タイムポイントは30秒です。 24 時間には、2,880 個のタイムポイント (24 時間 * 60 分 * 1 分あたり 2 つのタイムポイント) があります。

平滑化によって 3,600 CU 秒が 24 時間にわたって配分されるため、ジョブでは各 30 秒のタイムポイントに 3,600 CU 秒 / 2,880 タイムポイントが割り当てられます。 つまり、1時点あたり1.25 CU秒を寄与します。

10分間のスロットリング率は、次の10分間の稼働時間内に利用可能な総CU数に基づいています。

F2 キャパシティは 2 CU を備えています。 各時点で、F2 は 2 CU × 30 秒 = 60 CU 秒のコンピューティング能力です。

バックグラウンドジョブの任意の個別時刻への寄与は1.25 CU秒 / 60 CU秒 = 個別時刻の~2.1% です。

10分間で、F2のコンピューティング能力は 2 CU × 600秒 = 1,200 CU秒です。

平滑化によって次の10分間の容量に分散されるバックグラウンド ジョブの部分は、1.25 CU秒 × 20時点 = 25 CU秒です。

したがって、10分のスロットリングパーセンテージは25 CU秒 ÷ 1,200 CU 秒 = ~2.1%です。

同様に、バックグラウンド ジョブの 60 分間の調整率の影響も ~2.1% です。

バックグラウンド処理では、次の10分間で利用可能な量を超える CU が消費されました(利用可能量の 6 倍を消費)が、平準化によって合計 CU が 24 時間にわたって分散されるため、F2 容量はスロットリングされません。 スムージングにより、消費される CU のごく一部のみが個々のタイムポイントに適用されます。

超過分、繰り越し、バーンダウン

1つの時間点で運用がSKUの対応容量を超える容量を使用すると、 システムは超過を計算します。 システムは平滑化後に超過分を計算します。 超過分が許容される10分間のスロットリング ウィンドウを超えると、carryforward CUになります。

"超過分の保護" により、10 分間の調整期間が終了するまで、容量では調整が行われません。 利用率の一時的な急増によるインタラクティブな遅延の頻度を減らします。

Fabric は carryforward CU を後続の各時点に適用します。 タイムポイントが上限に達していない場合、未使用の CU により 繰り越し CU 数が減少します。 この減少はバーンダウンです。

調整の実施は、未使用の容量によってすべての繰り越し CU が支払われるまで続きます。

調整を目的とした容量の監視

容量管理者は容量概要イベントを使って 容量閾値のメールアラートを設定 できます。 管理者は、容量メトリック アプリを使用して、容量の調整レベルを確認することもできます。

容量の適切なサイズ設定と最適化

一貫して高い調整レベルは、複数の容量間で負荷分散を行うか、容量の SKU サイズを増やす必要があることを示します。 F SKUの場合は 、容量をスケールさせることができます。 F256とF512の境界の反対側にあるSKU間でスケーリングすると、体験が遅くなる可能性があります。

容量制限が発生していることを見分ける方法

容量がリクエストを拒否すると、特定のエラーコードとエラーテキストが表示されます:

  • 状態コード CapacityLimitExceeded
  • エラー メッセージ Your organization's Fabric compute capacity has exceeded its limits. Try again later
  • エラー メッセージ Cannot load model due to reaching capacity limits

遅い性能はしばしばアイテムの設計に起因します。 パフォーマンスの低下は、容量の調整によってのみ発生することがあります。

容量が過負荷になると、容量管理者は Fabric 容量メトリック アプリを使用して調整を確認できます。

  • [コンピューティング] ページの [システム イベント] テーブルには、調整イベントの履歴が表示されます。
  • [コンピューティング] ページの "調整" グラフは、平滑化された使用量がいずれかの調整制限を超えたときに表示されます。

調整を停止する方法

容量は自己復旧であるため、オーバーロード状態が終了するまでいつでも待機してから、新しい要求を送信できます。

ただし、スロットリングをより早く解除するには、次の方法を使用できます。

F SKU 容量を使用している場合、調整を停止するには、次の手順を実行します。

  • SKU を一時的に増やします。 SKU を増やすと、余剰容量が増えるため、各時点での繰り越し分の消化が速まります。
  • 一時停止してから、また能力を再開してください。 容量を一時停止すると、将来の容量使用量の累積に対する課金イベントが発生します。 容量が開始または再開されると、将来の容量使用量はゼロになるため、新しい操作をすぐに受け入れることができます。 一時停止すると、割り当てられた容量のコンテンツが利用できなくなることがあるので、まずその容量が使用されていないか確認してください。
  • 容量の超過請求はスロットリングの発生を防ぐこともできます。ただし、通常の容量料金の3倍の費用がかかります。 詳細については、「 容量超過を有効にする」をご覧ください。

P SKU 容量を使用する際にスロットリングを防ぐには、次の手順を実行します。

インフライト操作は制限されない

調整の影響を受けるのは、容量で調整が開始した後に要求された操作のみです。 スロットリング開始前に提出した長期実行の作業も含め、すべての作業は完了まで実行可能です。 この動作により、CU使用量の急増中でも操作が完了することを保証します。

複合調整の保護

Fabric では、多くの場合、1 つの操作によって他の項目またはワークロードがトリガーされ、完了します。 多くの例がありますが、一般的なものはレポートを表示することです。 レポート内の各ビジュアルは、基になるセマンティック モデルに対してクエリを実行します。 セマンティックモデルは、OneLakeからデータを読み取ってクエリ結果を提供することもあります。 これらの要求はそれぞれチェーンを形成します。

一連の呼び出しがある場合、Fabricが同じリクエストに複数回スロットリングをかけた場合に発生する複合スロットリングのリスクがあります。 Fabricには複合スロットリングの発生リスクを減らすコンパウンドスロットリング保護が内蔵されています。 ワークロードはこの保護にオプトインできます。

ワークロードが複合スロットリング保護をサポートしている場合、Fabric はチェーンに参加する各キャパシティごとに、リクエストに対して一度だけスロットリングを行います。 調整の決定は、要求が開始すると行われ、そのチェーン内のすべての操作に適用されます。

チェーンが複数の容量に依存している場合、各容量はチェーン内で最初に受け取るリクエストに対して一度だけスロットリングを強制します。

次のワークロード エクスペリエンスは、複合調整をサポートしています。

  • DirectQueryを使って他のセマンティックモデルと接続するセマンティックモデル。
  • ページ分割されたレポートからセマンティック モデルへの DAX クエリ。

調整動作は Fabric ワークロードに固有です

ほとんどのFabric製品は前述のスロットリングルールに従っていますが、例外もあります。

例えば、Fabricのイベントストリームは、開始後も数年間実行可能な多くの操作を持っています。 新しいイベントストリーム操作を制限するのは意味がないため、代わりにFabricは容量が正常になるまでストリームを開いたままにするためのCUリソースの割り当てを減らします。

もう一つの例外は Real-Time インテリジェンスで、作戦を20秒遅らせるならリアルタイムとは言えません。 その結果、リアルタイム インテリジェンスでは、将来の 10 分間の容量で 20 秒間の遅延を伴う調整の第 1 段階が適用されません。 リアルタイム インテリジェンスは、将来の 60 分間の容量の拒否フェーズで調整が開始するまで待機します。 この動作により、需要の高い期間でもリアルタイムのパフォーマンスを享受し続けられます。

同様に、Fabricはウェアハウスカテゴリーのほぼすべての業務をバックグラウンドとして報告し、24時間の活動平滑化を活用し、最も柔軟な使用パターンを可能にします。 すべてのデータ ウェアハウスを "バックグラウンド" として分類すると、CU 使用率のピーク時にスロットリングのトリガーが早くなりすぎるのを防ぐことができます。 一部のリクエストでは、一連の操作が発生し、Fabric では通常とは異なる形でスロットルされることがあります。 インタラクティブ操作によってバックグラウンド操作を含む一連の処理が開始されると、Fabric はそのバックグラウンド操作をインタラクティブ操作として扱い、スロットリングできます。

スロットリングと円滑化のための対話型とバックグラウンドの分類

Fabricは時に操作をインタラクティブに分類し、背景として滑らかにしたり、その逆に分類したりすることがあるかもしれません。 この区別は、Fabricのスロットリングシステムがリクエストを実行開始する前にスロットリングルールを適用しなければならないためです。

調整システムは、送信時に操作を正確に分類しようとします。 操作の実行が開始されると、分類を変更するより詳細な情報が使用できるようになる場合があります。 曖昧な状況では、スロットリングシステムは操作をバックグラウンドとして分類する仕組みに戻り、それがあなたの利益になります。

超過分と拒否された操作を追跡する

容量が過負荷かどうかを確認するには、Microsoft Fabricの容量指標アプリの利用率チャートを確認してください。 しきい値を超えるピークは超過を示します。 超過分を詳細に調査するために、タイムポイントのページに移動してください。 その後、インタラクティブ操作とバックグラウンド操作の両方を見直して、どちらが過剰な作業を引き起こしているか確認してください。

利用率が100% を超えても自動的にスロットリングとは限らないため、超過評価時には スロットリングチャート を使いましょう。 そこから、バーンダウンまでの時間を示す表、追加、バーンダウン、累積パーセンテージのグラフなどを開きます。 バーンダウンまでの時間 (分) は、容量内でこれ以上操作が行われなかった場合にバーンダウンにかかる時間を見積もります。

選択したタイム ポイントのドリルスルー オプションを示すアニメーション。

容量の超過使用の履歴(繰越、累積、使用率データのバーンダウンを含む)を視覚的に確認するには、超過分 タブに移動します。超過分の表示スケールを変更して、10 分、60 分、24 時間を表示します。

マルチメトリックリボンチャートと時間経過のCUパーセンテージチャート間のクロスフィルタリングを示すアニメーション。

Microsoft Fabricのキャパシティメトリクスアプリのドリルダウンは、スロットリングイベント中にFabricが拒否した操作を表示します。 これらの作戦については、実際には始まっていなかったため、情報は限られています。 製品、ユーザー、オペレーションID、リクエストの時刻を確認できます。 Fabricがリクエストを拒否すると、エンドユーザーには後で再試行するよう促すエラーメッセージを受け取ります。

スロットリング計算における請求可能および非請求対象計算

容量メトリック アプリで容量の使用状況を確認すると、一部の操作は課金対象となり、その他の操作は課金対象外です。 スロットリング計算には請求可能な操作のみが含まれます。 一部のプレビュー機能は請求不要の業務を生成することがあります。 非請求可能な運用を活用して、プレビュー機能が請求可能になった際に適切な容量を計画しましょう。