Conseils sur la planification de la capacité de Power BI Report ServerCapacity planning guidance for Power BI Report Server

Power BI Report Server est une solution d’informatique décisionnelle et de création de rapports en entreprise libre-service que les clients peuvent déployer localement, derrière le pare-feu d’entreprise.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. Cette solution combine la fonctionnalité de rapport interactif de Power BI Desktop avec la plateforme de serveur locale de 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. En raison de l’utilisation croissante et intensive des analytiques et des rapports au sein des entreprises, la budgétisation de l’infrastructure matérielle et des licences logicielles nécessaires pour s’adapter à une base d’utilisateurs en entreprise peut représenter un défi.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. Ce document propose des conseils sur la planification de la capacité de Power BI Report Server en partageant les résultats de plusieurs exécutions de test de charge de différentes charges de travail exécutées sur un serveur de rapports.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. Alors que les rapports, les requêtes et les modèles d’utilisation des organisations peuvent varier, les résultats présentés dans ce document, ainsi que les tests réels utilisés et la description détaillée de leur exécution, servent de point de référence pour tous les utilisateurs qui envisagent de planifier en amont le déploiement de Power BI Report Server.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.

Rapport de synthèseExecutive summary

Nous avons exécuté deux types de charges de travail sur Power BI Report Server. Chaque charge de travail consistait à restituer différents types de rapports, ainsi qu’à effectuer diverses opérations dans un portail web.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.

  • Dans la charge de travail « Power BI Report Heavy », l’opération la plus fréquente (par exemple l’opération exécutée 60 % du temps) consistait à restituer des rapports 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.
  • Dans la charge de travail « Paginated Report Heavy », l’opération la plus fréquente était de restituer des rapports paginés.In “Paginated Report Heavy” workload, the most frequently executed operation was rendering paginated reports.

Sous une topologie à quatre serveurs de Power BI Report Server et en considérant qu’un maximum de 5 % d’utilisateurs accèdent simultanément à un serveur de rapports, le tableau suivant décrit le nombre maximal d’utilisateurs que Power BI Report Server peut gérer avec une fiabilité d’au moins 99 %.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.

Charge de travailWorkload 8 cœurs/32 Go de RAM8 Core/32 GB RAM 16 cœurs/64 Go de RAM16 Core/64 GB RAM
Power BI Report Heavy (> 60 %)Power BI Report Heavy (>60%) 1 000 utilisateurs1,000 users 3 000 utilisateurs3,000 users
Paginated (RDL) Report Heavy (> 60 %)Paginated (RDL) Report Heavy (>60%) 2 000 utilisateurs2,000 users 3 200 utilisateurs3,200 users

Dans chaque exécution, la ressource la plus submergée était l’UC.In each run, the most overwhelmed resource was CPU. Pour cette raison, l’augmentation du nombre de cœurs de Power BI Report Server générerait un plus grand gain en termes de fiabilité du système que l’augmentation de la quantité de mémoire ou d’espace disque.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.

Méthodologie de testTest methodology

La topologie de test utilisée était basée sur Machines virtuelles Microsoft Azure au lieu du matériel propre au fournisseur.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Toutes les machines étaient hébergées en Amérique du Nord.All machines were hosted in US regions. Cela reflète la tendance générale de la virtualisation matérielle aussi bien localement que dans le cloud public.This reflects the general trend of hardware virtualization both on premises and in the public cloud.

Topologie Power BI Report ServerPower BI Report Server topology

Le déploiement de Power BI Report Server était constitué des machines virtuelles suivantes :The Power BI Report Server deployment consisted of the following virtual machines:

  • Contrôleur de domaine Active Directory : celui-ci était requis par le moteur de base de données SQL Server, SQL Server Analysis Services et Power BI Report Server afin d’authentifier toutes les demandes de manière sécurisée.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.
  • Moteur de base de données SQL Server et SQL Server Analysis Services : c’est à cet endroit qu’étaient stockées toutes les bases de données des rapports à utiliser lorsque nous les avons restitués.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 Report ServerPower BI Report Server
  • Base de données Power BI Report ServerPower BI Report Server Database. La base de données du serveur de rapports est hébergée sur une autre machine que Power BI Report Server. Ainsi, elle ne doit pas être en concurrence avec le moteur de base de données SQL Server pour la mémoire, le processeur, le réseau et les ressources de disque.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.

Consultez l’annexe 1.1 Topologie Power BI Report Server et l’annexe 1.2 Configuration des machines virtuelles Power BI Report Server pour voir la configuration complète de chaque machine virtuelle utilisée dans la 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

Les tests utilisés dans les séries de tests de charge sont accessibles publiquement dans un projet GitHub appelé Reporting Services LoadTest (voir 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). Cet outil permet aux utilisateurs d’étudier les caractéristiques de performances, de fiabilité, de scalabilité et de capacité de restauration de SQL Server Reporting Services et Power BI Report Server.This tool allows users to study the performance, reliability, scalability and recoverability characteristics of SQL Server Reporting Services and Power BI Report Server. Ce projet se compose de quatre groupes de tests :This project consists of four groups of test cases:

  • Tests simulant la restitution de rapports Power BITests simulating rendering Power BI reports,
  • Tests simulant la restitution de rapports mobilesTests simulating rendering mobile reports,
  • Tests simulant la restitution de rapports paginés de petite et grande tailleTests simulating rendering small and large paginated reports, and
  • Tests simulant l’exécution de différents types d’opérations de portail web.Tests simulating performing various types of web portal operations.

Tous les tests ont été écrits pour effectuer une opération de bout en bout (telle que la restitution d’un rapport, la création d’une source de données, etc.).All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Pour cela, les tests ont effectué une ou plusieurs demandes web sur le serveur de rapports (via des API).They accomplish this by making one or more web requests to the report server (via APIs). Dans le monde réel, un utilisateur devra peut-être effectuer quelques opérations intermédiaires pour réaliser l’une de ces opérations de bout en bout.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Par exemple, pour afficher un rapport, un utilisateur devra accéder au portail web, puis au dossier où est stocké le rapport, et enfin cliquer sur le rapport pour l’afficher.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. Alors que les tests n’effectuent pas toutes les opérations nécessaires pour accomplir une tâche de bout en bout, ils font tout de même subir la plus grande partie de la charge que pourrait rencontrer Power BI Report Server.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 . Pour plus d’informations sur les différents types de rapports utilisés, ainsi que les diverses opérations effectuées, explorez le projet GitHub.You can learn more about the different types of reports used as well as the variety of operations performed by exploring the GitHub project.

Charges de travailWorkloads

2 profils de charge de travail ont été utilisés lors des tests : Power BI Report Heavy et Paginated Report Heavy.There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. Le tableau ci-dessous décrit la distribution des demandes exécutées sur le serveur de rapports.The table below describes the distribution of requests executed against the Report Server.

ActivityActivity Power BI Report Heavy, fréquence d’occurrencePower BI Report Heavy, Frequency of occurrence Paginated Report Heavy, fréquence d’occurrencePaginated Report Heavy, Frequency of occurrence
Restitution de rapports Power BIRendering Power BI reports 60 %60% 10 %10%
Restitution de rapports paginésRendering paginated (RDL) reports 30%30% 60 %60%
Restitution de rapports mobilesRendering mobile reports 5 %5% 20 %20%
Opérations de portail webWeb portal operations 5 %5% 10 %10%

Charge utilisateurUser load

Pour chaque série de tests, des tests ont été exécutés selon la fréquence spécifiée dans une des deux charges de travail.For each test run, tests were executed based on the frequency specified in one of the two workloads. Les tests ont démarré avec 20 demandes utilisateur simultanées envoyées au serveur de rapports.Tests started with 20 concurrent user requests to the report server. La charge utilisateur a ensuite été augmentée progressivement jusqu’à ce que la fiabilité descende en dessous de la cible de 99 %.The user load was then gradually increased until reliability dropped below the 99% target.

RésultatsResults

Capacité des utilisateurs simultanésConcurrent user capacity

Comme indiqué précédemment, les tests ont démarré avec 20 utilisateurs simultanés qui effectuent des demandes au serveur de rapports.As stated earlier, tests started with 20 concurrent users making requests to the report server. Le nombre d’utilisateurs simultanés a ensuite été augmenté progressivement jusqu’à ce que 1 % de toutes les demandes échouent.The number of concurrent users was then gradually increased until 1% of all requests were failing. Les résultats dans le tableau suivant nous indiquent le nombre de demandes utilisateur simultanées que le serveur est en mesure de gérer sous les pics de charge avec un taux d’échec de moins de 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%.

Charge de travailWorkload 8 cœurs/32 Go8 Core/32 GB 16 cœurs/64 Go16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 50 utilisateurs simultanés50 concurrent users 150 utilisateurs simultanés150 concurrent users
Paginated Report HeavyPaginated Report Heavy 100 utilisateurs simultanés100 concurrent users 160 utilisateurs simultanés160 concurrent users

Capacité totale des utilisateursTotal user capacity

Chez Microsoft, nous avons un déploiement de production de Power BI Report Server utilisé par plusieurs équipes.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. Lorsque nous analysons l’utilisation réelle de cet environnement, nous observons que le nombre d’utilisateurs simultanés à un moment donné (même pendant les pics de charge quotidiens) n’a pas tendance à dépasser 5 % de la base d’utilisateurs totale.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. En utilisant ce taux de simultanéité de 5 % comme point de référence, nous avons extrapolé la base totale d’utilisateurs que Power BI Report Server peut gérer avec une fiabilité de 99 %.Using this 5% concurrency ratio as a benchmark, we extrapolated the total user base Power BI Report Server could handle with 99% reliability.

Charge de travailWorkload 8 cœurs/32 Go8 Core/32 GB 16 cœurs/64 Go16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 1 000 utilisateurs1,000 users 3 000 utilisateurs3,000 users
Paginated Report HeavyPaginated Report Heavy 2 000 utilisateurs2,000 users 3 200 utilisateurs3,200 users

Voir les résultatsView results

Sélectionnez un rapport pour afficher les résultats du test de charge.Select a report to view the results of the load test.

Charge de travailWorkload 8 cœurs/32 Go8 Core/32 GB 16 cœurs/64 Go16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy Affichage - 8 cœursView - 8 core Affichage - 16 cœursView - 16 core
Paginated Report HeavyPaginated Report Heavy Affichage - 8 cœursView - 8 core Affichage - 16 cœursView - 16 core

RésuméSummary

Pour chaque série de tests de charge, l’UC était la ressource la plus submergée dans la phase de pic de charge de la machine Power BI Report Server.For each load test run, CPU was the most overwhelmed resource at the point of peak load on the Power BI Report Server machine. Pour cette raison, la première ressource qui doit être augmentée est le nombre de cœurs.Due to this, the first resource that should be increased is the number of cores. Ou bien, vous pouvez envisager une scalabilité horizontale en ajoutant des serveurs hébergeant Power BI Report Server dans votre topologie.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

Les résultats présentés dans ce document sont dérivés de l’exécution d’un ensemble spécifique de rapports consommant un ensemble particulier de données, répétés d’une manière spécifique.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. Il s’agit d’un point de référence utile, mais n’oubliez pas que votre utilisation dépend de vos rapports, requêtes, modèles d’utilisation ainsi que de votre déploiement de Power BI Report Server.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.

AnnexeAppendix

1 Topologie1 Topology

1.1 Topologie Power BI Report Server1.1 Power BI Report Server Topology

Pour axer les tests uniquement sur le comportement de Power BI Report Server dans différentes configurations, la configuration de machine virtuelle de chaque type de machine (à l’exception de la machine qui héberge Power BI Report Server) était fixe.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. Chaque machine a été approvisionnée selon des machines de série D de deuxième génération (v2) avec des disques de stockage Premium.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. Des informations détaillées sur chaque taille de machine virtuelle sont disponibles sous la section « Usage général » à la page https://azure.microsoft.com/fr-fr/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/.

Type de machine virtuelleVirtual Machine Type ProcesseurProcessor MémoireMemory Taille de machine virtuelle AzureAzure VM Size
Contrôleur de domaine Active DirectoryActive Directory Domain Controller 2 cœurs2 Cores 7 Go7 GB Standard_DS2_v2Standard_DS2_v2
Moteur de base de données SQL Server et Analysis ServicesSQL Server Database Engine and Analysis Services 16 cœurs16 Cores 56 Go56 GB Standard_DS5_v2Standard_DS5_v2
Base de données Report ServerReport Server Database 16 cœurs16 Cores 56 Go56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Configuration des machines virtuelles Power BI Report Server1.2 Power BI Report Server Virtual Machine Configuration

Différentes configurations de processeur et de mémoire ont été utilisées pour la machine virtuelle qui héberge Power BI Report Server.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. Contrairement aux autres machines virtuelles, cette machine a été approvisionnée selon des machines de série D de troisième génération (v3) avec des disques de stockage Premium.Unlike the other VMs, this machine was provisioned according to the third-generation (v3) D Series Machines with Premium Storage Disks. Des informations détaillées sur cette taille de machine virtuelle sont disponibles sous la section « Usage général » à la page https://azure.microsoft.com/fr-fr/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/.

Machine virtuelleVirtual Machine ProcesseurProcessor MémoireMemory Taille de machine virtuelle AzureAzure VM Size
Power BI Report Server (petit)Power BI Report Server (Small) 8 cœurs8 Cores 32 Go32 GB Standard_D8S_v3Standard_D8S_v3
Power BI Report Server (grand)Power BI Report Server (Large) 16 cœurs16 Cores 64 Go64 GB vStandard_D16S_v3vStandard_D16S_v3

2 Exécuter l’outil LoadTest2 Run the LoadTest tool

Si vous souhaitez exécuter l’outil LoadTest de Reporting Services sur votre déploiement ou un déploiement Microsoft Azure de Power BI Report Server, procédez comme suit.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. Clonez le projet Reporting Services LoadTest à partir de GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. Dans le répertoire du projet se trouve un fichier de solution appelé RSLoadTests.sln.In the project directory, you will find a solution file called RSLoadTests.sln. Ouvrez ce fichier dans Visual Studio 2015 ou version ultérieure.Open this file in Visual Studio 2015 or later.
  3. Déterminez si vous souhaitez exécuter cet outil sur votre déploiement Power BI Report Server ou sur un déploiement Power BI Report Server dans 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. Si vous choisissez de l’exécuter sur votre propre déploiement, passez à l’étape 5.If you are going to run it against your own deployment, go to step 5.
  4. Suivez les instructions figurant à la page https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure pour créer un environnement Power BI Report Server dans Azure.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. Une fois que vous avez terminé de déployer l’environnement, suivez les instructions figurant à la page https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution pour exécuter les tests.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.

D’autres questions ?More questions? Essayez d’interroger la communauté Power BITry asking the Power BI Community