Del via


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.

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

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.

  1. Klon Reporting Services LoadTest-projektet fra GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. I projektmappen finder du en løsningsfil med navnet RSLoadTests.sln. Åbn denne fil i Visual Studio 2015 eller nyere.
  3. 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.
  4. 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.
  5. 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