CPU and memory are the core resources that determine your Fabric capacity's performance. Understanding how to monitor and optimize these resources is essential for cost control and user experience.
What Power BI Provides Natively
Fabric exposes resource metrics through:
Capacity Metrics App
- CPU utilization percentage
- Memory utilization percentage
- Breakdowns by workload type
- 14-day retention
Azure Monitor (Optional)
- Real-time metrics stream
- Custom alerting
- Longer retention
- Requires configuration
Limitations
- Metrics delayed (15-30 min)
- No cross-capacity comparison
- Limited historical analysis
- Complex alerting setup
CPU vs. Memory
CPU primarily impacts refresh and query processing speed. Memory impacts how much data can be cached for fast queries. Monitor both for complete visibility.
Common Problems
CPU Spikes During Refresh Windows
Scheduled refreshes often cluster:
- All datasets refresh at midnight
- End-of-day ETL completion triggers refreshes
- Time zones create unexpected peaks
Result: CPU spikes cause throttling.
Memory Pressure from Large Models
Large semantic models consume memory:
- Each user query loads model into memory
- Multiple concurrent users multiply pressure
- Large models stay cached, limiting space
Result: Query performance degrades.
No Correlation to Business Impact
Raw CPU/memory numbers don't tell you:
- Which reports are affected
- How many users are impacted
- What's the business cost
Optimization Without Data
Without detailed metrics:
- Don't know what to optimize first
- Can't measure improvement
- Changes based on guessing
How to Monitor Properly
Track Utilization Trends
Monitor over time:
| Timeframe | Purpose |
|---|---|
| Hourly | Identify daily patterns |
| Daily | Spot weekly trends |
| Weekly | Capacity planning |
| Monthly | Cost forecasting |
Set Meaningful Thresholds
CPU thresholds:
- Healthy: Under 60% average
- Elevated: 60-80%
- High: 80-90%
- Critical: Above 90%
Memory thresholds:
- Healthy: Under 70% average
- Elevated: 70-85%
- High: 85-95%
- Critical: Above 95%
Correlate Resources with Workloads
Connect metrics to activities:
- Which refresh consumed most CPU?
- Which queries used most memory?
- Which users are heaviest consumers?
Implement Optimization Loop
- Monitor baseline metrics
- Identify top consumers
- Optimize (queries, schedules, models)
- Measure improvement
- Repeat
How SummitView Helps
SummitView provides comprehensive resource monitoring:
- Real-time dashboards for CPU and memory
- Historical trending for capacity planning
- Workload correlation to identify consumers
- Optimization recommendations via AI analysis
FAQ
What's a healthy CPU utilization target?
Aim for average CPU below 60% with room for peaks. This provides headroom for unexpected demand and prevents throttling during busy periods.
How do I reduce memory pressure?
Optimize semantic models: remove unused columns, implement aggregations, enable query folding, and consider splitting large models into smaller focused datasets.
Should I monitor CPU and memory separately?
Yes. Different workloads stress different resources. Refreshes are CPU-intensive while large query concurrency stresses memory. Understanding both helps targeted optimization.