Excelgoodies logo +44 (0)20 3769 3689

LEARN THIS HANDS ON

Microsoft Fabric & Power BI

. Live Online FILLING FAST
View all upcoming batches
Why Is My Fabric Capacity Slowing Down? Throttling Explained Like a Phone Data Plan

Why Is My Fabric Capacity Slowing Down? Throttling Explained Like a Phone Data Plan

Your Fabric reports were fine yesterday, and today refreshes crawl, notebooks take ages to start, and users complain that “Fabric is slow again.” Nothing obvious changed. The capacity looks healthy most of the day, then suddenly everything feels capped. This is exactly where Fabric capacity throttling comes in – and it behaves much more like a phone data plan than a simple CPU meter.

This article uses one realistic scenario and the phone plan analogy end‑to‑end:

  • Smoothing behaves like rollover data.
  • Throttling behaves like a speed cap when you hit your monthly limit.

If Fabric capacity has ever felt random or unfair, this analogy makes the mechanics shareable inside your team.


Scenario: The Analytics Team on a “Shared Data Plan” Capacity

You run a single F64 Fabric capacity for:

  • 20–30 Power BI reports (import and Direct Lake)
  • Daily lakehouse and warehouse ELT pipelines
  • A few Data Science notebooks that spike CPU when training

Most of the month, things are fine. But:

  • Around 09:00–11:00, report queries and dataset refreshes slow down.
  • Nightly pipelines sometimes overrun their window.
  • Once in a while, a big ad‑hoc notebook run causes everything else to feel sluggish for an hour.

The capacity metrics show CPU and memory spikes, but not constant overload. That’s the key: Fabric doesn’t just react to the current second of usage; it smooths and caps usage over time – just like your phone provider.


The Phone Plan Analogy: How Fabric Capacity Actually Behaves

Think of your Fabric capacity as a shared data plan for your team.

1. Your Capacity Size = Your Monthly Data Allowance

  • An F64 capacity has a certain amount of compute throughput available.
  • Microsoft enforces this via an internal throughput unit (TU) model and rate limits per capacity.
  • You don’t see TUs directly, but all Fabric items (pipelines, notebooks, semantic models, warehouses, etc.) consume from that same pool.

Like a phone plan:

  • Bigger capacity SKUs = larger “data allowance” and higher peak speeds.
  • Everyone on the capacity shares that allowance.

2. Smoothing = Rollover Data

Your phone plan usually doesn’t cut you off the instant you spike usage. It looks at usage over time and may allow short bursts above your nominal throughput. Fabric does the same via smoothing:

  • Fabric tracks resource consumption over a window, not just instant usage.
  • Short bursts above the nominal level are allowed if your average stays within limits.
  • This is like using a bit more data today because you used less yesterday – rollover.

For our scenario:

  • The ETL pipeline at 02:00 can spike CPU for 20 minutes without immediately hurting the 09:00 reporting peak, because the capacity had idle time before and after.

3. Throttling = Speed Cap When You Hit the Limit

When you blow through your phone plan’s monthly allowance, the provider doesn’t usually cut you off; they cap your speed. Fabric does the same:

  • When smoothed usage exceeds what the SKU is allowed to consume, Fabric starts throttling.
  • Throttling means slowing or deferring operations so the capacity stays within its allowed throughput.

In practice, throttling shows up as:

  • Pipelines and notebooks starting later or progressing more slowly.
  • Background operations (e.g., refreshes, maintenance tasks) taking longer.
  • Interactive workloads (report queries) sometimes queue behind heavy background jobs.

Fabric doesn’t randomly decide to be slow; it’s enforcing the equivalent of “you’ve used too much data too fast, now you’re on a speed cap until usage falls back within limits.”


Where Throttling Hits: Key Fabric Workloads

Throttling is not a single switch. Different Fabric services have their own rate limits, but they all draw from the same capacity. Think of them as apps sharing your data plan.

Pipelines and Dataflows (ETL)

  • Pipelines and Dataflows Gen2 consume capacity via activities and compute in the data movement and transformation service.
  • When the capacity is hot, new activities may be queued or run at reduced concurrency.
  • Symptoms:
    • Pipelines start later than scheduled, even though the trigger was on time.
    • Activities that normally run in minutes stretch to tens of minutes.

Lakehouses, Warehouses, and SQL Endpoints

  • Lakehouse and warehouse queries consume compute in the SQL and Spark engines.
  • Under throttling, concurrency is limited and heavy queries may be delayed.
  • Symptoms:
    • Queries wait in queue more often.
    • Notebook jobs that hit the lakehouse take longer to get a Spark session.

Semantic Models and Power BI Reports

  • Import and Direct Lake models consume capacity for refresh and query.
  • Throttling can slow refresh operations and reduce throughput for query workloads.
  • Symptoms:
    • Scheduled refreshes drift later, or multiple refreshes overlap and slow each other down.
    • Report queries feel fine off‑peak but noticeably slower at business peak.

All of these are pulling from the same shared allowance. A big notebook training run is like someone streaming 4K video on the shared phone plan: everyone else’s browsing suddenly feels capped.


Smoothing in Practice: Why Spikes Don’t Always Hurt (and Sometimes Do)

Smoothing is the part most teams miss, and it explains why capacity feels fine one day and painful the next with similar workloads.

How Smoothing Acts Like Rollover

Conceptually (simplified):

  • Fabric looks at usage over a smoothing window (e.g., several minutes).
  • If your average usage in that window stays within the SKU’s allowed rate, you’re at full speed.
  • If the average rises above the allowed rate for long enough, throttling kicks in.

For our scenario:

  • A 10‑minute spike from the data science team at 15:00 might be absorbed if the capacity was quiet before and after.
  • The same spike at 09:30, on top of heavy report usage and overlapping refreshes, pushes the smoothed average over the limit and triggers throttling.

What Smoothing Does Not Do

It’s not magic rollover that erases all sins:

  • Sustained high usage (e.g., a 3‑hour heavy pipeline window) will raise the smoothed average enough that throttling persists even after the pipeline finishes.
  • You can’t “bank” idle time for days and then expect to run at 5× capacity for hours without throttling.

The takeaway:

Your capacity health depends on patterns over time, not just the peak value you see in the last minute.


How Throttling Shows Up in Metrics (What to Actually Look At)

To debug “why is my Fabric capacity slowing down,” you need to correlate user complaints with capacity metrics.

1. Capacity Metrics in the Admin Portal

In the Power BI / Fabric admin portal, the Capacity metrics app (or Fabric monitoring experiences) gives you:

  • CPU and memory usage over time
  • Query wait times and concurrency
  • Refresh and pipeline durations and failures

For throttling‑style issues, look for:

  • Sustained high CPU or high concurrency during the complaint window.
  • Query wait time or job queue length increasing at the same time.

That pattern is your “speed cap” moment: the capacity is enforcing limits, and workloads are being slowed or queued.

2. Workload‑Specific Monitoring

Each workload has its own monitoring hooks:

  • Pipelines: run history, activity duration, concurrency in Fabric Monitoring.
  • Notebooks: session start times, Spark pool utilization.
  • Semantic models: refresh history, query performance in Power BI.

You want to answer:

  • Who was consuming the shared data plan when throttling started?
  • Which workloads are most affected: ETL, reporting, or data science?

Practical Fixes: Managing Your Shared Plan So Throttling Hurts Less

You can’t disable throttling – it’s the enforcement layer of the capacity SKU. But you can manage when and who it hits.

Think of it as data plan governance.

1. Separate Heavy Background Jobs from Interactive Hours

Goal: keep the “speed cap” away from business‑critical reporting.

Actions:

  1. Move heavy pipelines and refreshes off the main business peak.

    • Schedule big lakehouse/warehouse loads overnight or in off‑peak windows.
    • Stagger large semantic model refreshes so they don’t overlap.
  2. Avoid stacking multiple heavy jobs in the same hour.

    • If your main refresh window is 06:00–07:00, don’t also run training notebooks there.

This is like avoiding running OS updates and huge downloads while you’re on a video call over a limited data plan.

2. Control Concurrency: Fewer Parallel “Streams” on the Plan

Most Fabric workloads let you tune concurrency.

Examples:

  • Pipelines: control parallelism via activity design (e.g., fewer parallel branches hitting the same lakehouse).
  • Semantic models: stagger refreshes; avoid multiple full refreshes at the same time.

A simple pattern for our scenario:

  • Instead of one mega‑pipeline with 20 parallel copy activities into the lakehouse, break it into stages with controlled parallelism.

This reduces instantaneous load, making smoothing more forgiving and delaying throttling.

3. Right‑Size the Capacity (Upgrade or Split)

Sometimes you’re simply asking too much of the SKU.

Options:

  1. Upgrade the capacity.

    • Moving from a smaller SKU to a larger one increases your effective “data allowance” and peak throughput.
    • This is the cleanest fix if you consistently see throttling during legitimate business usage.
  2. Split workloads across capacities.

    • Put critical interactive reporting on one capacity.
    • Put heavy data science or batch ETL on another.

This is like giving the finance team their own data plan so the data science team’s 4K streams don’t cap everyone else.

4. Design Workloads to Be Less Spiky

You can often reduce the “burstiness” of workloads:

  • Avoid unnecessary full refreshes when incremental refresh is enough.
  • Design pipelines to batch work sensibly instead of hammering sources and sinks with tiny micro‑batches.
  • In notebooks, avoid repeatedly spinning up and tearing down large Spark sessions for small tasks.

The goal is a flatter usage curve that smoothing can handle without frequent throttling.


A Simple Governance Pattern for Our Scenario

Let’s apply this to the F64 team scenario.

Current pain:

  • 09:00–11:00 reporting is slow.
  • Nightly pipelines sometimes overrun.
  • Ad‑hoc notebooks randomly hurt everyone.

Governance pattern:

  1. Define protected hours for reporting.

    • 08:30–11:30 are “full‑speed” hours for semantic model queries.
    • No heavy pipelines or training notebooks are allowed to start in that window.
  2. Reschedule ETL.

    • Move heavy lakehouse/warehouse pipelines to 01:00–04:00.
    • Stagger large semantic model refreshes between 04:30–07:00.
  3. Control notebooks.

    • Require data science jobs that train large models to run in pre‑agreed windows (e.g., afternoon off‑peak or overnight).
  4. Monitor and adjust.

    • Use capacity metrics to check if 08:30–11:30 still shows throttling.
    • If yes, either reduce concurrency further or consider a capacity upgrade.

Result:

  • The capacity still enforces throttling, but it mostly hits batch workloads in controlled windows.
  • Business‑critical reporting stays close to full speed, because the shared data plan isn’t being hammered at the same time.

One Takeaway: Treat Your Capacity Like a Shared Data Plan

When someone asks “Why is my Fabric capacity slowing down?”, the answer is rarely “Fabric is broken.” It’s usually “your shared data plan is being used too heavily or too burstily, and the provider is capping speed.”

The practical takeaway: make capacity planning a scheduling and governance problem, not just a SKU sizing problem. Once your team starts thinking in terms of rollover, speed caps, and shared allowances, throttling stops being mysterious and becomes something you can control.

Editor's Note

This article reflects how teams running mixed workloads on shared Fabric capacities are learning to treat throttling as a predictable resource cap that can be managed with scheduling and governance rather than purely by upgrading SKUs.

Professionals who want to apply these patterns to their own data can explore Excelgoodies' Microsoft Fabric & Power BI programme - taught live by instructors, with certification awarded once a real project is running at work.

Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.

Microsoft Fabric

New

Next Batches Now Live

Power BIPower BI
SQLSQL
Power AppsPower Apps
Power AutomatePower Automate
Microsoft FabricMicrosoft Fabrics
AzureAzure Data Engineering
Explore Dates & Reserve Your Spot → Reserve Your Spot →