Vejledning til kapacitetsplanlægning for Power BI-rapportserver
Power BI-rapportserver er en selvbetjent BI- og virksomhedsrapporteringsløsning, som kunderne kan udrulle i deres lokale miljø bag deres firewall. Den kombinerer den interaktive rapportfunktion i Power BI Desktop med serverplatformen i det lokale miljø i SQL Server Reporting Services. Med stor og voksende brug af analyser og rapportering i virksomheder kan det være en udfordring at budgettere den hardwareinfrastruktur og de softwarelicenser, der kræves for at skalere til en virksomheds brugerbase. Dette dokument har til formål at give vejledning i kapacitetsplanlægning for Power BI-rapportserver ved at dele resultater af mange udførelser af belastningstest af forskellige arbejdsbelastninger på en rapportserver. Selvom organisationers rapporter, forespørgsler og forbrugsmønstre varierer meget, fungerer de resultater, der præsenteres i dette dokument, sammen med de anvendte faktiske test og en detaljeret beskrivelse af, hvordan de blev udført, som et referencepunkt for alle i den tidlige planlægningsproces for udrulning af Power BI-rapportserver.
Overordnet resume
Vi udførte to forskellige typer arbejdsbelastninger i forhold til Power BI-rapportserver. Hver arbejdsbelastning bestod i at gengive forskellige typer rapporter samt udføre forskellige webportalhandlinger.
- I arbejdsbelastningen "Tung power BI-rapport" var den hyppigst udførte handling (dvs. handlingen udførte 60 % af tiden) gengivelse af Power BI-rapporter.
- I arbejdsbelastningen "Tung sideinddelt rapport" var den hyppigst udførte handling gengivelse af sideinddelte rapporter.
I følgende tabel beskrives det maksimale antal brugere, Power BI-rapportserver kan håndtere med mindst 99 % pålidelighed, under en topologi på fire servere med Power BI-rapportserver og en forventning om, at ikke mere end 5 % af brugerne vil få adgang til en rapportserver på én gang.
Arbejdsbelastning | 8 kerne/32 GB RAM | 16 kerner/64 GB RAM |
---|---|---|
Tung Power BI-rapport (>60 %) | 1.000 brugere | 3.000 brugere |
Sideinddelt rapport (RDL) tung (>60 %) | 2.000 brugere | 3.200 brugere |
I hver kørsel var den mest overvældede ressource CPU. På grund af dette ville en forøgelse af antallet af kerner til Power BI-rapportserver give en højere gevinst i systemets pålidelighed end at øge mængden af hukommelse eller plads på harddisken.
Testmetode
Den anvendte testtopologi var baseret på Microsoft Azure Virtual Machines i stedet for leverandørspecifik fysisk hardware. Alle computere blev hostet i amerikanske områder. Dette afspejler den generelle tendens i hardwarevirtualisering både i det lokale miljø og i det offentlige cloudmiljø.
Power BI-rapportserver topologi
Udrulningen af Power BI-rapportserver bestod af følgende virtuelle maskiner:
- Active Directory-domænecontroller: Dette var nødvendigt af SQL Server-databaseprogrammet, SQL Server Analysis Services og Power BI-rapportserver til sikker godkendelse af alle anmodninger.
- SQL Server Database Engine og SQL Server Analysis Services: Det var her, vi gemte alle de databaser, som rapporterne skulle forbruge, da vi gengivne dem.
- Power BI-rapportserver
- Power BI-rapportserver database. Rapportserverdatabasen hostes på en anden computer end Power BI-rapportserver, så den ikke behøver at konkurrere med SQL Server-databaseprogrammet om hukommelse, CPU, netværk og diskressourcer.
Se Tillæg 1.1 Power BI-rapportserver Topologi og Tillæg 1.2 Power BI-rapportserver Konfiguration af virtual machine for at få en grundig konfiguration af hver enkelt virtuel maskine, der bruges i topologien.
Tests
De test, der bruges i belastningstestkørslerne, er offentligt tilgængelige i et GitHub-projekt kaldet Reporting Services LoadTest. Dette værktøj giver brugerne mulighed for at undersøge egenskaberne for ydeevne, pålidelighed, skalerbarhed og gendannelse for SQL Server Reporting Services og Power BI-rapportserver. Dette projekt består af fire grupper af testcases:
- Test, der simulerer gengivelse af Power BI-rapporter,
- Test, der simulerer gengivelse af mobilrapporter,
- Test, der simulerer gengivelse af små og store sideinddelte rapporter, og
- Test, der simulerer udførelse af forskellige typer webportalhandlinger.
Alle test blev skrevet for at udføre en handling fra ende til anden (f.eks. gengivelse af en rapport, oprettelse af en ny datakilde osv.). Det gør de ved at foretage en eller flere webanmodninger til rapportserveren (via API'er). I den virkelige verden skal en bruger muligvis udføre et par mellemliggende handlinger for at fuldføre en af disse komplette handlinger. Hvis en rapport f.eks. skal gengives, skal en bruger gå til webportalen, navigere til den mappe, hvor rapporten er, og derefter klikke på rapporten for at gengive den. Selvom testene ikke udfører alle de handlinger, der er nødvendige for at udføre en afslutningsopgave, pålægger de stadig det meste af den belastning, som Power BI-rapportserver ville opleve. Du kan få mere at vide om de forskellige typer rapporter, der bruges, samt de mange forskellige handlinger, der udføres, ved at udforske GitHub-projektet.
Bemærk
Værktøjet understøttes ikke officielt af Microsoft, men produktteamet bidrager til projektet og besvarer problemer, der opstår af andre bidragydere.
Arbejdsbelastninger
Der bruges to arbejdsbelastningsprofiler til test: Tung power BI-rapport og tung sideinddelt rapport. I nedenstående tabel beskrives distributionen af anmodninger, der udføres mod rapportserveren.
Aktivitet | Tung Power BI-rapport, forekomsthyppighed | Tung sideinddelt rapport, hyppigheden af forekomst |
---|---|---|
Gengivelse af Power BI-rapporter | 60 % | 10 % |
Gengivelse af sideinddelte rapporter (RDL) | 30 % | 60 % |
Gengivelse af mobilrapporter | %5 | 20 % |
Webportalhandlinger | 5 % | 10 % |
Brugerindlæsning
For hver testkørsel blev test udført på baggrund af den hyppighed, der er angivet i en af de to arbejdsbelastninger. Testene startede med 20 samtidige brugeranmodninger til rapportserveren. Brugerbelastningen blev derefter gradvist forøget, indtil pålideligheden faldt til under målet på 99 %.
Resultater
Samtidig brugerkapacitet
Som tidligere nævnt startede testene med 20 samtidige brugere, der foretager anmodninger til rapportserveren. Antallet af samtidige brugere blev derefter gradvist forøget, indtil 1 % af alle anmodninger mislykkedes. Resultaterne i følgende tabel fortæller os antallet af samtidige brugeranmodninger, som serveren ville kunne håndtere under spidsbelastning med en fejlrate på mindre end 1 %.
Arbejdsbelastning | 8 kerner/32 GB | 16 kerner/64 GB |
---|---|---|
Tung Power BI-rapport | 50 samtidige brugere | 150 samtidige brugere |
Tung sideinddelt rapport | 100 samtidige brugere | 160 samtidige brugere |
Samlet brugerkapacitet
Hos Microsoft har vi en produktionsudrulning af Power BI-rapportserver, som flere teams brugte. Når vi analyserer den faktiske brug af dette miljø, kan vi se, at antallet af samtidige brugere på et givent tidspunkt (selv under daglig spidsbelastning) ikke har en tendens til at overstige 5 % af den samlede brugerbase. Ved hjælp af dette samtidighedsforhold på 5 % som benchmark ekstrapolerede vi det samlede brugergrundlag, Power BI-rapportserver kunne håndtere med pålidelighed på 99 %.
Arbejdsbelastning | 8 kerner/32 GB | 16 kerner/64 GB |
---|---|---|
Tung Power BI-rapport | 1.000 brugere | 3.000 brugere |
Tung sideinddelt rapport | 2.000 brugere | 3.200 brugere |
Opsamling
For hver belastningstestkørsel var CPU'en den mest overvældede ressource ved spidsbelastning på den Power BI-rapportserver maskine. Derfor er den første ressource, der skal øges, antallet af kerner. Du kan også overveje at skalere ud ved at tilføje flere servere, der hoster Power BI-rapportserver i topologien.
De resultater, der præsenteres i dette dokument, er afledt af udførelse af et bestemt sæt rapporter, der bruger et bestemt sæt data, gentaget på en bestemt måde. Det er et nyttigt referencepunkt, men vær opmærksom på, at dit forbrug afhænger af dine rapporter, forespørgsler, forbrugsmønstre og udrulning af din Power BI-rapportserver.
Appendiks
1 Topologi
1.1 Power BI-rapportserver topologi
Hvis du udelukkende vil fokusere på Power BI-rapportserver funktionsmåde under forskellige konfigurationer, blev VM-konfigurationen for hver type computer (undtagen den computer, der hoster Power BI-rapportserver) rettet. Hver computer blev klargjort i henhold til den anden generation (v2) D Series-maskiner med Premium Storage-diske. Du kan finde detaljerede oplysninger om hver VM-størrelse i afsnittet "Generelt".
Virtuel maskinetype | Processor | Hukommelse | Azure VM-størrelse |
---|---|---|---|
Active Directory-domænecontroller | 2 kerner | 7 GB | Standard_DS2_v2 |
SQL Server Database Engine og Analysis Services | 16 kerner | 56 GB | Standard_DS5_v2 |
Rapportserverdatabase | 16 kerner | 56 GB | Standard_DS5_v2 |
1.2 Power BI-rapportserver konfiguration af virtuel maskine
Der blev brugt forskellige konfigurationer af processor og hukommelse til den virtuelle maskines vært Power BI-rapportserver. I modsætning til de andre VM'er blev denne computer klargjort i henhold til tredje generation (v3) D-seriemaskiner med Premium Storage-diske. Du kan finde detaljerede oplysninger om denne VM-størrelse i afsnittet "Generelt"
Virtual Machine | Processor | Hukommelse | Azure VM-størrelse |
---|---|---|---|
Power BI-rapportserver (lille) | 8 kerner | 32 GB | Standard_D8S_v3 |
Power BI-rapportserver (stor) | 16 kerner | 64 GB | vStandard_D16S_v3 |
2 Kør værktøjet LoadTest
Hvis du vil køre værktøjet Reporting Services LoadTest mod din eller en Microsoft Azure-udrulning af Power BI-rapportserver, skal du følge disse trin.
- Klon Reporting Services LoadTest-projektet fra GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
- I projektmappen finder du en løsningsfil med navnet RSLoadTests.sln. Åbn denne fil i Visual Studio 2015 eller nyere.
- Find ud af, om du vil køre dette værktøj mod udrulningen af Power BI-rapportserver eller mod en udrulning af Power BI-rapportserver i Microsoft Azure. Hvis du vil køre den i din egen installation, skal du gå til trin 5.
- Følg vejledningen på https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure listen for at oprette et Power BI-rapportserver miljø i Azure.
- Når du er færdig med at udrulle miljøet, skal du følge vejledningen på https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution for at køre testene.
Har du flere spørgsmål? Prøv at spørge Power BI-community'et