Leitfaden zur Kapazitätsplanung für Power BI-Berichtsserver
Power BI-Berichtsserver ist eine Lösung für Self-Service-BI und Enterprise-Berichterstellung, die Kunden lokal hinter der Firewall bereitstellen können. Sie kombiniert die interaktiven Berichte von Power BI Desktop mit der lokalen Serverplattform von 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. Dieses Dokument bietet einen Leitfaden zur Kapazitätsplanung für Power BI-Berichtsserver anhand der Ergebnisse zahlreicher Auslastungstests mit verschiedenen Arbeitsauslastungen eines Berichtsservers. 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.
Kurzfassung
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.
- Bei der Workload „Power BI-Bericht – stark“ war der am häufigsten (60 % der Zeit ausgeführte) ausgeführte Vorgang das Rendern von Power BI-Berichten.
- Bei der Workload „Paginierter Bericht – stark“ war der am häufigsten ausgeführte Vorgang das Rendern paginierter Berichte.
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.
Arbeitsauslastung | 8 Kerne/32 GB RAM | 16 Kerne/64 GB RAM |
---|---|---|
Power BI-Bericht – stark (>60 %) | 1\.000 Benutzer | 3\.000 Benutzer |
Paginierter Bericht (RDL) – stark (>60 %) | 2\.000 Benutzer | 3\.200 Benutzer |
Bei jeder Ausführung war die CPU die am stärksten belastete Ressource. 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.
Testmethodik
Die verwendete Testtopologie basierte auf Microsoft Azure Virtual Machines statt auf anbieterspezifischer physischer Hardware. Alle Computer wurden in Regionen in den USA gehostet. Dies entspricht der allgemeinen Tendenz, dass Hardwarevirtualisierung sowohl lokal als auch in der öffentlichen Cloud erfolgt.
Topologie von Power BI-Berichtsserver
Die Bereitstellung von Power BI-Berichtsserver umfasste die folgenden virtuellen Computer:
- Active Directory-Domänencontroller: Dieser wurde von der SQL Server-Datenbank-Engine, von SQL Server Analysis Services und von Power BI-Berichtsserver benötigt, um alle Anforderungen sicher zu authentifizieren.
- SQL Server-Datenbank-Engine und SQL Server Analysis Services: Dort wurden alle Datenbanken für die Berichte gespeichert, die beim Rendern der Berichte verwendet wurden.
- Power BI-Berichtsserver
- Power BI-Berichtsserver-Datenbank. Die Berichtsserver-Datenbank wird auf einem anderen Computer als Power BI-Berichtsserver gehostet, damit es zu keinen Konflikten mit der SQL Server-Datenbank-Engine im Hinblick auf Arbeitsspeicher, CPU-, Netzwerk- und Datenträgerressourcen kommt.
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.
Tests
Die in den Auslastungstests verwendeten Tests sind in einem GitHub-Projekt mit dem Namen Reporting Services LoadTest (in englischer Sprache) öffentlich verfügbar. 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. Dieses Projekt besteht aus vier Gruppen von Testfällen:
- Tests, die das Rendern von Power BI-Berichten simulieren,
- Tests, die das Rendern von mobilen Berichten simulieren,
- Tests, die das Rendern von kleinen und großen paginierten Berichten simulieren, und
- Tests, die das Ausführen verschiedener Typen von Webportalvorgängen simulieren.
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. Zu diesem Zweck führen die Tests eine oder mehrere Webanforderungen an den Berichtsserver (über APIs) aus. In der Praxis muss ein Benutzer möglicherweise einige zwischengeschaltete Vorgänge ausführen, um einen dieser End-to-End-Vorgänge abzuschließen. 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. 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 der Power BI-Berichtsserver unter realen Bedingungen bewältigen muss. 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.
Hinweis
Das Tool wird nicht offiziell von Microsoft unterstützt, das Produktteam trägt jedoch zum Projekt bei und beantwortet Fragen von anderen Mitwirkenden.
Workloads
Beim Testen werden zwei Workloadprofile verwendet: „Power BI-Bericht – stark“ und „Paginierter Bericht – stark“. In der folgenden Tabelle wird die Verteilung der für den Berichtsserver ausgeführten Anforderungen beschrieben.
Aktivität | Power BI-Bericht – stark, Häufigkeit des Vorkommens | Paginierter Bericht – stark, Häufigkeit des Vorkommens |
---|---|---|
Rendern von Power BI-Berichten | 60 % | 10 % |
Rendern von paginierten Berichten (RDL) | 30 % | 60 % |
Rendern von mobilen Berichten | 5 % | 20 % |
Webportalvorgänge | 5 % | 10 % |
Benutzerlast
In jedem Testlauf wurden die Tests basierend auf der in einer der beiden Arbeitsauslastungen angegebenen Häufigkeit ausgeführt. Die Tests wurden mit 20 gleichzeitigen Benutzeranforderungen an den Berichtsserver gestartet. Die Benutzerlast wurde dann schrittweise erhöht, bis die Zuverlässigkeit unter den Zielwert von 99 % sank.
Ergebnisse
Bewältigte Anzahl gleichzeitiger Benutzer
Wie bereits erwähnt, wurden die Tests mit 20 Benutzern, die gleichzeitig Anforderungen an den Berichtsserver senden, gestartet. Die Anzahl von gleichzeitigen Benutzern wurde dann schrittweise erhöht, bis 1 % aller Anforderungen fehlschlugen. 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.
Arbeitsauslastung | 8 Kerne/32 GB | 16 Kerne/64 GB |
---|---|---|
Power BI-Bericht – stark | 50 gleichzeitige Benutzer | 150 gleichzeitige Benutzer |
Paginierter Bericht – stark | 100 gleichzeitige Benutzer | 160 gleichzeitige Benutzer |
Gesamte Benutzerkapazität
Wir haben bei Microsoft eine Produktionsbereitstellung von Power BI-Berichtsserver, die von mehreren Teams verwendet wurde. 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. 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.
Arbeitsauslastung | 8 Kerne/32 GB | 16 Kerne/64 GB |
---|---|---|
Power BI-Bericht – stark | 1\.000 Benutzer | 3\.000 Benutzer |
Paginierter Bericht – stark | 2\.000 Benutzer | 3\.200 Benutzer |
Zusammenfassung
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. Deshalb sollte als Erstes die Anzahl der Kerne erhöht werden. Alternativ dazu können Sie horizontal hochskalieren, indem Sie in der Topologie weitere Server hinzufügen, die Power BI-Berichtsserver hosten.
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. 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.
Anhang
1 Topologie
1.1 Topologie von Power BI-Berichtsserver
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. Jeder Computer wurde als virtueller Computer der zweiten Generation (Dv2-Serie) mit Storage Premium-Datenträgern bereitgestellt. Ausführliche Informationen zu jeder VM-Größe finden Sie im Abschnitt „Allgemein“.
Typ des virtuellen Computers | Prozessor | Arbeitsspeicher | Azure VM-Größe |
---|---|---|---|
Active Directory-Domänencontroller | 2 Kerne | 7 GB | Standard_DS2_v2 |
SQL Server-Datenbank-Engine und Analysis Services | 16 Kerne | 56 GB | Standard_DS5_v2 |
Berichtsserver-Datenbank | 16 Kerne | 56 GB | Standard_DS5_v2 |
1.2 Konfiguration des virtuellen Power BI-Berichtsserver-Computers
Für den virtuellen Computer, der Power BI-Berichtsserver hostet, wurden unterschiedliche Konfigurationen von Prozessor und Arbeitsspeicher verwendet. Im Gegensatz zu anderen virtuellen Computern wurde dieser Computer als virtueller Computer der dritten Generation (Dv3-Serie) mit Storage Premium-Datenträgern bereitgestellt. Ausführliche Informationen zu dieser VM-Größe finden Sie im Abschnitt „Allgemein“.
Virtueller Computer | Prozessor | Arbeitsspeicher | Azure VM-Größe |
---|---|---|---|
Power BI-Berichtsserver (klein) | 8 Kerne | 32 GB | Standard_D8S_v3 |
Power BI-Berichtsserver (groß) | 16 Kerne | 64 GB | vStandard_D16S_v3 |
2 Ausführen des Tools LoadTest
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.
- Klonen Sie das Reporting Services LoadTest-Projekt von GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
- Das Projektverzeichnis enthält eine Projektmappendatei mit dem Namen „RSLoadTests.sln“. Öffnen Sie diese Datei in Visual Studio 2015 oder höher.
- 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. Wenn Sie es für Ihre eigene Bereitstellung ausführen möchten, fahren Sie mit Schritt 5 fort.
- Befolgen Sie die Anweisungen unter https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure, um eine Power BI-Berichtsserver-Umgebung in Azure zu erstellen.
- Sobald Sie mit der Bereitstellung der Umgebung fertig sind, befolgen Sie die Anweisungen unter https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution, um die Tests auszuführen.
Weitere Fragen? Stellen Sie Ihre Frage in der Power BI-Community.