Indicazioni sulla pianificazione della capacità per il server di report di Power BICapacity planning guidance for Power BI Report Server

Il server di report di Power BI è una soluzione di business intelligence aziendale self-service e di creazione di report aziendali che i clienti possono distribuire localmente, dietro a firewall.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. Combina le funzionalità di report interattivi di Power BI Desktop con la piattaforma server locale di 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. Con la crescita dell'utilizzo intenso delle analisi e dei report all'interno delle aziende, può risultare difficile allocare fondi sufficienti per l'infrastruttura hardware e le licenze software necessarie per la scalabilità per una base utenti aziendale.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. Questo articolo fornisce indicazioni sulla pianificazione della capacità per il server di report di Power BI, condividendo i risultati di numerose esecuzioni di test di carico di diversi carichi di lavoro in un server di report.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. Benché i report, le query e i modelli di utilizzo delle organizzazioni possano presentare differenze significative, i risultati presentati in questo articolo, oltre ai test effettivi usati e a una descrizione dettagliata della relativa modalità di esecuzione, possono servire da punto di riferimento per chiunque stia completando le fasi preliminari del processo di pianificazione della distribuzione del server di report di 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.

RiepilogoExecutive summary

Sono stati eseguiti due tipi diversi di carichi di lavoro nel server di report di Power BI. Ogni carico di lavoro è costituito da rendering di diversi tipi di report e dall'esecuzione di diverse operazioni nel portale 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.

  • Nel carico di lavoro definito "Power BI Report Heavy" l'operazione eseguita con maggiore frequenza, ovvero l'operazione eseguita per il 60% del tempo, è costituita dal rendering di report di 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.
  • Nel carico di lavoro "Paginated Report Heavy" l'operazione eseguita con maggiore frequenza è costituita dal rendering di report impaginati.In “Paginated Report Heavy” workload, the most frequently executed operation was rendering paginated reports.

Con una topologia di quattro server per il server di report di Power BI e un'aspettativa che prevede che non più del 5% degli utenti eseguirà l'accesso a un server di report in un momento qualsiasi, la tabella seguente illustra il numero massimo di utenti che un server di report di Power BI può gestire con un'affidabilità almeno del 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.

Carico di lavoroWorkload 8 core/32 GB di RAM8 Core/32 GB RAM 16 core/64 GB di RAM16 Core/64 GB RAM
Power BI Report Heavy (>60%)Power BI Report Heavy (>60%) 1.000 utenti1,000 users 3.000 utenti3,000 users
Paginated (RDL) Report Heavy (>60%)Paginated (RDL) Report Heavy (>60%) 2.000 utenti2,000 users 3.200 utenti3,200 users

In ogni esecuzione la risorsa che presenta il sovraccarico maggiore è la CPU.In each run, the most overwhelmed resource was CPU. L'aumento del numero di core per il server di report di Power BI potrebbe quindi permettere di ottenere un incremento superiore a livello di affidabilità del sistema rispetto all'aumento della quantità di memoria o dello spazio su disco rigido.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.

Metodologia di testTest methodology

La topologia di test usata è basata sulle Macchine virtuali di Microsoft Azure, invece che su hardware fisico specifico di un fornitore.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Tutte le macchine virtuali sono ospitate in aree degli Stati Uniti,All machines were hosted in US regions. per riflettere la tendenza generale della virtualizzazione hardware in locale e nel cloud pubblico.This reflects the general trend of hardware virtualization both on premises and in the public cloud.

Topologia del server di report di Power BIPower BI Report Server topology

La distribuzione del server di report di Power BI è costituita dalle macchine virtuali seguenti:The Power BI Report Server deployment consisted of the following virtual machines:

  • Controller di dominio di Active Directory: usato dal motore di database di SQL Server, da SQL Server Analysis Services e dal server di report di Power BI per l'autenticazione sicura di tutte le richieste.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.
  • Motore di database di SQL Server e SQL Server Analysis Services: posizione in cui sono stati archiviati tutti i database che i report devono utilizzare in fase di rendering.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 di report Power BIPower BI Report Server
  • Database del server di report Power BI.Power BI Report Server Database. Il database del server di report è ospitato in una macchina virtuale rispetto al server di report di Power BI, in modo che non debba competere con il motore di database di SQL Server per memoria, CPU, risorse di rete e di disco.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.

Per informazioni complete sulla configurazione di ogni macchina virtuale usata nella topologia, vedere Appendice 1.1 Topologia del server di report di Power BI e Appendice 1.2 Configurazione delle macchine virtuali per il server di report di 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.

TestTests

I test usati nelle esecuzioni dei test di carico sono disponibili pubblicamente in un progetto GitHub definito "Reporting Services LoadTest" (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). Questo strumento consente agli utenti di studiare le prestazioni, l'affidabilità, la scalabilità e le caratteristiche di ripristinabilità di SQL Server Reporting Services e del server di report di 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. Questo progetto è costituito da quattro gruppi di test case:This project consists of four groups of test cases:

  • Test che simulano il rendering dei report di Power BITests simulating rendering Power BI reports,
  • Test che simulano il rendering dei report per dispositivi mobiliTests simulating rendering mobile reports,
  • Test che simulano il rendering di report impaginati di piccole e grandi dimensioniTests simulating rendering small and large paginated reports, and
  • Test che simulano l'esecuzione di diversi tipi di operazioni nel portale WebTests simulating performing various types of web portal operations.

Tutti i test sono stati scritti per l'esecuzione di un'operazione end-to-end, ad esempio il rendering di un report, la creazione di una nuova origine dati e così via.All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Per ottenere questo risultato, inviano una o più richieste Web per il server di report tramite le API.They accomplish this by making one or more web requests to the report server (via APIs). Nel mondo reale è possibile che un utente debba eseguire alcune operazioni intermedie per completare una di queste operazioni end-to-end.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Ad esempio, per eseguire il rendering di un report, un utente dovrà passare al portale Web, selezionare la cartella in cui si trova il report e quindi fare clic sul report per sottoporlo a rendering.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. Anche se i test non eseguono tutte le operazioni necessarie per completare un'attività end-to-end, il carico è comunque molto simile a un carico effettivo del server di report di Power BI.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 . L'esplorazione del progetto GitHub consente di ottenere molte informazioni sui diversi tipi di report usati e sulla varietà di operazioni eseguite.You can learn more about the different types of reports used as well as the variety of operations performed by exploring the GitHub project.

Carichi di lavoroWorkloads

Nei test vengono usati due profili di carico di lavoro, ovvero "Power BI Report Heavy" e "Paginated Report Heavy".There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. La tabella seguente illustra la distribuzione delle richieste eseguite nel server di report.The table below describes the distribution of requests executed against the Report Server.

AttivitàActivity Power BI Report Heavy, frequenza di occorrenzaPower BI Report Heavy, Frequency of occurrence Paginated Report Heavy, frequenza di occorrenzaPaginated Report Heavy, Frequency of occurrence
Rendering di report di Power BIRendering Power BI reports 60%60% 10%10%
Rendering di report impaginati (RDL)Rendering paginated (RDL) reports 30%30% 60%60%
Rendering di report per dispositivi mobiliRendering mobile reports 5%5% 20%20%
Operazioni del portale WebWeb portal operations 5%5% 10%10%

Carico utenteUser load

Per ogni esecuzione di test, i test sono stati eseguiti in base alla frequenza specificata in uno dei due carichi di lavoro.For each test run, tests were executed based on the frequency specified in one of the two workloads. I test sono iniziati con 20 richieste utente simultanee al server di report.Tests started with 20 concurrent user requests to the report server. Il carico utente è stato quindi incrementato gradualmente fino a quando il livello di affidabilità non è sceso al di sotto dell'obiettivo del 99%.The user load was then gradually increased until reliability dropped below the 99% target.

RisultatiResults

Capacità di utenti simultaneiConcurrent user capacity

Come indicato in precedenza, i test sono iniziati con 20 utenti simultanei che inviano richieste al server di report.As stated earlier, tests started with 20 concurrent users making requests to the report server. Il numero di utenti simultanei è stato quindi incrementato gradualmente fino a ottenere errori per l'1% di tutte le richieste.The number of concurrent users was then gradually increased until 1% of all requests were failing. I risultati nella tabella seguente indicano il numero di richieste utente simultanee che il server sarebbe in grado di gestire in caso di picco del carico con una frequenza di errore inferiore all'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%.

Carico di lavoroWorkload 8 core/32 GB8 Core/32 GB 16 core/64 GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 50 utenti simultanei50 concurrent users 150 utenti simultanei150 concurrent users
Paginated Report HeavyPaginated Report Heavy 100 utenti simultanei100 concurrent users 160 utenti simultanei160 concurrent users

Capacità totale a livello di utentiTotal user capacity

Presso Microsoft è disponibile una distribuzione di produzione del server di report di Power BI, che è stata usata da diversi team.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. Quando si analizza l'utilizzo effettivo di questo ambiente, si può notare che il numero di utenti simultanei in un momento qualsiasi, anche in caso di picco giornaliero del carico, non supera tendenzialmente il 5% della base utenti 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. Usando una percentuale di simultaneità del 5% come benchmark, è stato possibile dedurre la base utenti totale che il server di report di Power BI è in grado di gestire con un'affidabilità del 99%.Using this 5% concurrency ratio as a benchmark, we extrapolated the total user base Power BI Report Server could handle with 99% reliability.

Carico di lavoroWorkload 8 core/32 GB8 Core/32 GB 16 core/64 GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 1.000 utenti1,000 users 3.000 utenti3,000 users
Paginated Report HeavyPaginated Report Heavy 2.000 utenti2,000 users 3.200 utenti3,200 users

Visualizzare i risultatiView results

Selezionare un report per visualizzare i risultati del test di carico.Select a report to view the results of the load test.

Carico di lavoroWorkload 8 core/32 GB8 Core/32 GB 16 core/64 GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy Visualizzazione - 8 coreView - 8 core Visualizzazione - 16 coreView - 16 core
Paginated Report HeavyPaginated Report Heavy Visualizzazione - 8 coreView - 8 core Visualizzazione - 16 coreView - 16 core

RiepilogoSummary

Per ogni esecuzione di test di carico, la CPU è stata la risorsa con maggiore sovraccarico in fase di picco del carico nella macchina virtuale del server di report di Power BI.For each load test run, CPU was the most overwhelmed resource at the point of peak load on the Power BI Report Server machine. È quindi necessario incrementare prima di tutto il numero di core.Due to this, the first resource that should be increased is the number of cores. In alternativa, è possibile prendere in considerazione l'aumento del numero di server che ospitano il server di report di Power BI nella topologia specifica.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

I risultati presentati in questo articolo sono basati sull'esecuzione di un set specifico di report che utilizza un set specifico di dati, ripetuta in modo specifico.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. Si tratta di un punto di riferimento utile, ma occorre ricordare che l'utilizzo dipenderà dai report, dalle query, dai modelli di utilizzo e dalla distribuzione del server di report di Power BI specifico.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.

AppendiceAppendix

1 Topologia1 Topology

1.1 Topologia del server di report di Power BI1.1 Power BI Report Server Topology

Per concentrarsi esclusivamente sul comportamento del server di report di Power BI in configurazioni diverse, la configurazione delle VM per ogni tipo di macchina virtuale, ad eccezione della macchina virtuale che ospita il server di report di Power BI, è fissa.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. Ogni macchina virtuale è stata sottoposta a provisioning come VM di tipo Serie D (v2) di seconda generazione con dischi di archiviazione Premium.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. Per informazioni dettagliate sulle dimensioni di ogni VM, vedere la sezione "Utilizzo generico" all'indirizzo https://azure.microsoft.com/it-it/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/.

Tipo di macchina virtualeVirtual Machine Type ProcessoreProcessor MemoriaMemory Dimensioni delle VM di AzureAzure VM Size
Controller di dominio di Active DirectoryActive Directory Domain Controller 2 core2 Cores 7 GB7 GB Standard_DS2_v2Standard_DS2_v2
Motore di Database di SQL Server e SQL Server Analysis ServicesSQL Server Database Engine and Analysis Services 16 core16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2
Database del server di reportReport Server Database 16 core16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Configurazione delle macchine virtuali per il server di report di Power BI1.2 Power BI Report Server Virtual Machine Configuration

Per la macchina virtuale che ospita il server di report di Power BI sono state usate diverse configurazioni di processore e memoria.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. A differenza delle altre VM, questa macchina virtuale è stata sottoposta a provisioning come VM di tipo Serie D (v3) di terza generazione con dischi di archiviazione Premium.Unlike the other VMs, this machine was provisioned according to the third-generation (v3) D Series Machines with Premium Storage Disks. Per informazioni dettagliate sulle dimensioni di questa VM, vedere la sezione "Utilizzo generico" all'indirizzo https://azure.microsoft.com/it-it/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/.

Macchina virtualeVirtual Machine ProcessoreProcessor MemoriaMemory Dimensioni delle VM di AzureAzure VM Size
Server di report Power BI (Small)Power BI Report Server (Small) 8 core8 Cores 32 GB32 GB Standard_D8S_v3Standard_D8S_v3
Server di report Power BI (Large)Power BI Report Server (Large) 16 core16 Cores 64 GB64 GB vStandard_D16S_v3vStandard_D16S_v3

2 Eseguire lo strumento LoadTest2 Run the LoadTest tool

Se si vuole eseguire lo strumento Reporting Services LoadTest con la propria distribuzione o con una distribuzione di Microsoft Azure del server di report di Power BI, seguire questa procedura.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. Clonare il progetto Reporting Services LoadTest da GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. Nella directory del progetto è disponibile un file di soluzione denominato RSLoadTests.sln.In the project directory, you will find a solution file called RSLoadTests.sln. Aprire questo file in Visual Studio 2015 o versione successiva.Open this file in Visual Studio 2015 or later.
  3. Determinare se si vuole eseguire questo strumento con la propria versione del server di report di Power BI o con una distribuzione del server di report di Power BI in 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. In caso di esecuzione con la propria distribuzione, andare al Passaggio 5.If you are going to run it against your own deployment, go to step 5.
  4. Seguire le istruzioni disponibili in https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure per creare un ambiente di server di report di Power BI in 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. Al temine della distribuzione dell'ambiente, seguire le istruzioni disponibili in https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution per eseguire i test.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.

Altre domande?More questions? Provare a rivolgersi alla community di Power BITry asking the Power BI Community