Richtlijnen voor capaciteitsplanning voor Power BI Report Server

Power BI Report Server is een selfservice-BI- en bedrijfsrapportageoplossing die klanten on-premises kunnen implementeren achter hun firewall. Het combineert de interactieve rapportfunctionaliteit van Power BI Desktop met het on-premises serverplatform van SQL Server Reporting Services. Met intensief en groeiend gebruik van analyses en rapportage binnen ondernemingen kan het budgetteren van de hardware-infrastructuur en softwarelicenties die nodig zijn om te schalen naar een zakelijke gebruikersbasis een uitdaging zijn. Dit document is bedoeld om richtlijnen te bieden voor capaciteitsplanning voor Power BI Report Server door de resultaten te delen van talloze belastingtestuitvoeringen van verschillende workloads op een rapportserver. Hoewel de rapporten, query's en gebruikspatronen van organisaties sterk verschillen, zijn de resultaten die in dit document worden gepresenteerd, samen met de daadwerkelijke tests die worden gebruikt en een gedetailleerde beschrijving van hoe ze zijn uitgevoerd, fungeren als referentiepunt voor iedereen in het planningsproces in de vroege fase van het implementeren van Power BI Report Server.

Overzicht voor leidinggevenden

We hebben twee verschillende typen workloads uitgevoerd op Power BI Report Server; elke workload bestond uit het weergeven van verschillende typen rapporten en het uitvoeren van verschillende webportalbewerkingen.

  • In de workload 'Power BI Report Heavy' was het genereren van Power BI-rapporten de meest frequent uitgevoerde bewerking (dat wil bijvoorbeeld de bewerking die 60% van de tijd werd uitgevoerd) Power BI-rapporten.
  • In de workload 'Gepagineerd rapport zwaar' werd de meest uitgevoerde bewerking gepagineerde rapporten weergegeven.

Onder een topologie van vier servers van Power BI Report Server en de verwachting dat maximaal 5% van de gebruikers op elk gewenst moment toegang heeft tot een rapportserver, beschrijft de volgende tabel het maximum aantal gebruikers dat Power BI Report Server met ten minste 99% betrouwbaarheid kan verwerken.

Workload 8 Core/32 GB RAM 16 Core/64 GB RAM
Power BI Report Heavy (>60%) 1000 gebruikers 3000 gebruikers
Gepagineerd (RDL)-rapport intensief (>60%) 2000 gebruikers 3.200 gebruikers

In elke uitvoering was de meest overweldigde resource CPU. Als gevolg hiervan zou het verhogen van het aantal kernen naar Power BI Report Server een hogere winst opleveren in de betrouwbaarheid van het systeem dan het verhogen van de hoeveelheid geheugen of schijfruimte.

Testmethodologie

De gebruikte testtopologie is gebaseerd op Microsoft Azure Virtual Machines in plaats van leverancierspecifieke fysieke hardware. Alle machines werden gehost in amerikaanse regio's. Dit weerspiegelt de algemene trend van hardwarevirtualisatie zowel on-premises als in de openbare cloud.

Power BI Report Server-topologie

De implementatie van Power BI Report Server bestond uit de volgende virtuele machines:

  • Active Directory-domein Controller: dit is nodig voor SQL Server Database Engine, SQL Server Analysis Services en Power BI Report Server om alle aanvragen veilig te verifiëren.
  • SQL Server Database Engine en SQL Server Analysis Services: hier hebben we alle databases voor de rapporten opgeslagen die moeten worden gebruikt toen we ze weerden.
  • Power BI Report Server
  • Power BI Report Server-database. De rapportserverdatabase wordt gehost op een andere computer dan Power BI Report Server, zodat deze niet hoeft te concurreren met SQL Server Database Engine voor geheugen, CPU, netwerk en schijfbronnen.

Diagram showing relationships between Power B I Report Server, Active Directory, and associated databases.

Zie bijlage 1.1 Power BI Report Server-topologie en bijlage 1.2 Power BI Report Server Virtual Machine Configuration voor een grondige configuratie van elke virtuele machine die in de topologie wordt gebruikt.

Tests

De tests die worden gebruikt in de belastingtestuitvoeringen, zijn openbaar beschikbaar in een GitHub-project met de naam Reporting Services LoadTest. Met dit hulpprogramma kunnen gebruikers de prestatie-, betrouwbaarheids-, schaalbaarheids- en herstelbaarheidskenmerken van SQL Server Reporting Services en Power BI Report Server bestuderen. Dit project bestaat uit vier groepen testcases:

  • Tests voor het simuleren van het weergeven van Power BI-rapporten,
  • Tests voor het simuleren van het weergeven van mobiele rapporten,
  • Tests voor het simuleren van het weergeven van kleine en grote gepagineerde rapporten, en
  • Tests simuleren het uitvoeren van verschillende typen webportalbewerkingen.

Alle tests zijn geschreven om een end-to-end-bewerking uit te voeren (zoals het weergeven van een rapport, het maken van een nieuwe gegevensbron, enzovoort). Ze doen dit door een of meer webaanvragen naar de rapportserver te verzenden (via API's). In de praktijk moet een gebruiker mogelijk een paar tussenliggende bewerkingen uitvoeren om een van deze end-to-end-bewerkingen te voltooien. Als u bijvoorbeeld een rapport wilt weergeven dat een gebruiker naar de webportal moet gaan, gaat u naar de map waarin het rapport zich bevindt en klikt u vervolgens op het rapport om het weer te geven. Hoewel tests niet alle bewerkingen uitvoeren die nodig zijn om een end-to-end taak uit te voeren, leggen ze nog steeds het grootste deel van de belasting op die Power BI Report Server zou ervaren. Meer informatie over de verschillende typen rapporten die worden gebruikt, evenals de verschillende bewerkingen die worden uitgevoerd door het GitHub-project te verkennen.

Notitie

Het hulpprogramma wordt niet officieel ondersteund door Microsoft, maar het productteam draagt wel bij aan het project en beantwoordt problemen die worden veroorzaakt door andere inzenders.

Workloads

Er worden 2 workloadprofielen gebruikt voor het testen: Power BI Report Heavy en Gepagineerd rapport zwaar. In de onderstaande tabel wordt de distributie van aanvragen beschreven die worden uitgevoerd op de rapportserver.

Activiteit Power BI-rapport intensief, frequentie van exemplaar Gepagineerd rapport intensief, frequentie van exemplaar
Power BI-rapporten weergeven 60% 10%
Gepagineerde (RDL)-rapporten weergeven 30% 60%
Mobiele rapporten weergeven %5 20%
Webportalbewerkingen 5% 10%

Gebruikersbelasting

Voor elke testuitvoering zijn tests uitgevoerd op basis van de frequentie die is opgegeven in een van de twee werkbelastingen. Tests zijn gestart met 20 gelijktijdige gebruikersaanvragen naar de rapportserver. De gebruikersbelasting werd vervolgens geleidelijk verhoogd totdat de betrouwbaarheid onder het doel van 99% daalde.

Results

Gelijktijdige gebruikerscapaciteit

Zoals eerder vermeld, zijn tests gestart met 20 gelijktijdige gebruikers die aanvragen indienen bij de rapportserver. Het aantal gelijktijdige gebruikers werd vervolgens geleidelijk verhoogd tot 1% van alle aanvragen mislukte. De resultaten in de volgende tabel geven het aantal gelijktijdige gebruikersaanvragen aan dat de server onder piekbelasting zou kunnen verwerken met een foutpercentage van minder dan 1%.

Workload 8 Core/32 GB 16 Core/64 GB
Power BI Report Heavy 50 gelijktijdige gebruikers 150 gelijktijdige gebruikers
Gepagineerd rapport zwaar 100 gelijktijdige gebruikers 160 gelijktijdige gebruikers

Totale gebruikerscapaciteit

Bij Microsoft hebben we een productie-implementatie van Power BI Report Server die door verschillende teams wordt gebruikt. Wanneer we het werkelijke gebruik van deze omgeving analyseren, zien we dat het aantal gelijktijdige gebruikers op een bepaald moment (zelfs tijdens de dagelijkse piekbelasting) niet meer dan 5% van het totale gebruikersbestand overschrijdt. Met deze gelijktijdigheidsverhouding van 5% als benchmark hebben we het totale aantal gebruikersbasis power BI Report Server geëxtrapoleerd met een betrouwbaarheid van 99%.

Workload 8 Core/32 GB 16 Core/64 GB
Power BI Report Heavy 1000 gebruikers 3000 gebruikers
Gepagineerd rapport zwaar 2000 gebruikers 3.200 gebruikers

Samenvatting

Voor elke belastingtestuitvoering was DE CPU de meest overweldigde resource op het moment van piekbelasting op de Power BI Report Server-computer. Hierdoor is de eerste resource die moet worden verhoogd het aantal kernen. U kunt ook overwegen om uit te schalen door meer servers toe te voegen die als host fungeren voor Power BI Report Server in uw topologie.

De resultaten die in dit document worden gepresenteerd, zijn afgeleid van het uitvoeren van een specifieke set rapporten die een specifieke set gegevens gebruiken, die op een specifieke manier worden herhaald. Het is een nuttig referentiepunt, maar houd er rekening mee dat uw gebruik afhankelijk is van uw rapporten, query's, gebruikspatronen en implementatie van uw Power BI Report Server.

Bijlage

1 Topologie

1.1 Topologie van Power BI Report Server

De VM-configuratie voor elk type machine (met uitzondering van de computer waarop Power BI Report Server wordt gehost) is opgelost om alleen te focussen op het gedrag van Power BI Report Server onder verschillende configuraties. Elke machine is ingericht volgens de tweede generatie (v2) D Series-machines met Premium Storage-schijven. In de sectie Algemeen gebruik vindt u gedetailleerde informatie over elke VM-grootte.

Type virtuele machine Processor Geheugen Azure VM-grootte
Active Directory-domein controller 2 kernen 7 GB Standard_DS2_v2
SQL Server Database Engine en Analysis Services 16 kernen 56 GB Standard_DS5_v2
Rapportserverdatabase 16 kernen 56 GB Standard_DS5_v2

1.2 Configuratie van virtuele machine van Power BI Report Server

Er zijn verschillende configuraties van processor en geheugen gebruikt voor de virtuele machine die als host fungeert voor Power BI Report Server. In tegenstelling tot de andere VM's is deze machine ingericht volgens de D-serie machines van de derde generatie (v3) met Premium Storage-schijven. Gedetailleerde informatie over deze VM-grootte vindt u in de sectie Algemeen gebruik

Virtuele machine Processor Geheugen Azure VM-grootte
Power BI Report Server (klein) 8 kernen 32 GB Standard_D8S_v3
Power BI Report Server (groot) 16 kernen 64 GB vStandard_D16S_v3

2 Voer het hulpprogramma LoadTest uit

Als u het hulpprogramma Reporting Services LoadTest wilt uitvoeren voor uw of een Microsoft Azure-implementatie van Power BI Report Server, volgt u deze stappen.

  1. Kloon het LoadTest-project van Reporting Services vanuit GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. In de projectmap vindt u een oplossingsbestand met de naam RSLoadTests.sln. Open dit bestand in Visual Studio 2015 of hoger.
  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. Als u deze wilt uitvoeren voor uw eigen implementatie, gaat u naar stap 5.
  4. Volg de instructies voor https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure het maken van een Power BI Report Server-omgeving in Azure.
  5. Zodra u klaar bent met het implementeren van de omgeving, volgt u de instructies die worden vermeld https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution om de tests uit te voeren.

Meer vragen? Vraag het Power BI-community