Leitfaden zur Kapazitätsplanung für Power BI-BerichtsserverCapacity planning guidance for Power BI Report Server

Power BI-Berichtsserver ist eine Lösung für Self-Service-BI und Enterprise-Berichterstellung, die Kunden lokal hinter der Firewall bereitstellen können.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. Sie kombiniert die interaktiven Berichte von Power BI Desktop mit der lokalen Serverplattform von 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. Aufgrund der starken und zunehmenden Verwendung von Analysen und Berichten in Unternehmen kann die Budgetplanung für die Hardwareinfrastruktur und die erforderlichen Softwarelizenzen für die Skalierung auf eine hohe Benutzeranzahl eine Herausforderung sein.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. Dieses Dokument bietet einen Leitfaden zur Kapazitätsplanung für Power BI-Berichtsserver anhand der Ergebnisse zahlreicher Auslastungstests mit verschiedenen Arbeitsauslastungen eines Berichtsservers.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. Die Berichte, Abfragen und Verwendungsmuster in einem Unternehmen weisen große Unterschiede auf. Jedoch lassen sich die in diesem Dokument vorgestellten Ergebnisse zusammen mit den tatsächlich verwendeten Tests und einer ausführlichen Beschreibung ihrer Ausführung immer als Orientierungshilfe bei der anfänglichen Planung der Bereitstellung von Power BI-Berichtsserver nutzen.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.

KurzfassungExecutive summary

Wir haben zwei unterschiedliche Typen von Arbeitsauslastungen von Power BI-Berichtsserver ausgeführt. Jede Arbeitsauslastung bestand aus dem Rendern unterschiedlicher Typen von Berichten sowie dem Ausführen verschiedener Webportalvorgänge.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.

  • Bei der Arbeitsauslastung „Power BI-Bericht – stark“ war der am häufigsten ausgeführte Vorgang (d. h. der Vorgang, der in 60 % der Zeit ausgeführt wurde) das Rendern von Power BI-Berichten.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.
  • Bei der Arbeitsauslastung „Paginierter Bericht – stark“ war der am häufigsten ausgeführte Vorgang das Rendern paginierter Berichte.In “Paginated Report Heavy” workload, the most frequently executed operation was rendering paginated reports.

In der folgenden Tabelle wird die maximale Anzahl von Benutzern angegeben, die Power BI-Berichtsserver mit einer Zuverlässigkeit von mindestens 99 % bewältigen kann, wenn die Topologie von Power BI-Berichtsserver vier Server umfasst und davon ausgegangen wird, dass zu keinem Zeitpunkt mehr als 5 % der Benutzer gleichzeitig auf einen Berichtsserver zugreifen.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.

ArbeitsauslastungWorkload 8 Kerne/32 GB RAM8 Core/32 GB RAM 16 Kerne/64 GB RAM16 Core/64 GB RAM
Power BI-Bericht – stark (> 60 %)Power BI Report Heavy (>60%) 1.000 Benutzer1,000 users 3.000 Benutzer3,000 users
Paginierter Bericht (RDL) – stark (> 60 %)Paginated (RDL) Report Heavy (>60%) 2.000 Benutzer2,000 users 3.200 Benutzer3,200 users

Bei jeder Ausführung war die CPU die am stärksten belastete Ressource.In each run, the most overwhelmed resource was CPU. Aus diesem Grund führt eine höhere Anzahl von Kernen für Power BI-Berichtsserver zu einer höheren Zuverlässigkeit des Systems als die Erhöhung des Arbeitsspeichers oder Festplattenspeichers.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.

TestmethodikTest methodology

Die verwendete Testtopologie basierte auf Microsoft Azure Virtual Machines statt auf anbieterspezifischer physischer Hardware.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Alle Computer wurden in Regionen in den USA gehostet.All machines were hosted in US regions. Dies entspricht der allgemeinen Tendenz, dass Hardwarevirtualisierung sowohl lokal als auch in der öffentlichen Cloud erfolgt.This reflects the general trend of hardware virtualization both on premises and in the public cloud.

Topologie von Power BI-BerichtsserverPower BI Report Server topology

Die Bereitstellung von Power BI-Berichtsserver umfasste die folgenden virtuellen Computer:The Power BI Report Server deployment consisted of the following virtual machines:

  • Active Directory-Domänencontroller: Dieser wurde vom SQL Server-Datenbankmodul, von SQL Server Analysis Services und von Power BI-Berichtsserver benötigt, um alle Anforderungen sicher zu authentifizieren.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.
  • SQL Server-Datenbankmodul und SQL Server Analysis Services: Dort wurden alle Datenbanken für die Berichte gespeichert, die beim Rendern der Berichte verwendet wurden.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.
  • Power BI-BerichtsserverPower BI Report Server
  • Power BI-Berichtsserver-Datenbank.Power BI Report Server Database. Die Berichtsserver-Datenbank wird auf einem anderen Computer als Power BI-Berichtsserver gehostet, damit es zu keinen Konflikten mit dem SQL Server-Datenbankmodul im Hinblick auf Arbeitsspeicher, CPU-, Netzwerk- und Datenträgerressourcen kommt.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.

In Anhang 1.1, „Topologie von Power BI-Berichtsserver“ und Anhang 1.2, „Konfiguration des virtuellen Power BI-Berichtsserver-Computers“ finden Sie genaue Informationen zur Konfiguration der einzelnen virtuellen Computer in der Topologie.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.

TestsTests

Die in den Auslastungstests verwendeten Tests sind in einem GitHub-Projekt mit dem Namen „Reporting Services LoadTest“ (in englischer Sprache) öffentlich verfügbar (siehe https://github.com/Microsoft/Reporting-Services-LoadTest).The tests used in the load test runs are publicly available in a GitHub project called Reporting Services LoadTest (See https://github.com/Microsoft/Reporting-Services-LoadTest). Mit diesem Tool können Benutzer die Eigenschaften von SQL Server Reporting Services und Power BI-Berichtsserver im Hinblick auf Leistung, Zuverlässigkeit, Skalierbarkeit und Wiederherstellbarkeit untersuchen.This tool allows users to study the performance, reliability, scalability and recoverability characteristics of SQL Server Reporting Services and Power BI Report Server. Dieses Projekt besteht aus vier Gruppen von Testfällen:This project consists of four groups of test cases:

  • Tests, die das Rendern von Power BI-Berichten simulieren,Tests simulating rendering Power BI reports,
  • Tests, die das Rendern von mobilen Berichten simulieren,Tests simulating rendering mobile reports,
  • Tests, die das Rendern von kleinen und großen paginierten Berichten simulieren, undTests simulating rendering small and large paginated reports, and
  • Tests, die das Ausführen verschiedener Typen von Webportalvorgängen simulieren.Tests simulating performing various types of web portal operations.

Alle Tests wurden so entworfen, dass sie einen End-to-End-Vorgang (z.B. das Rendern eines Berichts, das Erstellen einer neuen Datenquelle usw.) ausführen.All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Zu diesem Zweck führen die Tests eine oder mehrere Webanforderungen an den Berichtsserver (über APIs) aus.They accomplish this by making one or more web requests to the report server (via APIs). In der Praxis muss ein Benutzer möglicherweise einige zwischengeschaltete Vorgänge ausführen, um einen dieser End-to-End-Vorgänge abzuschließen.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Beispiel: Zum Rendern eines Berichts muss der Benutzer zum Webportal wechseln, zu dem Ordner navigieren, in dem sich der Bericht befindet, und dann auf den Bericht klicken, um ihn zu rendern.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. In den Tests werden nicht alle Vorgänge ausgeführt, die zum vollständigen Ausführen einer End-to-End-Aufgabe erforderlich sind, jedoch erzeugen sie einen Großteil der Last, die Power BI-Berichtsserver unter realen Bedingungen bewältigen muss.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 . Sie können das GitHub-Projekt erkunden, um mehr über die unterschiedlichen Typen der verwendeten Berichte und die Vielfalt der ausgeführten Vorgänge zu erfahren.You can learn more about the different types of reports used as well as the variety of operations performed by exploring the GitHub project.

ArbeitsauslastungenWorkloads

Bei beiden Tests werden zwei Arbeitsauslastungsprofile verwendet: „Power BI-Bericht – stark“ und „Paginierter Bericht – stark“.There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. In der folgenden Tabelle wird die Verteilung der für den Berichtsserver ausgeführten Anforderungen beschrieben.The table below describes the distribution of requests executed against the Report Server.

ActivityActivity Power BI-Bericht – stark, Häufigkeit des VorkommensPower BI Report Heavy, Frequency of occurrence Paginierter Bericht – stark, Häufigkeit des VorkommensPaginated Report Heavy, Frequency of occurrence
Rendern von Power BI-BerichtenRendering Power BI reports 60 %60% 10 %10%
Rendern von paginierten Berichten (RDL)Rendering paginated (RDL) reports 30 %30% 60 %60%
Rendern von mobilen BerichtenRendering mobile reports 5 %5% 20 %20%
WebportalvorgängeWeb portal operations 5 %5% 10 %10%

BenutzerlastUser load

In jedem Testlauf wurden die Tests basierend auf der in einer der beiden Arbeitsauslastungen angegebenen Häufigkeit ausgeführt.For each test run, tests were executed based on the frequency specified in one of the two workloads. Die Tests wurden mit 20 gleichzeitigen Benutzeranforderungen an den Berichtsserver gestartet.Tests started with 20 concurrent user requests to the report server. Die Benutzerlast wurde dann schrittweise erhöht, bis die Zuverlässigkeit unter den Zielwert von 99 % sank.The user load was then gradually increased until reliability dropped below the 99% target.

ErgebnisseResults

Bewältigte Anzahl gleichzeitiger BenutzerConcurrent user capacity

Wie bereits erwähnt, wurden die Tests mit 20 Benutzern, die gleichzeitig Anforderungen an den Berichtsserver senden, gestartet.As stated earlier, tests started with 20 concurrent users making requests to the report server. Die Anzahl von gleichzeitigen Benutzern wurde dann schrittweise erhöht, bis 1 % aller Anforderungen fehlschlugen.The number of concurrent users was then gradually increased until 1% of all requests were failing. Die Ergebnisse in der folgenden Tabelle geben die Anzahl gleichzeitiger Benutzeranforderungen an, die der Server unter Spitzenlast mit einer Fehlerrate von weniger als 1 % verarbeiten kann.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%.

ArbeitsauslastungWorkload 8 Kerne/32 GB8 Core/32 GB 16 Kerne/64 GB16 Core/64 GB
Power BI-Bericht – starkPower BI Report Heavy 50 gleichzeitige Benutzer50 concurrent users 150 gleichzeitige Benutzer150 concurrent users
Paginierter Bericht – starkPaginated Report Heavy 100 gleichzeitige Benutzer100 concurrent users 160 gleichzeitige Benutzer160 concurrent users

Gesamte BenutzerkapazitätTotal user capacity

Wir haben bei Microsoft eine Produktionsbereitstellung von Power BI-Berichtsserver, die von mehreren Teams verwendet wurde.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. Wenn wir die tatsächliche Nutzung dieser Umgebung analysieren, stellen wir fest, dass die Anzahl von gleichzeitigen Benutzern zu einem beliebigen Zeitpunkt (auch während der täglichen Spitzenlast) in der Regel nicht höher als 5 % der gesamten Benutzeranzahl ist.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. Mit diesem Verhältnis von 5 % gleichzeitiger Benutzer als Maßstab extrapolierten wir die gesamte Benutzeranzahl, die von Power BI-Berichtsserver mit einer Zuverlässigkeit von 99 % bewältigt werden kann.Using this 5% concurrency ratio as a benchmark, we extrapolated the total user base Power BI Report Server could handle with 99% reliability.

ArbeitsauslastungWorkload 8 Kerne/32 GB8 Core/32 GB 16 Kerne/64 GB16 Core/64 GB
Power BI-Bericht – starkPower BI Report Heavy 1.000 Benutzer1,000 users 3.000 Benutzer3,000 users
Paginierter Bericht – starkPaginated Report Heavy 2.000 Benutzer2,000 users 3.200 Benutzer3,200 users

Anzeigen der ErgebnisseView results

Wählen Sie einen Bericht aus, um die Ergebnisse des Auslastungstests anzuzeigen.Select a report to view the results of the load test.

ArbeitsauslastungWorkload 8 Kerne/32 GB8 Core/32 GB 16 Kerne/64 GB16 Core/64 GB
Power BI-Bericht – starkPower BI Report Heavy Ansicht – 8 KerneView - 8 core Ansicht – 16 KerneView - 16 core
Paginierter Bericht – starkPaginated Report Heavy Ansicht – 8 KerneView - 8 core Ansicht – 16 KerneView - 16 core

ZusammenfassungSummary

Bei jeder Ausführung der Auslastungstests war die CPU zum Zeitpunkt der Spitzenlast des Computers, auf dem Power BI-Berichtsserver ausgeführt wird, die am stärksten belastete Ressource.For each load test run, CPU was the most overwhelmed resource at the point of peak load on the Power BI Report Server machine. Deshalb sollte als Erstes die Anzahl der Kerne erhöht werden.Due to this, the first resource that should be increased is the number of cores. Alternativ dazu können Sie horizontal hochskalieren, indem Sie in der Topologie weitere Server hinzufügen, die Power BI-Berichtsserver hosten.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

Die in diesem Dokument beschriebenen Ergebnisse wurden aus dem Ausführen eines bestimmten Satzes von Berichten, die einen bestimmen Satz von Daten verwenden, abgeleitet, wobei die Ausführung auf eine bestimmte Weise wiederholt wurde.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. Dies ist eine nützliche Orientierungshilfe, beachten Sie jedoch, dass die Auslastung in Ihrer Umgebung von Ihren Berichten, Abfragen, Verwendungsmustern und der Bereitstellung von Power BI-Berichtsserver abhängt.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.

AnhangAppendix

1 Topologie1 Topology

1.1 Topologie von Power BI-Berichtsserver1.1 Power BI Report Server Topology

Um sich ausschließlich auf das Verhalten von Power BI-Berichtsserver bei unterschiedlichen Konfigurationen zu konzentrieren, war die VM-Konfiguration für jeden Typ von Computer (mit Ausnahme des Computers, auf dem der Power BI-Berichtsserver gehostet wird) die gleiche.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. Jeder Computer wurde als virtueller Computer der zweiten Generation (Dv2-Serie) mit Storage Premium-Datenträgern bereitgestellt.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. Ausführliche Informationen zu den einzelnen VM-Größen finden Sie im Abschnitt „Allgemein“ unter https://azure.microsoft.com/de-de/pricing/details/virtual-machines/windows/.You can find detailed information about each VM size under the “General Purpose” section on https://azure.microsoft.com/en-us/pricing/details/virtual-machines/windows/.

Typ des virtuellen ComputersVirtual Machine Type ProzessorProcessor ArbeitsspeicherMemory Azure VM-GrößeAzure VM Size
Active Directory-DomänencontrollerActive Directory Domain Controller 2 Kerne2 Cores 7 GB7 GB Standard_DS2_v2Standard_DS2_v2
SQL Server-Datenbankmodul und Analysis ServicesSQL Server Database Engine and Analysis Services 16 Kerne16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2
Berichtsserver-DatenbankReport Server Database 16 Kerne16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Konfiguration des virtuellen Power BI-Berichtsserver-Computers1.2 Power BI Report Server Virtual Machine Configuration

Für den virtuellen Computer, der Power BI-Berichtsserver hostet, wurden unterschiedliche Konfigurationen von Prozessor und Arbeitsspeicher verwendet.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. Im Gegensatz zu anderen virtuellen Computern wurde dieser Computer als virtueller Computer der dritten Generation (Dv3-Serie) mit Storage Premium-Datenträgern bereitgestellt.Unlike the other VMs, this machine was provisioned according to the third-generation (v3) D Series Machines with Premium Storage Disks. Ausführliche Informationen zu dieser VM-Größe finden Sie im Abschnitt „Allgemein“ unter https://azure.microsoft.com/de-de/pricing/details/virtual-machines/windows/.You can find detailed information about this VM size under the “General Purpose” section on https://azure.microsoft.com/en-us/pricing/details/virtual-machines/windows/.

Virtueller ComputerVirtual Machine ProzessorProcessor ArbeitsspeicherMemory Azure VM-GrößeAzure VM Size
Power BI-Berichtsserver (klein)Power BI Report Server (Small) 8 Kerne8 Cores 32 GB32 GB Standard_D8S_v3Standard_D8S_v3
Power BI-Berichtsserver (groß)Power BI Report Server (Large) 16 Kerne16 Cores 64 GB64 GB vStandard_D16S_v3vStandard_D16S_v3

2 Ausführen des Tools LoadTest2 Run the LoadTest tool

Wenn Sie das Tool LoadTest von Reporting Services für Ihre Power BI-Berichtsserver-Bereitstellung oder eine Microsoft Azure-Bereitstellung von Power BI-Berichtsserver ausführen möchten, führen Sie die folgenden Schritte aus.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. Klonen Sie das Projekt „Reporting Services LoadTest“ aus GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. Das Projektverzeichnis enthält eine Projektmappendatei mit dem Namen „RSLoadTests.sln“.In the project directory, you will find a solution file called RSLoadTests.sln. Öffnen Sie diese Datei in Visual Studio 2015 oder höher.Open this file in Visual Studio 2015 or later.
  3. Bestimmen Sie, ob dieses Tool für Ihre Bereitstellung von Power BI-Berichtsserver oder für eine Bereitstellung von Power BI-Berichtsserver in Microsoft Azure ausgeführt werden soll.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. Wenn Sie es für Ihre eigene Bereitstellung ausführen möchten, fahren Sie mit Schritt 5 fort.If you are going to run it against your own deployment, go to step 5.
  4. Befolgen Sie die Anweisungen im Abschnitt https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure (in englischer Sprache), um eine Power BI-Berichtsserver-Umgebung in Azure zu erstellen.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. Wenn Sie die Bereitstellung der Umgebung abgeschlossen haben, befolgen Sie die Anweisungen in https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution (in englischer Sprache), um die Tests auszuführen.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.

Weitere Fragen?More questions? Stellen Sie Ihre Frage in der Power BI-Community.Try asking the Power BI Community