Dela via


Vägledning för kapacitetsplanering för Power BI-rapportserver

Power BI-rapportserver är en självbetjäningslösning för BI och företagsrapportering som kunder kan distribuera lokalt bakom brandväggen. Den kombinerar den interaktiva rapportfunktionen i Power BI Desktop med den lokala serverplattformen i SQL Server Reporting Services. Med tung och växande användning av analys och rapportering inom företag kan det vara en utmaning att budgetera den maskinvaruinfrastruktur och programvarulicenser som krävs för att skala till en företagsanvändarbas. Det här dokumentet syftar till att ge vägledning om kapacitetsplanering för Power BI-rapportserver genom att dela resultat av flera belastningstestkörningar av olika arbetsbelastningar mot en rapportserver. Även om organisationers rapporter, frågor och användningsmönster varierar kraftigt, fungerar resultaten som presenteras i det här dokumentet, tillsammans med de faktiska tester som används och en detaljerad beskrivning av hur de kördes, som en referenspunkt för alla i planeringsprocessen i början av planeringsprocessen för att distribuera Power BI-rapportserver.

Sammanfattning

Vi körde två olika typer av arbetsbelastningar mot Power BI-rapportserver. Varje arbetsbelastning bestod av att återge olika typer av rapporter samt utföra olika webbportalåtgärder.

  • I arbetsbelastningen "Power BI Report Heavy" återger den oftast utförda åtgärden (dvs. åtgärden som kördes 60 % av tiden) Power BI-rapporter.
  • I arbetsbelastningen "Sidnumrerad rapport tung" var den vanligaste åtgärden att återge sidnumrerade rapporter.

I en topologi med fyra servrar av Power BI-rapportserver och förväntningen att högst 5 % av användarna kommer åt en rapportserver samtidigt, beskriver följande tabell det maximala antalet användare Power BI-rapportserver kan hantera med minst 99 % tillförlitlighet.

Arbetsbelastning 8 kärnor/32 GB RAM-minne 16 Core/64 GB RAM-minne
Power BI-rapport tung (>60 %) 1 000 användare 3 000 användare
Sidnumrerad rapport (RDL) – tung (>60 %) 2 000 användare 3 200 användare

I varje körning var den mest överväldigade resursen CPU. På grund av detta skulle en ökning av antalet kärnor till Power BI-rapportserver ge en högre ökning av systemets tillförlitlighet än att öka mängden minne eller hårddiskutrymme.

Testmetod

Testtopologin som användes baserades på Microsoft Azure Virtual Machines i stället för leverantörsspecifik fysisk maskinvara. Alla datorer finns i amerikanska regioner. Detta återspeglar den allmänna trenden för maskinvaruvirtualisering både lokalt och i det offentliga molnet.

Power BI-rapportserver topologi

Distributionen Power BI-rapportserver bestod av följande virtuella datorer:

  • Active Directory-domän Controller: detta behövdes av SQL Server Database Engine, SQL Server Analysis Services och Power BI-rapportserver för att autentisera alla begäranden på ett säkert sätt.
  • SQL Server Database Engine och SQL Server Analysis Services: här lagrade vi alla databaser som rapporterna ska använda när vi renderade dem.
  • Power BI-rapportserver
  • Power BI-rapportserver Database. Rapportserverdatabasen finns på en annan dator än Power BI-rapportserver så att den inte behöver konkurrera med SQL Server Database Engine om minne, CPU, nätverk och diskresurser.

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

Se Bilaga 1.1 Power BI-rapportserver Topologi och bilaga 1.2 Power BI-rapportserver Virtual Machine Configuration för en grundlig konfiguration av varje virtuell dator som används i topologin.

Tester

Testerna som används i belastningstestkörningarna är offentligt tillgängliga i ett GitHub-projekt med namnet Reporting Services LoadTest. Med det här verktyget kan användarna studera prestanda, tillförlitlighet, skalbarhet och återställningsegenskaper för SQL Server Reporting Services och Power BI-rapportserver. Det här projektet består av fyra grupper med testfall:

  • Tester som simulerar återgivning av Power BI-rapporter,
  • Tester som simulerar återgivning av mobila rapporter,
  • Tester som simulerar återgivning av små och stora sidnumrerade rapporter och
  • Tester som simulerar utförande av olika typer av webbportalåtgärder.

Alla tester har skrivits för att utföra en åtgärd från slutpunkt till slutpunkt (till exempel att återge en rapport, skapa en ny datakälla osv.). De gör detta genom att göra en eller flera webbbegäranden till rapportservern (via API:er). I verkligheten kan en användare behöva utföra några mellanliggande åtgärder för att slutföra en av dessa åtgärder från slutpunkt till slutpunkt. Om du till exempel vill återge en rapport måste en användare gå till webbportalen, navigera till mappen där rapporten finns och sedan klicka på rapporten för att återge den. Testerna utför inte alla åtgärder som krävs för att utföra en uppgift från slutpunkt till slutpunkt, men de tillämpar fortfarande den största delen av belastningen som Power BI-rapportserver skulle uppleva. Du kan lära dig mer om de olika typerna av rapporter som används samt de olika åtgärder som utförs genom att utforska GitHub-projektet.

Kommentar

Verktyget stöds inte officiellt av Microsoft, men produktteamet bidrar till projektet och svarar på problem som andra deltagare tar upp.

Arbetsbelastningar

Det finns två arbetsbelastningsprofiler som används vid testning: Power BI Report Heavy och Paginated Report Heavy. I tabellen nedan beskrivs fördelningen av begäranden som körs mot rapportservern.

Aktivitet Power BI-rapport – tung, förekomstfrekvens Hög sidnumrerad rapport, förekomstfrekvens
Återge Power BI-rapporter 60% 10 %
Återge sidnumrerade rapporter (RDL) 30 % 60%
Återge mobila rapporter %5 20 %
Webbportalåtgärder 5 % 10 %

Användarbelastning

För varje testkörning kördes tester baserat på den frekvens som anges i en av de två arbetsbelastningarna. Testerna började med 20 samtidiga användarbegäranden till rapportservern. Användarbelastningen ökades sedan gradvis tills tillförlitligheten sjönk under målet på 99 %.

Resultat

Samtidig användarkapacitet

Som tidigare nämnts började testerna med 20 samtidiga användare som gjorde begäranden till rapportservern. Antalet samtidiga användare ökade sedan gradvis tills 1 % av alla begäranden misslyckades. Resultatet i följande tabell visar antalet samtidiga användarbegäranden som servern skulle kunna hantera under hög belastning med en felfrekvens på mindre än 1 %.

Arbetsbelastning 8 kärnor/32 GB 16 Kärnor/64 GB
Power BI-rapport tung 50 samtidiga användare 150 samtidiga användare
Sidnumrerad rapport – tung 100 samtidiga användare 160 samtidiga användare

Total användarkapacitet

På Microsoft har vi en produktionsdistribution av Power BI-rapportserver som flera team använde. När vi analyserar den faktiska användningen av den här miljön ser vi att antalet samtidiga användare vid en viss tidpunkt (även under den dagliga belastningen) inte tenderar att överstiga 5 % av den totala användarbasen. Med det här förhållandet på 5 % samtidighet som riktmärke extrapolerade vi den totala användarbasen Power BI-rapportserver skulle kunna hantera med 99 % tillförlitlighet.

Arbetsbelastning 8 kärnor/32 GB 16 Kärnor/64 GB
Power BI-rapport tung 1 000 användare 3 000 användare
Sidnumrerad rapport – tung 2 000 användare 3 200 användare

Sammanfattning

För varje belastningstestkörning var CPU den mest överbelastade resursen vid den högsta belastningen på den Power BI-rapportserver datorn. På grund av detta är den första resursen som ska ökas antalet kärnor. Alternativt kan du överväga att skala ut genom att lägga till fler servrar som är värdar för Power BI-rapportserver i topologin.

Resultaten som presenteras i det här dokumentet härleddes från att köra en specifik uppsättning rapporter som förbrukar en specifik uppsättning data, som upprepas på ett specifikt sätt. Det är en användbar referenspunkt, men tänk på att din användning beror på dina rapporter, frågor, användningsmönster och distributionen av dina Power BI-rapportserver.

Bilaga

1 Topologi

1.1 Power BI-rapportserver Topologi

För att fokusera enbart på Power BI-rapportserver beteende under olika konfigurationer har vm-konfigurationen för varje typ av dator (förutom den dator som är värd för Power BI-rapportserver) åtgärdats. Varje dator etablerades enligt andra generationens (v2) D-seriedatorer med Premium Storage-diskar. Du hittar detaljerad information om varje VM-storlek under avsnittet "Generell användning".

Typ av virtuell dator Processor Minne Storlek på virtuell Azure-dator
Active Directory-domän Controller 2 kärnor 7 GB Standard_DS2_v2
SQL Server Database Engine och Analysis Services 16 kärnor 56 GB Standard_DS5_v2
Rapportserverdatabas 16 kärnor 56 GB Standard_DS5_v2

1.2 Power BI-rapportserver Konfiguration av virtuell dator

Olika konfigurationer av processor och minne användes för den virtuella datorn som är värd för Power BI-rapportserver. Till skillnad från de andra virtuella datorerna etablerades den här datorn enligt den tredje generationens (v3) datorer i D-serien med Premium Storage-diskar. Du hittar detaljerad information om den här VM-storleken under avsnittet "Generell användning"

Virtuell dator Processor Minne Storlek på virtuell Azure-dator
Power BI-rapportserver (liten) 8 kärnor 32 GB Standard_D8S_v3
Power BI-rapportserver (stor) 16 kärnor 64 GB vStandard_D16S_v3

2 Kör LoadTest-verktyget

Om du vill köra Reporting Services LoadTest-verktyget mot din eller en Microsoft Azure-distribution av Power BI-rapportserver följer du dessa steg.

  1. Klona Projektet Reporting Services LoadTest från GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. I projektkatalogen hittar du en lösningsfil med namnet RSLoadTests.sln. Öppna den här filen i Visual Studio 2015 eller senare.
  3. Ta reda på om du vill köra det här verktyget mot distributionen av Power BI-rapportserver eller mot en distribution av Power BI-rapportserver i Microsoft Azure. Om du ska köra den mot din egen distribution går du till steg 5.
  4. Följ anvisningarna i listan https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure för att skapa en Power BI-rapportserver miljö i Azure.
  5. När du har distribuerat miljön följer du anvisningarna i listan https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution för att köra testerna.

Har du fler frågor? Prova att fråga Power BI Community