Richtlijnen voor capaciteitsplanning voor Power BI Report ServerCapacity planning guidance for Power BI Report Server

Power BI Report Server is een selfservice-BI en rapportageoplossing voor ondernemingen die klanten on-premises, achter hun firewall kunnen implementeren.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. De oplossing combineert de interactieve rapportagemogelijkheden van Power BI Desktop met het on-premises serverplatform van SQL Server Reporting Services.It combines the interactive report capability of Power BI Desktop with the on-premises server platform of SQL Server Reporting Services. Met het intensieve en toenemende gebruik van analyses en rapporten binnen ondernemingen is het soms behoorlijk lastig om de hardware-infrastructuur en de benodigde softwarelicenties voor het schalen van het gebruikersbestand te budgetteren.With heavy and growing usage of analytics and reporting within enterprises, budgeting the hardware infrastructure and software licenses required to scale to an enterprise user base can be a challenge. Het doel van dit document is een leidraad te geven bij de capaciteitsplanning voor Power BI Report Server door het delen van de resultaten van talrijke belastingtests die met verschillende workloads op een rapportserver zijn uitgevoerd.This paper aims to offer guidance on capacity planning for Power BI Report Server by sharing results of numerous load test executions of various workloads against a report server. Hoewel de rapporten, query's en gebruikspatronen sterk kunnen variëren, vormen de resultaten die in dit artikel worden gepresenteerd, alsmede de daadwerkelijk uitgevoerde testen en de gedetailleerde beschrijving van de testprocedures, een goed referentiepunt voor iedereen die overweegt om Power BI Report Server te implementeren.While organizations' reports, queries, and usage patterns vary widely, the results presented in this paper, along with the actual tests used and a detailed description of how they were executed, serve as a reference point for anyone in the early-stage planning process of deploying Power BI Report Server.

ManagementsamenvattingExecutive summary

We hebben twee verschillende typen workloads in Power BI Report Server uitgevoerd. Voor elke workload hebben we verschillende typen rapporten weergegeven en diverse webportalbewerkingen uitgevoerd.We executed two different types of workloads against Power BI Report Server; each workload consisted of rendering different types of reports as well as performing various web portal operations.

  • In de workload 'Power BI-rapport Intensief' bestond de meest frequente bewerking (oftewel de bewerking die 60% van de tijd werd uitgevoerd) uit het weergeven van Power BI-rapporten.In "Power BI Report Heavy" workload, the most frequently executed operation (i.e. the operation executed 60% of the time) was rendering Power BI reports.
  • De workload 'Gepagineerd rapport Intensief' bestond voornamelijk uit het weergeven van pagineerde rapporten.In "Paginated Report Heavy" workload, the most frequently executed operation was rendering paginated reports.

Met een Power BI Report Server-servertopologie van vier server en de verwachting dat niet meer dan 5% van de gebruikers tegelijkertijd een rapportserver zullen gebruiken, wordt in de volgende tabel beschreven door hoeveel gebruikers Power BI Report Server maximaal tegelijkertijd kan worden gebruikt met een betrouwbaarheid van ten minste 99%.Under a four-server topology of Power BI Report Server and the expectation that no more than 5% of users will access a report server at any one time, the following table describes the maximum number of users Power BI Report Server can handle with at least 99% reliability.

WorkloadWorkload 8 kernen/32 GB RAM8 Core/32 GB RAM 16 kernen/64 GB RAM16 Core/64 GB RAM
Power BI-rapport Intensief (>60%)Power BI Report Heavy (>60%) 1.000 gebruikers1,000 users 3.000 gebruikers3,000 users
Gepagineerd (RDL) rapport Intensief (>60%)Paginated (RDL) Report Heavy (>60%) 2.000 gebruikers2,000 users 3.200 gebruikers3,200 users

Bij elke test bleek dat van alle resources de CPU het zwaarst werd belast.In each run, the most overwhelmed resource was CPU. Op basis hiervan blijkt dat er met betrekking tot de betrouwbaarheid van het systeem meer winst kan worden geboekt met een uitbreiding van het aantal kernen dan door de hoeveelheid geheugen of vasteschijfruimte te verhogen.Due to this, increasing the number of cores to Power BI Report Server would yield a higher gain in the reliability of the system than increasing the amount of memory or hard-disk space.

TestmethodologieTest methodology

De gebruikte testtopologie is gebaseerd op Microsoft Azure Virtual Machines in plaats van leverancierspecifieke fysieke hardware.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Alle computers werden gehost in regio's binnen de VS.All machines were hosted in US regions. Dit komt overeen met de algemene trend om de hardwarevirtualisatie zowel on-premises als in de openbare cloud uit te voeren.This reflects the general trend of hardware virtualization both on-premises and in the public cloud.

Topologie van Power BI Report ServerPower BI Report Server topology

De Power BI Report Server-implementatie bestaat uit de volgende virtuele machines:The Power BI Report Server deployment consisted of the following virtual machines:

  • Active Directory-domeincontroller: SQL Server Database Engine, SQL Server Analysis Services en Power BI Report Server hebben deze controller nodig om veilig alle aanvragen te kunnen verifiëren.Active Directory Domain Controller: this was needed by SQL Server Database Engine, SQL Server Analysis Services, and Power BI Report Server to securely authenticate all requests.
  • SQL Server Database Engine en SQL Server Analysis Services: hier waren alle databases opgeslagen die door de rapporten werden gebruikt op het moment dat ze werden weergegeven.SQL Server Database Engine and SQL Server Analysis Services: this was where we stored all the databases for the reports to consume when we rendered them.
  • Power BI Report ServerPower BI Report Server
  • Power BI Report Server-database.Power BI Report Server Database. De rapportserverdatabase wordt gehost op een andere computer dan Power BI Report Server, zodat Power BI niet met SQL Server Database Engine hoeft te wedijveren om geheugen-, CPU-, netwerk- en schijfresources.The report server database is hosted on a different machine than Power BI Report Server so that it does not need to compete with SQL Server Database Engine for memory, CPU, network, and disk resources.

Diagram met relaties tussen Power BI Report Server, Active Directory en gekoppelde databases.

Zie bijlage 1.1 Power BI Report Server-topologie en bijlage 1.2 Configuratie van de virtuele machine van Power BI Report Server voor een grondige configuratie van elke virtuele machine die wordt gebruikt in de topologie.See Appendix 1.1 Power BI Report Server Topology and Appendix 1.2 Power BI Report Server Virtual Machine Configuration for a thorough configuration of each virtual machine used in the topology.

TestenTests

De testen die worden gebruikt om de belastingtesten uit te voeren, zijn openbaar beschikbaar in een GitHub-project met de naam Reporting Services LoadTest.The tests used in the load test runs are publicly available in a GitHub project called Reporting Services LoadTest. Met dit hulpprogramma kunnen gebruikers de kenmerken van de prestaties, betrouwbaarheid, schaalbaarheid en herstelmogelijkheden van SQL Server Reporting Services en Power BI Report Server bestuderen.This tool allows users to study the performance, reliability, scalability and recoverability characteristics of SQL Server Reporting Services and Power BI Report Server. Dit project bestaat uit vier groepen van testcases:This project consists of four groups of test cases:

  • Testen waarbij de weergave van Power BI-rapporten wordt gesimuleerd.Tests simulating rendering Power BI reports,
  • Testen waarbij de weergave van mobiele rapporten wordt gesimuleerd.Tests simulating rendering mobile reports,
  • Testen waarbij de weergave van kleine en grote gepagineerde rapporten wordt gesimuleerd.Tests simulating rendering small and large paginated reports, and
  • Testen waarbij diverse verschillende typen webportalbewerkingen worden gesimuleerd.Tests simulating performing various types of web portal operations.

Alle testen zijn geschreven om een volledige bewerking van begin tot eind uit te voeren (zoals het weergeven van een rapport, het maken van een nieuwe gebruikersbron, enzovoort).All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Dit wordt gerealiseerd door een of meer webaanvragen naar de rapportserver te verzenden (via API's).They accomplish this by making one or more web requests to the report server (via APIs). In de praktijk moet een gebruiker mogelijk een aantal tussenliggende bewerkingen uitvoeren om een van deze end-to-end-bewerkingen uit te voeren.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Als een gebruiker bijvoorbeeld een rapport wil weergeven moet de gebruiker naar de webportal gaan, de map met het rapport zoeken en openen en vervolgens het rapport klikken om dit weer te geven.For example, to render a report a user will need to go to the web portal, navigate to the folder where the report is, then click the report to render it. Hoewel tijdens een test niet alle benodigde bewerkingen worden uitgevoerd om een end-to-end-taak te voltooien, is de belasting van Power BI Report Server wel grotendeels hetzelfde.While tests don't perform all the operations needed to accomplish an end-to-end task, they still impose most of the load that Power BI Report Server would experience. U kunt het GitHub-project verkennen voor meer informatie over de verschillende typen rapporten die worden gebruikt en de diverse bewerkingen die worden uitgevoerd.You can learn more about the different types of reports used as well as the variety of operations performed by exploring the GitHub project.

Notitie

Het hulpprogramma wordt niet officieel ondersteund door Microsoft, maar het productteam draagt wel bij aan het project en beantwoordt problemen die door andere inzenders worden ingezonden.The tool isn't officially supported by Microsoft, but the product team does contribute to the project and answer issues that are raised by other contributors.

WorkloadsWorkloads

Er worden tijdens het testen twee workloadprofielen gebruikt: Power BI-rapport Intensief en Gepagineerd rapport Intensief.There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. In de onderstaande tabel wordt de distributie van de aanvragen beschreven die worden uitgevoerd voor Report Server.The table below describes the distribution of requests executed against the Report Server.

ActiviteitActivity Power BI-rapport Intensief, frequentiePower BI Report Heavy, Frequency of occurrence Gepagineerd rapport Intensief, frequentiePaginated Report Heavy, Frequency of occurrence
Power BI-rapporten weergevenRendering Power BI reports 60%60% 10%10%
RDL-rapporten (gepagineerde rapporten) weergevenRendering paginated (RDL) reports 30%30% 60%60%
Mobiele rapporten weergevenRendering mobile reports 5%5% 20%20%
WebportalbewerkingenWeb portal operations 5%5% 10%10%

GebruikersbelastingUser load

Voor elke testuitvoering zijn de testen uitgevoerd op basis van de frequentie zoals opgegeven in een van de twee workloads.For each test run, tests were executed based on the frequency specified in one of the two workloads. Voor alle testen werden om te beginnen 20 gelijktijdige gebruikersaanvragen naar de rapportserver verzonden.Tests started with 20 concurrent user requests to the report server. De gebruikersbelasting werd geleidelijk verhoogd, totdat de betrouwbaarheidsdoelstelling van 99% niet meer werd gehaald.The user load was then gradually increased until reliability dropped below the 99% target.

ResultatenResults

Capaciteit voor het aantal gelijktijdige gebruikersConcurrent user capacity

Zoals gezegd, was er bij aanvang van elke test sprake van 20 gelijktijdige gebruikers die aanvragen verzonden naar de rapportserver.As stated earlier, tests started with 20 concurrent users making requests to the report server. Het aantal gelijktijdige gebruikers werd geleidelijk verhoogd totdat 1% van alle aanvragen mislukte.The number of concurrent users was then gradually increased until 1% of all requests were failing. In de volgende tabel met resultaten kunnen we zien hoeveel gelijktijdige gebruikersaanvragen de server onder piekbelasting kan verwerken met een foutpercentage van minder dan 1%.The results in the following table tell us the number of concurrent user requests that the server would be able to handle under peak load with a failure rate of less than 1%.

WorkloadWorkload 8 kernen/32 GB8 Core/32 GB 16 kernen/64 GB16 Core/64 GB
Power BI-rapport IntensiefPower BI Report Heavy 50 gelijktijdige gebruikers50 concurrent users 150 gelijktijdige gebruikers150 concurrent users
Gepagineerd rapport IntensiefPaginated Report Heavy 100 gelijktijdige gebruikers100 concurrent users 160 gelijktijdige gebruikers160 concurrent users

Totale gebruikerscapaciteitTotal user capacity

Bij Microsoft beschikken we over een productie-implementatie van Power BI Report Server die door verschillende teams wordt gebruikt.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. Wanneer we het daadwerkelijke gebruik van deze omgeving analyseren, zien we dat het aantal gelijktijdige gebruikers op een gegeven moment (zelfs tijdens de dagelijkse piekbelasting) doorgaans niet groter is dan 5% van het totale gebruikersbestand.When we analyze actual usage of this environment, we observe that the number of concurrent users at any given time (even during daily peak load) doesn't tend to exceed 5% of the total user base. We hebben de gelijktijdigheidsverhouding van 5% als benchmark gebruikt om het totale gebruikersbestand te extrapoleren dat Power BI Report Server kan verwerken met een betrouwbaarheid van minimaal 99%.Using this 5% concurrency ratio as a benchmark, we extrapolated the total user base Power BI Report Server could handle with 99% reliability.

WorkloadWorkload 8 kernen/32 GB8 Core/32 GB 16 kernen/64 GB16 Core/64 GB
Power BI-rapport IntensiefPower BI Report Heavy 1.000 gebruikers1,000 users 3.000 gebruikers3,000 users
Gepagineerd rapport IntensiefPaginated Report Heavy 2.000 gebruikers2,000 users 3.200 gebruikers3,200 users

SamenvattingSummary

Bij elke belastingstestuitvoering bleek dat tijdens de piekbelasting van de computer met Power BI Report Server de CPU het zwaarst werd belast.For each load test run, CPU was the most overwhelmed resource at the point of peak load on the Power BI Report Server machine. OP basis hiervan kan worden gesteld dat als eerste resource het aantal kernen moet worden uitgebreid.Due to this, the first resource that should be increased is the number of cores. U kunt eventueel de schaal vergroten door meer servers aan uw topologie toe te voegen waarop Power BI Report Server wordt gehost.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

De resultaten in dit artikel zijn afgeleid van testen waarbij een specifieke set rapporten wordt uitgevoerd op basis van een specifieke set gegevens en deze bewerking op een specifieke manier wordt herhaald.The results presented in this paper were derived from executing a specific set of reports consuming a specific set of data, repeated in a specific way. De resultaten vormen een nuttig referentiepunt, maar houd er rekening mee dat uw gebruik afhankelijk is van uw rapporten, query's, gebruikspatronen en de implementatie van uw Power BI Report Server.It's a useful reference point, but keep in mind that your usage will depend on your reports, queries, usage patterns and deployment of your Power BI Report Server.

BijlageAppendix

1 Topologie1 Topology

1.1 Topologie van Power BI Report Server1.1 Power BI Report Server Topology

Er is een vaste VM-configuratie voor elk type machine gebruikt (behalve voor de machine waarop Power BI Report Server werd gehost), om ons uitsluitend te concentreren op het gedrag van Power BI Report Server onder verschillende configuraties.To focus solely on Power BI Report Server behavior under different configurations, the VM configuration for each type of machine (except for the machine hosting Power BI Report Server) was fixed. Elke machine waren de machines ingericht overeenkomstig de tweede generatie (v2) uit de D-serie met Premium-opslagschijven.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. U kunt getailleerde informatie over elke VM-grootte vinden in de sectie Algemeen gebruik.You can find detailed information about each VM size under the "General Purpose" section.

Type virtuele machineVirtual Machine Type ProcessorProcessor GeheugenMemory Azure VM-grootteAzure VM Size
Active Directory-domeincontrollerActive Directory Domain Controller 2 kernen2 Cores 7 GB7 GB Standard_DS2_v2Standard_DS2_v2
SQL Server Database Engine en Analysis ServicesSQL Server Database Engine and Analysis Services 16 kernen16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2
Report Server-databaseReport Server Database 16 kernen16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Configuratie van de virtuele machine van Power BI Report Server1.2 Power BI Report Server Virtual Machine Configuration

Voor de virtuele machine waarop Power BI Report Server werd gehost, zijn andere processor- en geheugenconfiguraties gebruikt.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. In tegenstelling tot de andere virtuele machines was deze machine ingericht overeenkomstig de derde generatie (v3) machines uit de D-serie met Premium-opslagschijven.Unlike the other VMs, this machine was provisioned according to the third-generation (v3) D Series Machines with Premium Storage Disks. U kunt getailleerde informatie over deze VM-grootte vinden in de sectie Algemeen gebruikYou can find detailed information about this VM size under the "General Purpose" section

Virtuele machineVirtual Machine ProcessorProcessor GeheugenMemory Azure VM-grootteAzure VM Size
Power BI Report Server (klein)Power BI Report Server (Small) 8 kernen8 Cores 32 GB32 GB Standard_D8S_v3Standard_D8S_v3
Power BI Report Server (groot)Power BI Report Server (Large) 16 kernen16 Cores 64 GB64 GB vStandard_D16S_v3vStandard_D16S_v3

2 Het hulpprogramma LoadTest uitvoeren2 Run the LoadTest tool

Als u het hulpprogramma LoadTest van Reporting Services wilt uitvoeren voor uw implementatie of een Microsoft Azure-implementatie van Power BI Report Server, voert u de volgende stappen uit.If you'd like to run the Reporting Services LoadTest tool against your or a Microsoft Azure deployment of Power BI Report Server, follow these steps.

  1. Maak een kloon van het Reporting Services LoadTest-project op GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest) ).Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. In de projectmap vindt u een oplossingsbestand met de naam RSLoadTests.sln.In the project directory, you will find a solution file called RSLoadTests.sln. Open dit bestand in Visual Studio 2015 of later.Open this file in Visual Studio 2015 or later.
  3. Bepaal of u dit hulpprogramma wilt uitvoeren voor uw implementatie van Power BI Report Server of voor een implementatie van Power BI Report Server in Microsoft Azure.Determine whether you want to run this tool against your deployment of Power BI Report Server or against a deployment of Power BI Report Server in Microsoft Azure. Als u dit hulpprogramma gebruikt voor uw eigen implementatie, gaat u naar stap 5.If you are going to run it against your own deployment, go to step 5.
  4. Volg de instructies die worden weergegeven op https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure om een Power BI Report Server-omgeving in Azure te maken.Follow the instructions listed on https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure to create a Power BI Report Server environment in Azure.
  5. Nadat u de omgeving hebt geïmplementeerd, volgt u de instructies die worden weergegeven op https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution om de tests uit te voeren.Once you finish deploying the environment, follow the instructions listed on https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution to run the tests.

Hebt u nog vragen?More questions? Misschien dat de Power BI-community het antwoord weetTry asking the Power BI Community