Veiledning for kapasitetsplanlegging for rapportserver for Power BI
rapportserver for Power BI er en selvbetjent BI- og virksomhetsrapporteringsløsning som kunder kan distribuere lokalt, bak brannmuren. Den kombinerer den interaktive rapportfunksjonen i Power BI Desktop med den lokale serverplattformen for SQL Server Reporting Services. Med tung og økende bruk av analyse og rapportering i virksomheter, kan budsjettering av maskinvareinfrastruktur og programvarelisenser som kreves for å skalere til en bedriftsbrukerbase være en utfordring. Denne artikkelen tar sikte på å gi veiledning om kapasitetsplanlegging for rapportserver for Power BI ved å dele resultatene av en rekke belastningstestkjøringer av ulike arbeidsbelastninger mot en rapportserver. Selv om organisasjonenes rapporter, spørringer og bruksmønstre varierer mye, fungerer resultatene som presenteres i denne artikkelen, sammen med de faktiske testene som ble brukt, og en detaljert beskrivelse av hvordan de ble utført, som et referansepunkt for alle i den tidlige planleggingsprosessen for distribusjon av rapportserver for Power BI.
Hovedsammendrag
Vi utførte to forskjellige typer arbeidsbelastninger mot rapportserver for Power BI. Hver arbeidsbelastning besto av gjengivelse av ulike typer rapporter, i tillegg til å utføre ulike nettportaloperasjoner.
- Den mest utførte operasjonen (dvs. operasjonen som ble utført 60 % av tiden) i arbeidsbelastningen For Power BI-rapporter, gjengis Power BI-rapporter.
- I arbeidsbelastningen «Tung paginert rapport» var den mest utførte operasjonen å gjengi paginerte rapporter.
Tabellen nedenfor beskriver maksimalt antall brukere rapportserver for Power BI kan håndtere med minst 99 % pålitelighet, under en topologi på fire servere av rapportserver for Power BI og forventningen om at ikke mer enn 5 % av brukerne vil få tilgang til en rapportserver.
Arbeidsbelastning | 8 Kjerne/32 GB RAM | 16 kjerner/64 GB RAM |
---|---|---|
Tung Power BI-rapport (>60 %) | 1000 brukere | 3000 brukere |
Paginert (RDL) Rapport tung (>60 %) | 2000 brukere | 3200 brukere |
I hver kjøring var den mest overveldede ressursen CPU. På grunn av dette vil det å øke antall kjerner til rapportserver for Power BI gi en høyere gevinst i systemets pålitelighet enn å øke mengden minne eller harddiskplass.
Testmetodikk
Testtopologien som ble brukt, var basert på Microsoft Azure Virtual Machines i stedet for leverandørspesifikk fysisk maskinvare. Alle maskiner ble driftet i amerikanske regioner. Dette gjenspeiler den generelle trenden med maskinvarevirtualisering både lokalt og i den offentlige skyen.
rapportserver for Power BI topologi
Distribusjonen av rapportserver for Power BI besto av følgende virtuelle maskiner:
- Active Directory Domain Controller: Dette var nødvendig av SQL Server Database Engine, SQL Server Analysis Services og rapportserver for Power BI for å godkjenne alle forespørsler på en sikker måte.
- SQL Server Database Engine og SQL Server Analysis Services: Det var her vi lagret alle databasene som rapportene kunne bruke da vi gjengitte dem.
- Power BI Report Server
- rapportserver for Power BI database. Rapportserverdatabasen driftes på en annen maskin enn rapportserver for Power BI, slik at den ikke trenger å konkurrere med SQL Server Database Engine for minne, CPU, nettverk og diskressurser.
Se Appendix 1.1 rapportserver for Power BI Topology og Appendix 1.2 rapportserver for Power BI Virtual Machine Configuration for en grundig konfigurasjon av hver virtuelle maskin som brukes i topologien.
Tester
Testene som brukes i belastningstestkjøringene, er offentlig tilgjengelige i et GitHub-prosjekt kalt Reporting Services LoadTest. Dette verktøyet gjør det mulig for brukere å studere ytelsen, påliteligheten, skalerbarheten og gjenopprettingsegenskapene til SQL Server Reporting Services og rapportserver for Power BI. Dette prosjektet består av fire grupper med testtilfeller:
- Tester som simulerer gjengivelse av Power BI-rapporter,
- Tester som simulerer gjengivelse av mobilrapporter,
- Tester som simulerer gjengivelse av små og store paginerte rapporter, og
- Tester som simulerer å utføre ulike typer nettportaloperasjoner.
Alle testene ble skrevet for å utføre en ende-til-ende-operasjon (for eksempel gjengivelse av en rapport, oppretting av en ny datakilde osv.). De utfører dette ved å sende én eller flere nettforespørsler til rapportserveren (via API-er). I den virkelige verden må kanskje en bruker utføre noen mellomliggende operasjoner for å fullføre en av disse ende-til-ende-operasjonene. Hvis du for eksempel vil gjengi en rapport som en bruker må gå til nettportalen, navigerer du til mappen der rapporten er, og deretter klikker du rapporten for å gjengi den. Selv om tester ikke utfører alle operasjonene som trengs for å utføre en ende-til-ende-oppgave, pålegger de fortsatt det meste av belastningen som rapportserver for Power BI ville oppleve. Du kan lære mer om de ulike typene rapporter som brukes, i tillegg til utvalget av operasjoner som utføres ved å utforske GitHub-prosjektet.
Notat
Verktøyet støttes ikke offisielt av Microsoft, men produktteamet bidrar til prosjektet og svarer på problemer som er reist av andre bidragsytere.
Arbeidsbelastninger
Det er to arbeidsbelastningsprofiler som brukes i testingen: Tung og paginert rapport i Power BI. Tabellen nedenfor beskriver distribusjonen av forespørsler som utføres mot rapportserveren.
Aktivitet | Tung Power BI-rapport, hyppighet av forekomst | Tung paginert rapport, hyppighet av forekomst |
---|---|---|
Gjengivelse av Power BI-rapporter | 60% | 10 % |
Gjengivelse av paginerte rapporter (RDL) | 30 % | 60% |
Gjengivelse av mobilrapporter | %5 | 20% |
Nettportaloperasjoner | 5 % | 10 % |
Brukerinnlasting
For hver testkjøring ble tester utført basert på hyppigheten som er angitt i én av de to arbeidsbelastningene. Tester startet med 20 samtidige brukerforespørsler til rapportserveren. Brukerbelastningen ble deretter gradvis økt til påliteligheten falt under målet på 99 %.
Resultater
Samtidig brukerkapasitet
Som nevnt tidligere startet tester med 20 samtidige brukere som sendte forespørsler til rapportserveren. Antall samtidige brukere ble deretter gradvis økt til 1% av alle forespørsler mislyktes. Resultatene i tabellen nedenfor forteller oss antall samtidige brukerforespørsler som serveren kan håndtere under toppbelastning med en feilfrekvens på mindre enn 1 %.
Arbeidsbelastning | 8 kjerne/32 GB | 16 Kjerne/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 rapportserver for Power BI som flere team brukte. Når vi analyserer faktisk bruk av dette miljøet, ser vi at antall samtidige brukere til enhver tid (selv under daglig toppbelastning) ikke pleier å overstige 5 % av den totale brukerbasen. Ved å bruke dette samtidighetsforholdet på 5 % som referanse, ekstrapolerte vi den totale brukerbasen rapportserver for Power BI kunne håndtere med 99 % pålitelighet.
Arbeidsbelastning | 8 kjerne/32 GB | 16 Kjerne/64 GB |
---|---|---|
Tung Power BI-rapport | 1000 brukere | 3000 brukere |
Tung paginert rapport | 2000 brukere | 3200 brukere |
Sammendrag
For hver belastningstestkjøring var CPU den mest overveldede ressursen ved toppbelastning på den rapportserver for Power BI maskinen. På grunn av dette er den første ressursen som skal økes, antall kjerner. Alternativt kan du vurdere å skalere ut ved å legge til flere servere som er vert for rapportserver for Power BI i topologien.
Resultatene som presenteres i denne artikkelen, ble avledet fra å utføre et bestemt sett med rapporter som forbruker et bestemt sett med data, gjentatt på en bestemt måte. Det er et nyttig referansepunkt, men husk at bruken avhenger av rapporter, spørringer, bruksmønstre og distribusjon av rapportserver for Power BI.
Tillegg
1 Topologi
1.1 rapportserver for Power BI Topologi
Hvis du vil fokusere utelukkende på rapportserver for Power BI virkemåte under forskjellige konfigurasjoner, ble VM-konfigurasjonen for hver maskintype (bortsett fra maskinen som er vert for rapportserver for Power BI) løst. Hver maskin ble klargjort i henhold til andre generasjons (v2) D-serie maskiner med Premium Storage Disks. Du finner detaljert informasjon om hver vm-størrelse under «Generelt formål»-delen.
Virtuell maskintype | Behandler | Minne | Azure VM-størrelse |
---|---|---|---|
Active Directory-domenekontroller | 2 kjerner | 7 GB | Standard_DS2_v2 |
SQL Server Database Engine og Analysis Services | 16 kjerner | 56 GB | Standard_DS5_v2 |
Rapportserverdatabase | 16 kjerner | 56 GB | Standard_DS5_v2 |
1.2 rapportserver for Power BI Konfigurasjon av virtuell maskin
Ulike konfigurasjoner av prosessor og minne ble brukt for virtual machine hosting rapportserver for Power BI. I motsetning til de andre VIRTUELLE-ene ble denne maskinen klargjort i henhold til tredje generasjons (v3) D-serie maskiner med Premium Storage Disks. Du finner detaljert informasjon om denne VM-størrelsen under Delen Generelt formål
Virtuell maskin | Behandler | 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 vil kjøre Reporting Services LoadTest-verktøyet mot eller en Microsoft Azure-distribusjon av rapportserver for Power BI, følger du disse trinnene.
- Klon Reporting Services LoadTest-prosjektet fra GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
- I prosjektkatalogen finner du en løsningsfil kalt RSLoadTests.sln. Åpne denne filen i Visual Studio 2015 eller nyere.
- Finn ut om du vil kjøre dette verktøyet mot distribusjonen av rapportserver for Power BI eller mot en distribusjon av rapportserver for Power BI i Microsoft Azure. Hvis du skal kjøre den mot din egen distribusjon, går du til trinn 5.
- Følg instruksjonene som er oppført for https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure å opprette et rapportserver for Power BI miljø i Azure.
- Når du er ferdig med å distribuere miljøet, følger du instruksjonene som er oppført for https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution å kjøre testene.
Har du flere spørsmål? Prøv å spørre Power BI-fellesskap