Руководство по планированию ресурсов для Сервера отчетов Power BICapacity planning guidance for Power BI Report Server

Сервер отчетов Power BI — это решение самостоятельной бизнес-аналитики и корпоративной отчетности, которое клиенты могут развернуть локально за своим брандмауэром.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. Оно объединяет возможности интерактивных отчетов Power BI Desktop с платформой локального сервера 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. При интенсивном и растущем использовании аналитики и отчетности на предприятиях, формирование бюджета на аппаратную инфраструктуру и лицензии программного обеспечения, необходимого для масштабирования базы пользователей предприятия, может представлять собой сложную задачу.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. В этом документе предоставляется руководство по планированию ресурсов для Сервера отчетов Power BI путем совместного использования результатов выполнения многочисленных нагрузочных тестов различных рабочих нагрузок на сервере отчетов.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. Хотя отчеты, запросы и шаблоны использования организаций могут сильно различаться, результаты, представленные в данном документе, вместе с использованием фактических тестов и подробным описанием того, как они были выполнены, служат в качестве контрольной точки для тех, кто находится на ранней стадии процесса планирования развертывания Сервера отчетов 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.

Сводка по выполнениюExecutive summary

Мы выполним два разных типа рабочей нагрузки на Сервере отчетов Power BI, каждая из которых состоит из подготовки различных типов отчетов к просмотру, а также выполнения различных операций на веб-портале.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.

  • В рабочей нагрузке "Отчет Power BI (активное использование)" наиболее часто выполняющейся операцией (т. е. операцией, выполняемой в течение 60 % всего времени) была подготовка отчетов 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.
  • В рабочей нагрузке "Отчет с разбивкой на страницы (активное использование)" наиболее часто выполняющейся операцией была подготовка отчетов с разбивкой на страницы к просмотру.In “Paginated Report Heavy” workload, the most frequently executed operation was rendering paginated reports.

В следующей таблице представлено максимальное количество пользователей, с которыми может работать сервер отчетов Power BI с надежностью на уровне 99 % (при условии использования четырехсерверной топологии сервера отчетов Power BI, а также, что не более 5 % пользователей будут обращаться к серверу отчетов в любой момент времени).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.

Рабочая нагрузкаWorkload 8 ядер, 32 ГБ ОЗУ8 Core/32 GB RAM 16 ядер, 64 ГБ ОЗУ16 Core/64 GB RAM
Отчет Power BI (активное использование) (>60 %)Power BI Report Heavy (>60%) 1000 пользователей1,000 users 3000 пользователей3,000 users
Отчет с разбивкой на страницы (активное использование) (>60 %)Paginated (RDL) Report Heavy (>60%) 2000 пользователей2,000 users 3200 пользователей3,200 users

При каждом выполнении наиболее используемым ресурсом был ЦП.In each run, the most overwhelmed resource was CPU. Из-за этого увеличение числа ядер на Сервере отчетов Power BI по сравнению с увеличением объема памяти или дискового пространства обеспечит более высокий уровень надежности системы.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.

Методика тестированияTest methodology

Используемая топология тестирования была основана на виртуальных машинах Microsoft Azure, а не на физическом оборудовании поставщика.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Все компьютеры размещались в регионах США.All machines were hosted in US regions. Это отражает общую тенденцию виртуализации аппаратных средств как локально, так и в общедоступном облаке.This reflects the general trend of hardware virtualization both on-premises and in the public cloud.

Топология Сервера отчетов Power BIPower BI Report Server topology

Развертывание Сервера отчетов Power BI состоит из следующих виртуальных машин:The Power BI Report Server deployment consisted of the following virtual machines:

  • Контролер домена Active Directory. Необходим для ядра СУБД SQL Server, SQL Server Analysis Services и Сервера отчетов Power BI, чтобы безопасно проверить подлинность всех запросов.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 и SQL Server Analysis Services. Место, где хранятся все базы данных для использованных отчетов при их подготовке к просмотру.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
  • База данных Сервера отчетов Power BI.Power BI Report Server Database. Базы данных сервера отчетов и сервер отчетов Power BI размещаются на разных компьютерах, чтобы не конкурировать с ядром СУБД SQL Server за память, ЦП, сети и дисковые ресурсы.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.

Дополнительные сведения о полной конфигурации каждого компьютера, использованного в топологии, см. в приложении 1.1 "Топология сервера отчетов Power BI" и приложении 1.2 "Настройка виртуальной машины сервера отчетов 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.

ТестыTests

Тесты, используемые при выполнении нагрузочных тестов, общедоступны в проекте GitHub с названием Reporting Services LoadTest.The tests used in the load test runs are publicly available in a GitHub project called Reporting Services LoadTest. Это средство позволяет пользователям изучить производительность, надежность, масштабируемость и характеристики восстановления SQL Server Reporting Services и Сервера отчетов 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. Этот проект состоит из четырех групп тестовых случаев:This project consists of four groups of test cases:

  • тесты, имитирующие подготовку отчетов Power BI к просмотру;Tests simulating rendering Power BI reports,
  • тесты, имитирующие подготовку мобильных отчетов к просмотру;Tests simulating rendering mobile reports,
  • тесты, имитирующие подготовку больших и маленьких отчетов с разбивкой на страницы к просмотру;Tests simulating rendering small and large paginated reports, and
  • тесты, имитирующие выполнение различных типов операций на веб-портале.Tests simulating performing various types of web portal operations.

Все тесты были написаны для выполнения комплексных операций (таких как подготовка отчета к просмотру, создание источника данных и т. д.).All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Это достигается путем выполнения одного или нескольких веб-запросов к серверу отчетов (через API).They accomplish this by making one or more web requests to the report server (via APIs). На практике пользователю может потребоваться выполнить несколько промежуточных операций для выполнения этих комплексных операций.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Например, чтобы подготовить отчет, пользователю нужно перейти на веб-портал, перейти к папке, где находится отчет, а затем щелкнуть отчет, чтобы подготовить его к просмотру.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. Хотя тесты выполняют не все операции, необходимые для выполнения комплексной задачи, они по-прежнему составляют большую часть нагрузки, которую будет испытывать Сервер отчетов 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. Дополнительные сведения о различных типах используемых отчетов, а также о множестве выполняемых операций можно узнать при изучении проекта 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.

Рабочие нагрузкиWorkloads

Есть 2 профиля рабочей нагрузки, которые используются во время тестирования: "Отчет Power BI (активное использование)" и "Отчет с разбивкой на страницы (активное использование)".There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. В следующей таблице описано распределение запросов, выполняемых на сервере отчетов.The table below describes the distribution of requests executed against the Report Server.

ДействиеActivity Отчет Power BI (активное использование), частота возникновенияPower BI Report Heavy, Frequency of occurrence Отчет с разбивкой на страницы (активное использование), частота возникновенияPaginated Report Heavy, Frequency of occurrence
Подготовка отчетов Power BI к просмотруRendering Power BI reports 60 %60% 10 %10%
Подготовка отчетов с разбивкой на страницы к просмотруRendering paginated (RDL) reports 30 %30% 60 %60%
Подготовка мобильных отчетов к просмотруRendering mobile reports 5 %5% 20 %20%
Операции на веб-порталеWeb portal operations 5 %5% 10 %10%

Пользовательская нагрузкаUser load

Каждый раз тесты выполнялись на основе частоты, указанной в одной из двух рабочих нагрузок.For each test run, tests were executed based on the frequency specified in one of the two workloads. Тесты начались с 20 одновременных запросов пользователей к серверу отчетов.Tests started with 20 concurrent user requests to the report server. Затем пользовательская нагрузка постепенно увеличивалась, пока надежность не упала ниже целевого показателя в 99 %.The user load was then gradually increased until reliability dropped below the 99% target.

РезультатыResults

Количество одновременных пользователейConcurrent user capacity

Как упоминалось ранее, тесты начались с 20 одновременных запросов пользователей к серверу отчетов.As stated earlier, tests started with 20 concurrent users making requests to the report server. Затем количество одновременных пользователей постепенно увеличивалось, пока 1 % всех запросов не завершался неудачно.The number of concurrent users was then gradually increased until 1% of all requests were failing. Результаты в следующей таблице показывают количество одновременных запросов пользователей, которые сервер сможет обрабатывать при максимальной нагрузке с частотой отказов менее 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%.

Рабочая нагрузкаWorkload 8 ядер, 32 ГБ8 Core/32 GB 16 ядер, 64 ГБ16 Core/64 GB
Отчет Power BI (активное использование)Power BI Report Heavy 50 одновременных пользователей50 concurrent users 150 одновременных пользователей150 concurrent users
Отчет с разбивкой на страницы (активное использование)Paginated Report Heavy 100 одновременных пользователей100 concurrent users 160 одновременных пользователей160 concurrent users

Общее количество пользователейTotal user capacity

В корпорации Майкрософт есть рабочее развертывание сервера отчетов Power BI, используемое несколькими командами.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. При анализе фактического использования этой среды мы наблюдаем, что число одновременных пользователей в любой момент времени (даже во время дневных пиковых нагрузок) не превышало 5 % от общего числа пользователей.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. Используя этот 5 % коэффициент параллелизма для измерения производительности, мы вычислили общую базу пользователей, которую сервер отчетов Power BI может обработать с надежностью на уровне 99 %.Using this 5% concurrency ratio as a benchmark, we extrapolated the total user base Power BI Report Server could handle with 99% reliability.

Рабочая нагрузкаWorkload 8 ядер, 32 ГБ8 Core/32 GB 16 ядер, 64 ГБ16 Core/64 GB
Отчет Power BI (активное использование)Power BI Report Heavy 1000 пользователей1,000 users 3000 пользователей3,000 users
Отчет с разбивкой на страницы (активное использование)Paginated Report Heavy 2000 пользователей2,000 users 3200 пользователей3,200 users

Просмотр результатовView results

Выберите отчет для просмотра результатов выполнения нагрузочного теста.Select a report to view the results of the load test.

Рабочая нагрузкаWorkload 8 ядер, 32 ГБ8 Core/32 GB 16 ядер, 64 ГБ16 Core/64 GB
Отчет Power BI (активное использование)Power BI Report Heavy Просмотр: 8 ядерView - 8 core Просмотр: 16 ядерView - 16 core
Отчет с разбивкой на страницы (активное использование)Paginated Report Heavy Просмотр: 8 ядерView - 8 core Просмотр: 16 ядерView - 16 core

СводкаSummary

В каждом нагрузочном тесте ЦП был самым перегруженным ресурсом во время пиковой нагрузки на компьютере Сервера отчетов 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. Поэтому первый ресурс, который стоит увеличить — это число ядер.Due to this, the first resource that should be increased is the number of cores. Кроме того, можно выполнить развертывание, добавив в топологию дополнительные серверы, размещающие сервер отчетов Power BI.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

Результаты, представленные в этом документе, получены при выполнении определенного набора отчетов, использующих определенный набор данных, повторяющихся особым образом.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. Это полезная контрольная точка, но имейте ввиду, что ее использование будет зависеть от отчетов, запросов, шаблонов использования и развертывания Сервера отчетов 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.

ПриложенияAppendix

1. Топология1 Topology

1.1 Топология Сервера отчетов Power BI1.1 Power BI Report Server Topology

Чтобы сосредоточиться исключительно на поведении сервера отчетов Power BI с различными конфигурациями, конфигурации для каждого типа виртуальной машины (за исключением компьютера, на котором размещен сервер отчетов Power BI) были исправлены.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. Каждый компьютер был подготовлен в соответствии с требованиями к компьютерам серии D версии 2 с дисками хранилища класса Premium.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. Подробное описание виртуальных машин каждого размера см. в разделе "Универсальные" на странице https://azure.microsoft.com/en-us/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/.

Тип виртуальной машиныVirtual Machine Type ПроцессорProcessor ПамятьMemory Размер виртуальной машины AzureAzure VM Size
Контроллер домена Active DirectoryActive Directory Domain Controller 2 ядра2 Cores 7 ГБ7 GB Standard_DS2_v2Standard_DS2_v2
Ядро СУБД SQL Server и Analysis ServicesSQL Server Database Engine and Analysis Services 16 ядер16 Cores 56 ГБ56 GB Standard_DS5_v2Standard_DS5_v2
База данных сервера отчетовReport Server Database 16 ядер16 Cores 56 ГБ56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Настройка виртуальной машины сервера отчетов Power BI1.2 Power BI Report Server Virtual Machine Configuration

Для виртуальной машины, на которой размещен сервер отчетов Power BI, были использованы различные конфигурации процессора и памяти.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. В отличие от других виртуальных машин этот компьютер подготовлен в соответствии с требованиями к компьютерам серии D версии 3 с дисками хранилища класса Premium.Unlike the other VMs, this machine was provisioned according to the third-generation (v3) D Series Machines with Premium Storage Disks. Подробное описание виртуальной машины этого размера см. в разделе "Универсальные" на странице https://azure.microsoft.com/en-us/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/.

Виртуальная машинаVirtual Machine ПроцессорProcessor ПамятьMemory Размер виртуальной машины AzureAzure VM Size
Сервер отчетов Power BI (маленький)Power BI Report Server (Small) 8 ядер8 Cores 32 ГБ32 GB Standard_D8S_v3Standard_D8S_v3
Сервер отчетов Power BI (крупный)Power BI Report Server (Large) 16 ядер16 Cores 64 ГБ64 GB vStandard_D16S_v3vStandard_D16S_v3

2. Запуск средства LoadTest2 Run the LoadTest tool

Если нужно запустить средство LoadTest Reporting Services для развертывания сервера отчетов Power BI Microsoft Azure, сделайте следующее.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. Клонируйте проект Reporting Services LoadTest из GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. В каталоге проекта найдите файл решения с именем RSLoadTests.sln.In the project directory, you will find a solution file called RSLoadTests.sln. Откройте этот файл в Visual Studio 2015 или более поздней версии.Open this file in Visual Studio 2015 or later.
  3. Определите, хотите ли вы запустить это средство для развертывания сервера отчетов Power BI или для развертывания сервера отчетов Power BI в 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. Если вы собираетесь выполнить его для собственного развертывания, перейдите к шагу 5.If you are going to run it against your own deployment, go to step 5.
  4. Следуйте указаниям на странице https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure, чтобы создать среду сервера отчетов Power BI в 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. После завершения развертывания в этой среде выполните тесты, следуя указаниям, приведенным на странице https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution.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.

Появились дополнительные вопросы?More questions? Попробуйте задать вопрос в сообществе Power BI.Try asking the Power BI Community