How Capacity is Consumed & Calculated in Microsoft Fabric

Microsoft Fabric uses a consumption-based compute model where resources are measured in Capacity Units (CU) instead of fixed CPUs or servers. Multiple workloads like Spark, SQL, and Power BI share the same capacity pool, and total usage is calculated as CU Γ— time. If workload demand exceeds available CU/sec, Fabric throttles or delays processing. SKU sizes like F16, F32, and F64 define the maximum CU available per second. Effective capacity planning requires estimating concurrent workloads, adding buffer capacity, and selecting an SKU that can handle peak demand without performance issues.

Back to Microsoft Fabric
How Capacity is Consumed & Calculated in Microsoft Fabric image 1

Problem (Deep Understanding) The confusion comes from thinking Fabric = fixed infrastructure, like: VM with CPU cores Dedicated SQL server πŸ‘‰ But Fabric works on a shared, consumption-based compute model So challenges are: You don’t see CPUs directly, you see Capacity Units (CU) Multiple workloads run together: Lakehouse (Spark) Warehouse (SQL) Power BI All of them compete for the same capacity pool πŸ‘‰ Result: If demand > capacity β†’ Throttling If capacity > demand β†’ Wasted cost 🟒 Solution (Core Concept) 1. What is CU (Capacity Unit)? CU represents compute power per second Think of it as: β€œHow much processing Fabric can do per second” 2. How Consumption Actually Works πŸ‘‰ Fabric measures usage as: CU consumption over time Instead of saying: β€œThis query used 4 CPUs” Fabric says: β€œThis workload consumed 20 CU for 10 seconds” 3. Core Formula (Interpretation) Total Consumption = CU Γ— Time Example: 32 CU running for 1 hour = 32 Γ— 3600 = 115,200 CU consumed πŸ‘‰ Billing + throttling decisions are based on this behavior πŸ“Š Example Scenario (Very Important) Given: Lakehouse workload β†’ 20 CU/sec Warehouse workload β†’ 12 CU/sec πŸ‘‰ Combined: Total = 32 CU/sec What does this mean practically? Every second: Fabric needs to supply 32 units of compute If capacity cannot supply β†’ delay / throttling πŸ”’ Mapping with SKU (Critical Insight) Your SKU defines maximum CU available per second Write on Medium SKUCU/secF1616 CUF3232 CUF6464 CU Case Analysis: ❌ F16 Capacity = 16 CU Required = 32 CU πŸ‘‰ Shortfall β†’ 50% deficit πŸ‘‰ Result β†’ Throttling + slow queries βœ… F32 Capacity = 32 CU Required = 32 CU πŸ‘‰ Exact match πŸ‘‰ Works fine only if workload is stable βœ… F64 Capacity = 64 CU πŸ‘‰ Extra buffer available πŸ‘‰ Handles: Sudden spikes Parallel queries Background refresh ⏱️ 30-Second Rule (Most Important Concept) Fabric evaluates capacity in 30-second windows Example: F32 β†’ 960 CU per 30 sec Your usage: 32 CU Γ— 30 sec = 960 CU πŸ‘‰ Perfect alignment β†’ No throttling If exceeded: Example: You suddenly use 50 CU/sec In 30 sec β†’ 1500 CU But F32 limit = 960 πŸ‘‰ Result: Fabric queues / slows down workloads 🎯 Capacity Selection Strategy (Real-World Logic) Step 1: Identify Workloads Lakehouse (Spark jobs) Warehouse (queries) Power BI (reports) Step 2: Estimate CU per workload Example: Spark job β†’ 20 CU SQL queries β†’ 12 CU Step 3: Add them Total = 32 CU Step 4: Add buffer (VERY IMPORTANT) +20–30% headroom πŸ‘‰ 32 Γ— 1.3 β‰ˆ 42 CU Step 5: Choose SKU F32 β†’ borderline ⚠️ F64 β†’ safe βœ… πŸ”΅ Key Takeaway (Expert-Level Understanding) Fabric is not resource-based (CPU/RAM) It is throughput-based (CU/sec) πŸ‘‰ Golden Rule: Always size capacity based on peak concurrent workload, not average πŸ’‘ One-Liner to Teach Students β€œFabric capacity planning is about ensuring your CU/sec supply always meets or exceeds your workload demand β€” especially during peak load.”

Questions and comments

No comments yet.