Pokyny k plánování kapacity Serveru sestav Power BICapacity planning guidance for Power BI Report Server

Server sestav Power BI je samoobslužné řešení business intelligence (BI) a podnikových sestav, které mohou zákazníci nasadit místně, tzn. za branou firewall.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. Řešení spojuje interaktivní funkce sestav aplikace Power BI Desktop s místní serverovou platformou SQL Server Reporting Services.It combines the interactive report capability of Power BI Desktop with the on-premises server platform of SQL Server Reporting Services. Vzhledem k rozsáhlému využití analytických nástrojů a sestav v organizaci a jeho rostoucímu trendu může být plánování hardwarové infrastruktury a softwarových licencí, které organizace potřebuje pro měnící se uživatelskou základnu, problematické.With heavy and growing usage of analytics and reporting within enterprises, budgeting the hardware infrastructure and software licenses required to scale to an enterprise user base can be a challenge. Tento dokument obsahuje pokyny k plánování kapacity Serveru sestav Power BI. Obsahuje výsledky různých zátěžových testů prováděných s různě náročnými úlohami na serveru sestav.This paper aims to offer guidance on capacity planning for Power BI Report Server by sharing results of numerous load test executions of various workloads against a report server. Sestavy, dotazy a způsoby jejich použití se mohou v různých organizacích výrazně lišit. Výsledky předkládané v tomto dokumentu, včetně skutečně použitých testů a podrobného popisu jejich provedení, mohou být pro všechny východiskem v počátečních fázích plánování nasazení Serveru sestav Power BI.While organizations' reports, queries, and usage patterns vary widely, the results presented in this paper, along with the actual tests used and a detailed description of how they were executed, serve as a reference point for anyone in the early-stage planning process of deploying Power BI Report Server.

Shrnutí pro vedoucí pracovníkyExecutive summary

Na Serveru sestav Power BI jsme spouštěli dva typy zátěžových úloh. Každá úloha spočívala ve vykreslování různých typů sestav a v provádění různých operací na webovém portálu.We executed two different types of workloads against Power BI Report Server; each workload consisted of rendering different types of reports as well as performing various web portal operations.

  • V případě úlohy „Power BI Report Heavy“ bylo nejčastěji prováděnou operací (provádění této operace zabralo 60 % času) vykreslování sestav Power BI.In "Power BI Report Heavy" workload, the most frequently executed operation (i.e. the operation executed 60% of the time) was rendering Power BI reports.
  • V případě úlohy „Paginated Report Heavy“ bylo nejčastěji prováděnou operací vykreslování stránkovaných sestav.In "Paginated Report Heavy" workload, the most frequently executed operation was rendering paginated reports.

Následující tabulka uvádí maximální počet uživatelů, které dokáže Server sestav Power BI zpracovat s 99% spolehlivostí. Uvedené počty uživatelů platí při čtyřserverové topologii Serveru sestav Power BI a za předpokladu, že k serveru sestav nebude najednou přistupovat více než 5 % uživatelů.Under a four-server topology of Power BI Report Server and the expectation that no more than 5% of users will access a report server at any one time, the following table describes the maximum number of users Power BI Report Server can handle with at least 99% reliability.

ÚlohaWorkload 8 jader / 32 GB RAM8 Core/32 GB RAM 16 jader / 64 GB RAM16 Core/64 GB RAM
Power BI Report Heavy (> 60 %)Power BI Report Heavy (>60%) 1 000 uživatelů1,000 users 3 000 uživatelů3,000 users
Paginated (RDL) Report Heavy (> 60 %)Paginated (RDL) Report Heavy (>60%) 2 000 uživatelů2,000 users 3 200 uživatelů3,200 users

Při každém spuštění byl nejvíce přetížen procesor.In each run, the most overwhelmed resource was CPU. Znamená to, že větší spolehlivost systému nezajistí větší paměť ani více místa na pevném disku, ale více jader Serveru sestav Power BI.Due to this, increasing the number of cores to Power BI Report Server would yield a higher gain in the reliability of the system than increasing the amount of memory or hard-disk space.

Metodologie testuTest methodology

Testovací topologie nebyla založena na fyzickém hardwaru od určitého dodavatele, ale na virtuálních počítačích Microsoft Azure.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Všechny počítače byly hostovány na území USA.All machines were hosted in US regions. To odpovídá obecnému trendu virtualizace hardwaru na místě a ve veřejném cloudu.This reflects the general trend of hardware virtualization both on-premises and in the public cloud.

Topologie Serveru sestav Power BIPower BI Report Server topology

Nasazený Server sestav Power BI se skládal z následujících virtuálních počítačů:The Power BI Report Server deployment consisted of the following virtual machines:

  • Řadič domény služby Active Directory: Potřebuje ho databázový modul SQL Serveru, služba SQL Server Analysis Services a Server sestav Power BI k bezpečnému ověřování všech požadavků.Active Directory Domain Controller: this was needed by SQL Server Database Engine, SQL Server Analysis Services, and Power BI Report Server to securely authenticate all requests.
  • Databázový modul SQL Serveru a služba SQL Server Analysis Services: Sem jsme uložili všechny databáze používané k vykreslování sestav.SQL Server Database Engine and SQL Server Analysis Services: this was where we stored all the databases for the reports to consume when we rendered them.
  • Server sestav Power BIPower BI Report Server
  • Databáze Serveru sestav Power BI:Power BI Report Server Database. Databáze serveru sestav je hostovaná na jiném počítači než Server sestav Power BI, aby nemusela soutěžit s databázovým modulem SQL Serveru o paměť, procesor, síťové ani diskové prostředky.The report server database is hosted on a different machine than Power BI Report Server so that it does not need to compete with SQL Server Database Engine for memory, CPU, network, and disk resources.

Diagram znázorňující vztahy mezi serverem sestav Power BI, službou Active Directory a přidruženými databázemi

Podrobné informace o konfiguraci každého virtuálního počítače použitého v topologii najdete v příloze 1.1 – Topologie Serveru sestav Power BI a v příloze 1.2 – Konfigurace virtuálních počítačů Serveru sestav Power BI.See Appendix 1.1 Power BI Report Server Topology and Appendix 1.2 Power BI Report Server Virtual Machine Configuration for a thorough configuration of each virtual machine used in the topology.

TestyTests

Použité zátěžové testy jsou veřejně dostupné v projektu GitHubu s názvem Reporting Services LoadTest.The tests used in the load test runs are publicly available in a GitHub project called Reporting Services LoadTest. V tomto nástroji mohou uživatelé studovat vlastnosti výkonu, spolehlivosti, škálovatelnosti a obnovitelnosti služeb SQL Server Reporting Services a Serveru sestav Power BI.This tool allows users to study the performance, reliability, scalability and recoverability characteristics of SQL Server Reporting Services and Power BI Report Server. Projekt se skládá ze čtyř skupin testovacích případů:This project consists of four groups of test cases:

  • Testy, které simulují vykreslování sestav Power BI.Tests simulating rendering Power BI reports,
  • Testy, které simulují vykreslování mobilních sestav.Tests simulating rendering mobile reports,
  • Testy, které simulují vykreslování malých i velkých stránkovaných sestav.Tests simulating rendering small and large paginated reports, and
  • Testy, které simulují provádění různých typů operací na webovém portálu.Tests simulating performing various types of web portal operations.

Všechny testy byly napsány k provádění koncových operací (jako je vykreslování sestav, vytváření nových zdrojů dat atd.).All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Provádějí se prostřednictvím jednoho nebo několika webových požadavků adresovaných serveru sestav (prostřednictvím rozhraní API).They accomplish this by making one or more web requests to the report server (via APIs). Ve skutečnosti by uživatel k dokončení těchto koncových operací musel provést několik dílčích operací.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Pokud uživatel chce například vykreslit sestavu, potřebuje přejít na webový portál, potom musí přejít ke složce se sestavou a kliknutím ji vykreslit.For example, to render a report a user will need to go to the web portal, navigate to the folder where the report is, then click the report to render it. Testy sice neprovádějí všechny operace nutné k provedení koncové úlohy, ale přesto simulují většinu zatížení, kterému je Server sestav Power BI vystavený.While tests don't perform all the operations needed to accomplish an end-to-end task, they still impose most of the load that Power BI Report Server would experience. K dispozici jsou i další informace o různých typech používaných sestav a také o různých operacích prováděných při zkoumání projektu GitHubu.You can learn more about the different types of reports used as well as the variety of operations performed by exploring the GitHub project.

Poznámka

Microsoft tento nástroj oficiálně nepodporuje, ale produktový tým k projektu přispívá a řeší problémy, na které upozorňují jiní přispěvatelé.The tool isn't officially supported by Microsoft, but the product team does contribute to the project and answer issues that are raised by other contributors.

Sady funkcíWorkloads

Při testování se používají dva profily úloh: Power BI Report Heavy a Paginated Report Heavy.There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. V následující tabulce je vysvětlené rozdělení požadavků prováděných na serveru sestav.The table below describes the distribution of requests executed against the Report Server.

AktivitaActivity Power BI Report Heavy, frekvence opakováníPower BI Report Heavy, Frequency of occurrence Paginated Report Heavy, frekvence opakováníPaginated Report Heavy, Frequency of occurrence
Vykreslování sestav Power BIRendering Power BI reports 60 %60% 10 %10%
Vykreslování stránkovaných sestav (RDL)Rendering paginated (RDL) reports 30 %30% 60 %60%
Vykreslování mobilních sestavRendering mobile reports 5 %5% 20 %20%
Operace webového portáluWeb portal operations 5 %5% 10 %10%

Zatížení uživateliUser load

Při každém spuštění byly testy prováděny s frekvencí uvedenou u jedné ze dvou úloh.For each test run, tests were executed based on the frequency specified in one of the two workloads. Testy začínaly na 20 současných požadavcích uživatelů na server sestav.Tests started with 20 concurrent user requests to the report server. Zatížení uživateli se postupně zvětšovalo, dokud spolehlivost neklesla pod 99 %.The user load was then gradually increased until reliability dropped below the 99% target.

VýsledkyResults

Kapacita souběžných uživatelůConcurrent user capacity

Jak jsme si řekli, testy začínaly na 20 současných uživatelích směřujících své požadavky na server sestav.As stated earlier, tests started with 20 concurrent users making requests to the report server. Počet současných uživatelů se postupně zvyšoval, až bylo 1 % všech požadavků neúspěšných.The number of concurrent users was then gradually increased until 1% of all requests were failing. Z výsledků v následující tabulce zjistíme počet současných požadavků uživatelů, které dokázal server při maximálním zatížení vyřídit s nižší mírou selhání než 1 %.The results in the following table tell us the number of concurrent user requests that the server would be able to handle under peak load with a failure rate of less than 1%.

ÚlohaWorkload 8 jader / 32 GB RAM8 Core/32 GB 16 jader / 64 GB RAM16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 50 současných uživatelů50 concurrent users 150 současných uživatelů150 concurrent users
Paginated Report HeavyPaginated Report Heavy 100 současných uživatelů100 concurrent users 160 současných uživatelů160 concurrent users

Celková kapacita uživatelůTotal user capacity

V Microsoftu je v ostrém provozu nasazený Server sestav Power BI, který používá několik týmů.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. Při analýze skutečného využití tohoto prostředí jsme zjistili, že počet současných uživatelů v jakémkoli okamžiku (a to i v denní špičce) nepřekročí 5 % celkové uživatelské základy.When we analyze actual usage of this environment, we observe that the number of concurrent users at any given time (even during daily peak load) doesn't tend to exceed 5% of the total user base. Počet současných uživatelů odpovídající pěti procentům jsme použili jako měřítko k extrapolaci celkové uživatelské základny, kterou Server sestav Power BI dokáže zpracovat s 99% spolehlivostí.Using this 5% concurrency ratio as a benchmark, we extrapolated the total user base Power BI Report Server could handle with 99% reliability.

ÚlohaWorkload 8 jader / 32 GB RAM8 Core/32 GB 16 jader / 64 GB RAM16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 1 000 uživatelů1,000 users 3 000 uživatelů3,000 users
Paginated Report HeavyPaginated Report Heavy 2 000 uživatelů2,000 users 3 200 uživatelů3,200 users

ShrnutíSummary

Při každém spuštění zátěžového testu byl v okamžiku maximálního zatížení počítače se Serverem sestav Power BI nejpřetíženější procesor.For each load test run, CPU was the most overwhelmed resource at the point of peak load on the Power BI Report Server machine. Proto by se ze všeho nejdříve měl zvýšit počet jader.Due to this, the first resource that should be increased is the number of cores. Škálování také můžete zvýšit tím, že do topologie přidáte další servery, které hostují Server sestav Power BI.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

Výsledky tohoto dokumentu vycházejí ze spuštění speciální sady sestav, které určitým opakovaným způsobem využívají zvláštní sadu dat.The results presented in this paper were derived from executing a specific set of reports consuming a specific set of data, repeated in a specific way. Dokument slouží jako užitečné východisko, ale mějte na paměti, že vaše využití závisí na vašich sestavách, dotazech, způsobu použití a nasazení Serveru sestav Power BI.It's a useful reference point, but keep in mind that your usage will depend on your reports, queries, usage patterns and deployment of your Power BI Report Server.

PřílohyAppendix

1 Topologie1 Topology

1.1 Topologie Serveru sestav Power BI1.1 Power BI Report Server Topology

Chtěli jsme se zaměřit výhradně na chování různých konfigurací Serveru sestav Power BI, a proto jsme u každého typu počítače použili tutéž konfiguraci virtuálního počítače (s výjimkou počítače hostujícího Server sestav Power BI).To focus solely on Power BI Report Server behavior under different configurations, the VM configuration for each type of machine (except for the machine hosting Power BI Report Server) was fixed. Každý zřízený počítač vychází z druhé generace (verze 2) počítačů řady D s disky Premium Storage.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. Podrobné informace o velikosti jednotlivých virtuálních počítačů najdete v části „Pro obecné účely“.You can find detailed information about each VM size under the "General Purpose" section.

Typ virtuálního počítačeVirtual Machine Type ProcesorProcessor PaměťMemory Velikost virtuálního počítače AzureAzure VM Size
Řadič domény služby Active DirectoryActive Directory Domain Controller 2 jádra2 Cores 7 GB7 GB Standard_DS2_v2Standard_DS2_v2
Modul databáze SQL Serveru a služba Analysis ServicesSQL Server Database Engine and Analysis Services 16 jader16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2
Databáze serveru sestavReport Server Database 16 jader16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Konfigurace virtuálního počítače se Serverem sestav Power BI1.2 Power BI Report Server Virtual Machine Configuration

U virtuálního počítače hostujícího Server sestav Power BI byly použity různé konfigurace procesoru a paměti.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. Na rozdíl od ostatních virtuálních počítačů byl tento počítač zřízen podle třetí generace (verze 3) počítačů řady D s disky Premium Storage.Unlike the other VMs, this machine was provisioned according to the third-generation (v3) D Series Machines with Premium Storage Disks. Podrobné informace o velikosti tohoto virtuálního počítače najdete v části „Pro obecné účely“.You can find detailed information about this VM size under the "General Purpose" section

Virtuální počítačVirtual Machine ProcesorProcessor PaměťMemory Velikost virtuálního počítače AzureAzure VM Size
Server sestav Power BI (malý)Power BI Report Server (Small) 8 jader8 Cores 32 GB32 GB Standard_D8S_v3Standard_D8S_v3
Server sestav Power BI (velký)Power BI Report Server (Large) 16 jader16 Cores 64 GB64 GB vStandard_D16S_v3vStandard_D16S_v3

2 Spuštění nástroje LoadTest2 Run the LoadTest tool

Ke spuštění nástroje Reporting Services LoadTest na vašem Serveru sestav Power BI nebo na serveru sestav nasazeném v Microsoft Azure použijte tento postup.If you'd like to run the Reporting Services LoadTest tool against your or a Microsoft Azure deployment of Power BI Report Server, follow these steps.

  1. Naklonujte projekt Reporting Services LoadTest z GitHubu (https://github.com/Microsoft/Reporting-Services-LoadTest).Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. V adresáři projektu najdete soubor s řešením pojmenovaný RSLoadTests.sln.In the project directory, you will find a solution file called RSLoadTests.sln. Tento soubor otevřete v aplikaci Visual Studio 2015 (nebo v novější verzi).Open this file in Visual Studio 2015 or later.
  3. Rozhodněte se, jestli chcete nástroj spustit na své implementaci Serveru sestav Power BI nebo na Serveru sestav Power BI nasazeném v Microsoft Azure.Determine whether you want to run this tool against your deployment of Power BI Report Server or against a deployment of Power BI Report Server in Microsoft Azure. Pokud nástroj budete spouštět na vlastní implementaci, přejděte ke Kroku 5.If you are going to run it against your own deployment, go to step 5.
  4. Podle pokynů v části https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure vytvořte v Azure prostředí Serveru sestav Power BI.Follow the instructions listed on https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure to create a Power BI Report Server environment in Azure.
  5. Jakmile toto prostředí nasadíte, podle pokynů v části https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution spusťte testy.Once you finish deploying the environment, follow the instructions listed on https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution to run the tests.

Máte další otázky?More questions? Zkuste se zeptat v komunitě Power BI.Try asking the Power BI Community