Could your Power BI Document be consuming too much Memory?
Power BI performance is one of the key factors affecting satisfaction by business users. We’ll examine memory consumption by Power BI Reports, how it can be measured, and how you can use this information to improve report performance. We’ll look at a report memory footprint, and how that affects report performance. We’ll also look at which Power BI-related Windows processes are running on your machine, and how measuring memory consumption can provide a path to fixing poorly performing reports.
In my time working on Power BI projects for our largest clients, I’ve often been asked why a Power BI report is consuming so much memory as our users navigate through their reports. I also get asked about the need to move to a more expensive tier when using Premium Capacity, even when there are just a few reports.
Why should you care about your Power BI report memory footprint?
For Power BI Premium capacity, each tier has predefined computing resources assigned to it. These resources relate to how much memory and CPU are available on that Premium node. Having the ability to assess a Power BI report’s memory requirements allows you to ensure good performance for all reports, and adequate memory capacity is available when you need it. This allows you to be at the lowest cost Premium Capacity tier and still maintain healthy Power BI performance.
Measuring Power BI document memory consumption
While using Power BI desktop to create a Power BI report, you can use the Windows Task Manager to review the current memory footprint of the report. To do this:
A. Open the report in Power BI Desktop
B. Insert a blank page
C. While in the blank page, save and close the report
D. If possible, close all open applications
E. Launch Power BI Desktop again, and open the previously saved report
F. Once the report is open, you should be in the blank page that you had added (the report should open to the blank page added in Step B, above)
G. Open Windows Task Manager by pressing Ctrl-Alt-Del, and selecting Task Manager from the list provided. Expand the Power BI Desktop Group under the process tab
(Detailed information about these processes can be found at the end of this post.)
H. Wait for the report CPU % to approach zero, which means that it has completed loading it into memory. See this sample report on the blank page.
I. Next, navigate to one of the pages where memory consumption is very high due to an underperforming DAX formula.
J. Once you’ve optimized DAX formulas that were causing the memory spike, you can do a side by side memory comparison between the initial version and the optimized version.
Repeating the process as you build new reports or rework slow reports will allow you to minimize memory usage and get the most out of your premium capacity.
The associated processes are defined below:
- This process allows Power BI Desktop to simulate the Power BI Service
Console Windows Host
- Microsoft internal process
Microsoft Mashup Evaluation Container
- The Power Query Engine
- It is responsible for processing all the steps in the Power Query Editor, which gets data from my sources, transforms it and then loads it into my data model
Microsoft Power BI Desktop
- This is the starting point executable and container for all the processes run within Power BI Desktop
Microsoft SQL Server Analysis Services
- The analytical data engine
- This is where all the data gets loaded from Power Query into the data model.
- This process can have the highest memory usage
- An expensive DAX measure that must get most of its data from the storage engine will see an increase in memory utilization and CPU during the evaluation and running of the DAX measure
Power BI performance improvements are attainable
Now you know how to gain insight into Power BI Report memory consumption to avoid problems once the reports are run within the Power BI Service. Our team at DesignMind has years of experience designing, developing, and architecting Power BI solutions for organizations, both large and small. You can see more tips from our Power BI experts here.
Tomas Santandreu Polanco is a Senior BI Consultant at DesignMind.