Diretrizes de planejamento de capacidade do Servidor de Relatórios do Power BICapacity planning guidance for Power BI Report Server

O Servidor de Relatórios do Power BI é uma solução de relatórios corporativos e de BI de autoatendimento que os clientes podem implantar em suas instalações, protegida pelo firewall.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. Ele combina a funcionalidade de relatório interativo do Power BI Desktop com a plataforma de servidor local do 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. Com o uso intenso e cada vez maior de análises e relatórios nas empresas, a inclusão no orçamento da infraestrutura de hardware e das licenças de software necessárias para dimensionar para uma base de usuários corporativos pode ser um desafio.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. Este documento tem como objetivo oferecer diretrizes de planejamento de capacidade do Servidor de Relatórios do Power BI, com o compartilhamento de resultados de diversas execuções de teste de carga de várias cargas de trabalho em um servidor de relatório.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. Embora os relatórios, as consultas e os padrões de uso das organizações variem muito, os resultados apresentados neste documento, juntamente com os testes reais usados e uma descrição detalhada de como eles foram executados, servem como um ponto de referência para qualquer pessoa que está no processo de planejamento do estágio inicial da implantação do Servidor de Relatórios do 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.

Resumo executivoExecutive summary

Executamos dois tipos diferentes de cargas de trabalho em um Servidor de Relatórios do Power BI; cada carga de trabalho consistia na renderização de diferentes tipos de relatórios, bem como na execução de várias operações do portal da 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.

  • Na carga de trabalho "Intensa de Relatório do Power BI", a operação executada com mais frequência (ou seja, a operação foi executada 60% do tempo) renderizou relatórios do 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.
  • Na carga de trabalho "Intensa de Relatório Paginado", a operação executada com mais frequência renderizou relatórios paginados.In "Paginated Report Heavy" workload, the most frequently executed operation was rendering paginated reports.

Em uma topologia de quatro servidores do Servidor de Relatórios do Power BI e com a expectativa de que não mais do que 5% dos usuários acessará um servidor de relatório a qualquer momento, a tabela a seguir descreve o número máximo de usuários que pode ser manipulado pelo Servidor de Relatórios do Power BI com, uma confiabilidade de, pelo menos, 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.

Carga de trabalhoWorkload 8 núcleos/32 GB de RAM8 Core/32 GB RAM 16 núcleos/64 GB de RAM16 Core/64 GB RAM
Intensa de Relatório do Power BI (>60%)Power BI Report Heavy (>60%) 1.000 usuários1,000 users 3.000 usuários3,000 users
Intensa de Relatório Paginado (RDL) (>60%)Paginated (RDL) Report Heavy (>60%) 2.000 usuários2,000 users 3.200 usuários3,200 users

Em cada execução, o recurso mais sobrecarregado foi a CPU.In each run, the most overwhelmed resource was CPU. Devido a isso, o aumento do número de núcleos no Servidor de Relatórios do Power BI gerará um ganho maior na confiabilidade do sistema do que o aumento da quantidade de memória ou de espaço em disco rígido.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 de testeTest methodology

A topologia de teste usada foi baseada nas Máquinas Virtuais do Microsoft Azure, em vez de no hardware físico específico ao fornecedor.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Todos os computadores foram hospedados em regiões dos EUA.All machines were hosted in US regions. Isso reflete a tendência geral da virtualização de hardware local e na nuvem pública.This reflects the general trend of hardware virtualization both on-premises and in the public cloud.

Topologia do Servidor de Relatórios do Power BIPower BI Report Server topology

A implantação do Servidor de Relatórios do Power BI consistiu nas seguintes máquinas virtuais:The Power BI Report Server deployment consisted of the following virtual machines:

  • Controlador de Domínio do Active Directory: isso era necessário para o Mecanismo de Banco de Dados do SQL Server, o SQL Server Analysis Services e o Servidor de Relatórios do Power BI para autenticar todas as solicitações com segurança.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.
  • Mecanismo de Banco de Dados do SQL Server e SQL Server Analysis Services: foi neles que armazenamos todos os bancos de dados para consumo dos relatórios quando os renderizamos.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.
  • Servidor de Relatório do Power BIPower BI Report Server
  • Banco de dados do Servidor de Relatórios do Power BI.Power BI Report Server Database. O banco de dados do servidor de relatório é hospedado em um computador diferente do Servidor de Relatórios do Power BI, de modo que ele não precise competir com o Mecanismo de Banco de Dados do SQL Server por memória, CPU, rede e recursos de 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.

Diagrama mostrando relações entre o Servidor de Relatórios do Power BI, o Active Directory e os bancos de dados associados.

Consulte o Apêndice 1.1 – Topologia do Servidor de Relatórios do Power BI e o Apêndice 1.2 – Configuração de máquina virtual do Servidor de Relatórios do Power BI para obter uma configuração completa de cada máquina virtual usada na topologia.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.

TestesTests

Os testes usados nas execuções de teste de carga estão disponíveis publicamente em um projeto do GitHub chamado Reporting Services LoadTest.The tests used in the load test runs are publicly available in a GitHub project called Reporting Services LoadTest. Essa ferramenta permite aos usuários estudar as características de desempenho, confiabilidade, escalabilidade e capacidade de recuperação do SQL Server Reporting Services e do Servidor de Relatórios do 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. Este projeto consiste em quatro grupos de casos de teste:This project consists of four groups of test cases:

  • Testes que simulam a renderização de relatórios do Power BI;Tests simulating rendering Power BI reports,
  • Testes que simulam a renderização de relatórios móveis;Tests simulating rendering mobile reports,
  • Testes que simulam a renderização de relatórios paginados pequenos e grandes; eTests simulating rendering small and large paginated reports, and
  • Testes que simulam a execução de vários tipos de operações do portal da Web.Tests simulating performing various types of web portal operations.

Todos os testes foram escritos para executar uma operação de ponta a ponta (como renderização de um relatório, criação de uma nova fonte de dados, etc.).All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Eles realizam isso fazendo uma ou mais solicitações da Web para o servidor de relatório (por meio de APIs).They accomplish this by making one or more web requests to the report server (via APIs). No mundo real, um usuário pode precisar executar algumas operações intermediárias para concluir uma dessas operações de ponta a ponta.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Por exemplo, para renderizar um relatório, um usuário precisará acessar o portal da Web, navegar para a pasta em que o relatório está localizado e, depois, clicar no relatório para renderizá-lo.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. Embora os testes não executem todas as operações necessárias para realizar uma tarefa de ponta a ponta, eles ainda impõem a maior parte da carga que o Servidor de Relatórios do Power BI usará.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. Saiba mais sobre os diferentes tipos de relatórios usados, bem como a variedade de operações executadas explorando o projeto do 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.

Observação

A ferramenta não é oficialmente compatível com a Microsoft, mas a equipe de produto contribui com o projeto e responde problemas gerados por outros colaboradores.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.

Cargas de trabalhoWorkloads

Existem dois perfis de carga de trabalho usados no teste: Intensa de Relatório do Power BI e Intensa de Relatório Paginado.There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. A tabela abaixo descreve a distribuição de solicitações executadas no Servidor de Relatórios.The table below describes the distribution of requests executed against the Report Server.

AtividadeActivity Intensa de Relatório do Power BI, Frequência de ocorrênciaPower BI Report Heavy, Frequency of occurrence Intensa de Relatório Paginado, Frequência de ocorrênciaPaginated Report Heavy, Frequency of occurrence
Renderização de relatórios do Power BIRendering Power BI reports 60%60% 10%10%
Renderização de relatórios paginados (RDL)Rendering paginated (RDL) reports 30%30% 60%60%
Renderização de relatórios móveisRendering mobile reports 5%5% 20%20%
Operações do portal da WebWeb portal operations 5%5% 10%10%

Carga de usuáriosUser load

Para cada execução de teste, os testes foram executados com base na frequência especificada em uma das duas cargas de trabalho.For each test run, tests were executed based on the frequency specified in one of the two workloads. Os testes foram iniciados com 20 solicitações de usuários simultâneos para o servidor de relatório.Tests started with 20 concurrent user requests to the report server. Em seguida, a carga de usuários aumentou gradativamente até a confiabilidade cair abaixo da meta de 99%.The user load was then gradually increased until reliability dropped below the 99% target.

ResultadosResults

Capacidade de usuários simultâneosConcurrent user capacity

Conforme mencionado anteriormente, os testes foram iniciados com 20 usuários simultâneos fazendo solicitações para o servidor de relatório.As stated earlier, tests started with 20 concurrent users making requests to the report server. Em seguida, o número de usuários simultâneos aumentou gradativamente até 1% de todas as solicitações falhar.The number of concurrent users was then gradually increased until 1% of all requests were failing. Os resultados da tabela a seguir informam o número de solicitações de usuários simultâneos que o servidor poderá manipular sob a carga de pico com uma taxa de falha inferior a 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%.

Carga de trabalhoWorkload 8 núcleos/32 GB8 Core/32 GB 16 núcleos/64 GB16 Core/64 GB
Intensa de Relatório do Power BIPower BI Report Heavy 50 usuários simultâneos50 concurrent users 150 usuários simultâneos150 concurrent users
Intensa de Relatório PaginadoPaginated Report Heavy 100 usuários simultâneos100 concurrent users 160 usuários simultâneos160 concurrent users

Capacidade total de usuáriosTotal user capacity

Na Microsoft, temos uma implantação de produção do Servidor de Relatórios do Power BI que foi usada por várias equipes.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. Quando analisamos o uso real desse ambiente, observamos que o número de usuários simultâneos em determinado momento (mesmo durante a carga de pico diária) não tende a exceder 5% da base total de usuários.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 essa proporção de simultaneidade de 5% como um parâmetro de comparação, extrapolamos a base total de usuários que o Servidor de Relatórios do Power BI pode manipular com uma confiabilidade 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.

Carga de trabalhoWorkload 8 núcleos/32 GB8 Core/32 GB 16 núcleos/64 GB16 Core/64 GB
Intensa de Relatório do Power BIPower BI Report Heavy 1.000 usuários1,000 users 3.000 usuários3,000 users
Intensa de Relatório PaginadoPaginated Report Heavy 2.000 usuários2,000 users 3.200 usuários3,200 users

ResumoSummary

Para cada execução de teste de carga, a CPU foi o recurso mais sobrecarregado no ponto de carga de pico no computador do Servidor de Relatórios do 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. Devido a isso, o primeiro recurso que deve ser aumentado é o número de núcleos.Due to this, the first resource that should be increased is the number of cores. Como alternativa, você pode considerar a possibilidade de expandir com a adição de mais servidores que hospedam o Servidor de Relatórios do Power BI na topologia.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

Os resultados apresentados neste documento foram obtidos com a execução de um conjunto específico de relatórios que consumiram um conjunto específico de dados, repetidos de uma maneira específica.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. É um ponto de referência útil, mas lembre-se de que o uso dependerá dos relatórios, das consultas, dos padrões de uso e da implantação do Servidor de Relatórios do 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.

ApêndiceAppendix

1 Topologia1 Topology

1.1 Topologia do Servidor de Relatórios do Power BI1.1 Power BI Report Server Topology

Para se concentrar apenas no comportamento do Servidor de Relatórios do Power BI em configurações diferentes, a configuração de VM de cada tipo de computador (com exceção do computador que hospeda o Servidor de Relatórios do Power BI) foi corrigida.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. Cada computador foi provisionado de acordo com os computadores da Série D de segunda geração (v2) com Discos de Armazenamento Premium.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. Você pode encontrar informações detalhadas sobre cada tamanho de VM na seção "Uso geral".You can find detailed information about each VM size under the "General Purpose" section.

Tipo de Máquina VirtualVirtual Machine Type ProcessadorProcessor MemóriaMemory Tamanho de VM do AzureAzure VM Size
Controlador de Domínio do Active DirectoryActive Directory Domain Controller 2 núcleos2 Cores 7 GB7 GB Standard_DS2_v2Standard_DS2_v2
Mecanismo de Banco de Dados do SQL Server e Analysis ServicesSQL Server Database Engine and Analysis Services 16 núcleos16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2
Banco de dados do servidor de relatórioReport Server Database 16 núcleos16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Configuração de máquina virtual do Servidor de Relatórios do Power BI1.2 Power BI Report Server Virtual Machine Configuration

Foram usadas configurações diferentes de processador e memória para a Máquina Virtual que hospeda o Servidor de Relatórios do Power BI.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. Ao contrário das outras VMs, esse computador foi provisionado de acordo com os Computadores da Série D de terceira geração (v3) máquinas com Discos de Armazenamento Premium.Unlike the other VMs, this machine was provisioned according to the third-generation (v3) D Series Machines with Premium Storage Disks. Você pode encontrar informações detalhadas sobre este tamanho de VM na seção "Uso geral"You can find detailed information about this VM size under the "General Purpose" section

Máquina VirtualVirtual Machine ProcessadorProcessor MemóriaMemory Tamanho de VM do AzureAzure VM Size
Servidor de Relatórios do Power BI (Pequeno)Power BI Report Server (Small) 8 núcleos8 Cores 32 GB32 GB Standard_D8S_v3Standard_D8S_v3
Servidor de Relatórios do Power BI (Grande)Power BI Report Server (Large) 16 núcleos16 Cores 64 GB64 GB vStandard_D16S_v3vStandard_D16S_v3

2 Executar a ferramenta LoadTest2 Run the LoadTest tool

Para executar a ferramenta LoadTest do Reporting Services em uma implantação própria ou do Microsoft Azure do Servidor de Relatórios do Power BI, faça o seguinte: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. Clone o projeto Reporting Services LoadTest do GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. No diretório do projeto, você encontrará um arquivo de solução chamado RSLoadTests.sln.In the project directory, you will find a solution file called RSLoadTests.sln. Abra esse arquivo no Visual Studio 2015 ou posterior.Open this file in Visual Studio 2015 or later.
  3. Determine se deseja executar essa ferramenta em sua implantação do Servidor de Relatórios do Power BI ou em uma implantação do Servidor de Relatórios do Power BI no 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. Se você pretende executá-la em sua implantação, vá para a etapa 5.If you are going to run it against your own deployment, go to step 5.
  4. Siga as instruções apresentadas em https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure para criar um ambiente de Servidor de Relatórios do Power BI no 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. Depois de concluir a implantação do ambiente, siga as instruções apresentadas em https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution para executar os testes.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.

Mais perguntas?More questions? Experimente perguntar à Comunidade do Power BITry asking the Power BI Community