Veiledning for kapasitetsplanlegging for rapportserver for Power BI

Rapportserver for Power BI er en selvbetjent BI- og virksomhetsløsning for rapportering som kunder kan distribuere lokalt, bak brannmuren. Den kombinerer den interaktive rapportkapasiteten til Power BI Desktop med en lokal serverplattform for SQL Server Reporting Services. Budsjettering og lisenser for maskinvareinfrastruktur og programvare som kreves for å skalere til brukerbasen for en virksomhet, kan være en utfordring med stor og voksende bruk av analyse og rapportering i virksomheter. Dette dokumentet gir veiledning om kapasitetsplanlegging for rapportserver for Power BI ved å dele resultatene av mange belastningstester av forskjellige arbeidsmengder mot en rapportserver. Mens organisasjoners rapporter, utspørringer og bruksmønstre varierer mye, vil resultatene som vises i dette dokumentet, sammen med de faktiske testene som brukes og en detaljert beskrivelse av hvordan de ble utført, fungere som et referansepunkt for alle som er i en tidlig planleggingsprosess for distribusjon av rapportserver for Power BI.

Kortfattet sammendrag

Vi har utført to forskjellige typer arbeidsbelastninger mot Rapportserver for Power BI. Hver arbeidsbelastning består av gjengivelse av forskjellige typer rapporter samt utførelser av ulike nettportaloperasjoner.

  • I arbeidsbelastningen for «Power BI-rapport stor» var den vanligste operasjonen (det vil si den operasjonen som utføres 60 % av tiden) gjengivelse av BI-rapporter.
  • I arbeidsbelastningen for «Paginert rapport stor» var den vanligste utførte operasjonen gjengivelse av paginerte rapporter.

Tabellen nedenfor beskriver maksimalt antall brukere rapportserveren for Power BI kan håndtere, med minst 99 % pålitelighet. Den forutsetter fireservertopologi av rapportserveren for Power BI, og forventer at ikke mer enn 5 % av brukerne får tilgang til en rapportserver av gangen.

Arbeidsmengde 8 kjerner/32 GB RAM 16 kjerner/ 64 GB RAM
Tung Power BI-rapport (>60%) 1000 brukere 3000 brukere
Tung paginert (RDL) rapport (>60 %) 2000 brukere 3200 brukere

I hver runde var den mest overveldede ressursen CPU. På grunn av dette, vil det å øke antallet kjerner til rapportserveren for Power BI gi en høyere økning i påliteligheten til systemet enn det å øke mengden minne eller plass på harddisken.

Metodologi for test

Testtopologien som ble brukt, var basert på Microsoft Azure Virtual Machines i stedet for leverandørspesifikk fysisk maskinvare. Alle maskiner er driftet i områder i USA. Dette gjenspeiler den generelle trenden for virtualisering av maskinvare, både lokalt og i den offentlige skyen.

Topologi for Rapportserver for Power BI

Rapportserveren for Power BI-distribusjon består av følgende virtuelle maskiner:

  • Active Directory-domenekontroller: Dette var nødvendig ved SQL Server-databasemotoren, SQL Server Analysis Services og rapportserveren for Power BI for å godkjenne alle forespørslene på en sikker måte.
  • SQL Server-databasemotoren og SQL Server Analysis Services: her lagret vi alle databaser for rapporter som vi skal bruke når vi presenterer dem.
  • Rapportserver for Power BI
  • Database for Rapportserver for Power BI. Rapportserverdatabasen ligger på en annen maskin enn rapportserveren for Power BI, slik at den ikke trenger å konkurrere med SQL Server-databasemotoren for minne, CPU, nettverk og diskressurser.

Diagram som viser relasjoner mellom rapportserver i Power BI, Active Directory og tilknyttede databaser.

Se tillegg 1.1 Topologi for Rapportserver for Power BI og tillegg 1.2 Konfigurasjon av virtuell maskin for rapportserver for Power BI for en grundig konfigurasjon av hver virtuelle maskin som brukes i topologien.

Tester

Testene som brukes i belastningstester, er tilgjengelige offentlig i et GitHub-prosjekt kalt Reporting Services LoadTest. Med dette verktøyet kan brukerne studere ytelse, pålitelighet, skalerbarhet og gjenopprettingsmuligheter i rapporteringstjenestene for SQL Server og Rapportserver for Power BI. Dette prosjektet består av fire grupper testtilfeller:

  • Tester som simulerer gjengivelse av Power BI-rapporter,
  • Tester som simulerer gjengivelse av mobilrapporter,
  • Tester som simulerer små og store paginerte rapporter, og
  • Tester som simulerer utførelsen av ulike typer nettportaloperasjoner.

Alle testene ble utarbeidet for å utføre en ende-til-ende-operasjon (for eksempel gjengivelse av en rapport, opprettelse av en ny datakilde osv.). De kan gjøre dette ved å foreta en eller flere nettforespørsler til rapportserveren (via API-er). I den virkelige verden kan en bruker måtte utføre noen mellomliggende operasjoner for å fullføre en av disse ende-til-ende-operasjonene. For å for eksempel gjengi en rapport må en bruker gå til nettportalen, navigere til mappen der rapporten er, og deretter klikke på rapporten for å gjengi den. Selv om testene som ikke utfører alle operasjonene som trengs for å utføre en ende-til-ende-oppgave, vil de ta det meste av belastningen som Power BI-rapportserveren ville være under. Du kan lære mer om de forskjellige typene rapporter som brukes i tillegg til en rekke operasjoner som utføres ved å utforske GitHub-prosjektet.

Obs!

Verktøyet støttes ikke offisielt av Microsoft, men produktteamet bidrar til prosjektet og svarer på spørsmål fra andre bidragsytere.

Arbeidsbelastninger

Det er to arbeidsbelastningsprofiler som brukes til tester: Tung Power BI-rapport og tung paginert rapport. Tabellen nedenfor beskriver distribusjonen av forespørsler som utføres mot rapportserveren.

Aktivitet Tung Power BI-rapport, hyppighetsfrekvens Tung paginert rapport, hyppighetsfrekvens
Gjengivelse av Power BI-rapporter 60 % 10 %
Gjengivelse av paginerte rapporter (RDL) 30 % 60 %
Gjengivelse av mobilrapporter 5 % 20 %
Nettportaloperasjoner 5 % 10 %

Brukermengde

For hver testrunde ble testene utført basert på hyppigheten som ble angitt i en av to arbeidsbelastninger. Testene ble satt i gang med 20 samtidige brukerforespørsler til rapportserveren. Brukeren ble deretter gradvis økt til pålitelighet falt til under målet på 99 %.

Resultater

sammenfallende brukerkapasitet

Som nevnt tidligere ble testene satt i gang ved at 20 brukere sendte forespørsler til rapportserveren samtidig. Antall samtidige brukere ble deretter gradvis økt til 1 % av alle forespørslene sluttet å fungere. Resultatene i tabellen nedenfor forteller oss hvor mange samtidige brukerforespørsler som serveren vil kunne håndtere på sitt mest belastede nivå, med en feilfrekvens på mindre enn 1 %.

Arbeidsmengde 8 kjerner/32 GB RAM 16 kjerner / 64 GB
Tung Power BI-rapport 50 samtidige brukere 150 samtidige brukere
Tung Paginert rapport 100 samtidige brukere 160 samtidige brukere

Total brukerkapasitet

Hos Microsoft har vi en produksjonsdistribusjon av Power BI-rapportserveren som brukes av flere grupper. Når vi analyserer faktisk bruk av dette miljøet, ser vi at antallet samtidige brukere på et gitt tidspunkt (selv under daglig Toppbelastning) ikke pleier å overskride 5 % av den totale brukerbasen. Ved å bruke denne sammenfallingsraten på 5 % som et utgangspunkt for sammenligning, fant vi den totale brukerbasen Rapportserver for Power BI kan håndtere med 99 % pålitelighet.

Arbeidsmengde 8 kjerner/32 GB RAM 16 kjerner / 64 GB
Tung Power BI-rapport 1000 brukere 3000 brukere
Tung Paginert rapport 2000 brukere 3200 brukere

Sammendrag

I hver belastningstest var CPU den mest overveldede ressursen på det høyeste punktet i rapportserveren for Power BI-maskinen. På grunn av dette, er antall kjerner den første ressursen som skal økes. Du kan alternativt vurdere å skalere ut ved å legge til flere servere som verter for rapportserveren for Power BI i topologien.

Resultatene som vises i denne rapporten, ble samlet ved å sende ut et bestemt sett med rapporter som bruker et bestemt sett med data, gjentatt på en bestemt måte. Det er et nyttig referansepunkt, men husk at bruken din avhenger av rapporter, utspørringer, bruksmønstre og distribusjon av rapportserveren til Power BI.

Tillegg

1 Topologi

1.1 Topologi for Rapportserver for Power BI

Konfigurasjon for den virtuelle maskinen for hver type maskin (bortsett fra maskinen som er vert for Power BI-rapportserver), er fastsatt for å fokusere utelukkende på virkemåten for rapportserveren for Power BI under ulike konfigurasjoner. Hver maskin ble klargjort på samme måte som tredjegenerasjonsmaskinene for (v2) D-serien med Premium Storage-disker. Du finner detaljert informasjon om hver virtuelle maskin under inndelingen Generell bruk.

Virtuell maskintype Prosessor Minne Azure VM-størrelse
Active Directory-domenekontroller 2 kjerner 7 GB Standard_DS2_v2
SQL Server-databasemotor og Analysis Services 16 kjerner 56 GB Standard_DS5_v2
Database for rapportserver 16 kjerner 56 GB Standard_DS5_v2

1.2 Virtuell maskinkonfigurasjon av Rapportserver for Power BI

Ulike konfigurasjoner av prosessor og minne ble brukt for den virtuelle maskinen som er vert for rapportserveren for Power BI. I motsetning til de andre virtuelle maskinene, ble denne maskinen klargjort i henhold til tredjegenerasjonsmaskinene for (v3) D-serien med Premium Storage-disker. Du finner detaljert informasjon om størrelsen på denne VM under inndelingen Generell bruk

Virtuell maskin Prosessor Minne Azure VM-størrelse
Rapportserver for Power BI (liten) 8 kjerner 32 GB Standard_D8S_v3
Rapportserver for Power BI (stor) 16 kjerner 64 GB vStandard_D16S_v3

2 Kjør LoadTest-verktøyet

Hvis du ønsker å kjøre verktøyet for lastetest av Rapporteringstjenester mot din egen eller en Microsoft Azure-distribusjon av Power BI-rapportserver, følger du denne fremgangsmåten.

  1. Klon prosjektet Reporting Services LoadTest fra GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest) ).
  2. I prosjektkatalogen finner du en løsningsfil kalt RSLoadTests.sln. Åpne denne filen i Visual Studio 2015 eller senere utgaver.
  3. Avgjør om du vil kjøre dette verktøyet mot distribusjonen av Power BI-rapportserveren eller mot en distribusjon av Power BI-rapportserver i Microsoft Azure. Hvis du har tenkt å kjøre den mot din egen distribusjon, går du til trinn 5.
  4. Følg instruksjonene på https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure for å opprette et miljø for rapportserver for Power BI i Azure.
  5. Når du er ferdig med å distribuere miljøet, følger du instruksjonene på https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution for å kjøre testene.

Har du flere spørsmål? Prøv å spørre Power BI-fellesskapet