Power BI Report Server에 대한 용량 계획 지침Capacity planning guidance for Power BI Report Server

Power BI Report Server는 셀프 서비스 BI 및 엔터프라이즈 보고 솔루션으로써 고객이 방화벽을 넘어 온-프레미스에 배포할 수 있습니다.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. 이 기능은 SQL Server Reporting Services의 온-프레미스 서버 플랫폼과 Power BI Desktop의 대화형 보고 기능을 결합했습니다.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 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.

실행 요약Executive summary

Power BI Report Server에 대해 두 가지 유형의 워크로드를 실행했습니다. 각 워크로드는 다양한 웹 포털 작업을 수행하는 작업과 여러 종류의 보고서를 렌더링하는 작업으로 이루어져 있습니다.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 Report Heavy" 워크로드에서 가장 자주 실행된 작업(즉, 시간 중 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.
  • "Paginated Report Heavy" 워크로드에서 가장 자주 실행된 작업은 페이지가 매겨진 보고서를 렌더링하는 작업입니다.In “Paginated Report Heavy” workload, the most frequently executed operation was rendering paginated reports.

다음 표는 Power BI Report Server에 4개의 서버 토폴로지가 있고 한 번에 5% 미만의 사용자가 보고서 서버에 액세스한다는 가정 하에서 Power BI Report Server에서 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.

워크로드Workload 8개 코어/32GB RAM8 Core/32 GB RAM 16개 코어/64GB RAM16 Core/64 GB RAM
Power BI Report Heavy(>60%)Power BI Report Heavy (>60%) 사용자 1,000명1,000 users 사용자 3,000명3,000 users
Paginated (RDL) Report Heavy(>60%)Paginated (RDL) Report Heavy (>60%) 사용자 2,000명2,000 users 사용자 3,200명3,200 users

각 실행에서 가장 많이 사용되는 리소스는 CPU였습니다.In each run, the most overwhelmed resource was CPU. 이로 인해 Power BI Report Server에 대한 코어 수를 늘리면 메모리 또는 하드 디스크 공간의 크기를 늘리는 경우보다 시스템의 안정성이 향상됩니다.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 Virtual Machines에 기반했습니다.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 BI Report Server 토폴로지Power BI Report Server topology

Power BI Report Server 배포는 다음과 같은 가상 컴퓨터의로 구성되었습니다.The Power BI Report Server deployment consisted of the following virtual machines:

  • Active Directory Domain Controller: SQL Server 데이터베이스 엔진, SQL Server Analysis Services 및 Power BI Report Server에서 모든 요청을 안전하게 인증해야 합니다.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 Report Server 데이터베이스Power BI Report Server Database. 메모리, CPU, 네트워크 및 디스크 리소스를 SQL Server 데이터베이스 엔진과 경쟁하지 않아도 되도록 보고서 서버 데이터베이스는 Power BI Report 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 Report Server 토폴로지 및 부록 1.2 Power BI Report Server 가상 컴퓨터 구성을 참조하세요.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

부하 테스트 실행에 사용되는 테스트는 Reporting Services LoadTest라는 GitHub 프로젝트에서 공개적으로 제공됩니다(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). 사용자는 이 도구를 사용하여 SQL Server Reporting Services 및 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. 이 프로젝트는 테스트 사례의 4개 그룹으로 구성됩니다.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 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 . 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

테스트에 사용되는 Power BI Report Heavy 및 Paginated Report Heavy라는 2가지 워크로드 프로필이 있습니다.There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. 다음 표에서는 Report Server에 대해 실행되는 요청의 분포를 설명합니다.The table below describes the distribution of requests executed against the Report Server.

활동Activity Power BI Report Heavy, 발생 빈도Power BI Report Heavy, Frequency of occurrence Paginated Report Heavy, 발생 빈도Paginated Report Heavy, Frequency of occurrence
Power BI 보고서 렌더링Rendering Power BI reports 60%60% 10%10%
Rendering paginated (RDL) 보고서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. 테스트는 Report Server에 대한 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

앞서 설명한 대로 테스트는 Report Server에 대한 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개 코어/32GB8 Core/32 GB 16개 코어/64GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 동시 사용자 50명50 concurrent users 동시 사용자 150명150 concurrent users
Paginated Report HeavyPaginated Report Heavy 동시 사용자 100명100 concurrent users 동시 사용자 160명160 concurrent users

총 사용자 용량Total user capacity

Microsoft에는 여러 팀이 사용한 Power BI Report Server의 프로덕션 배포가 있습니다.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 Report Server 총 사용자가 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개 코어/32GB8 Core/32 GB 16개 코어/64GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 사용자 1,000명1,000 users 사용자 3,000명3,000 users
Paginated Report HeavyPaginated Report Heavy 사용자 2,000명2,000 users 사용자 3,200명3,200 users

결과 보기View results

부하 테스트의 결과를 보려는 보고서를 선택합니다.Select a report to view the results of the load test.

워크로드Workload 8개 코어/32GB8 Core/32 GB 16개 코어/64GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 보기 - 8개 코어View - 8 core 보기 - 16개 코어View - 16 core
Paginated Report HeavyPaginated Report Heavy 보기 - 8개 코어View - 8 core 보기 - 16개 코어View - 16 core

요약Summary

각 부하 테스트 실행의 경우 CPU는 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. 이로 인해 늘려야 하는 첫 번째 리소스는 코어 수입니다.Due to this, the first resource that should be increased is the number of cores. 또는 토폴로지에서 Power BI Report Server를 호스팅하는 더 많은 서버를 추가하여 확장을 고려할 수 있습니다.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 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.

부록Appendix

1 토폴로지1 Topology

1.1 Power BI Report Server 토폴로지1.1 Power BI Report Server Topology

다양한 구성에서 Power BI Report Server 동작에만 초점을 맞추려면 (Power BI Report Server를 호스팅하는 컴퓨터를 제외한) 컴퓨터의 각 형식에 대한 VM 구성이 수정되었습니다.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. 각 컴퓨터는 Premium Storage 디스크에서 2세대(v2) D 시리즈 컴퓨터에 따라 프로비전되었습니다.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/의 "범용" 섹션 아래에서 각 VM 크기에 대한 자세한 정보를 찾을 수 있습니다.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 Azure VM 크기Azure VM Size
Active Directory 도메인 액세스Active Directory Domain Controller 2개 코어2 Cores 7GB7 GB Standard_DS2_v2Standard_DS2_v2
SQL Server 데이터베이스 엔진 및 Analysis ServicesSQL Server Database Engine and Analysis Services 16개 코어16 Cores 56GB56 GB Standard_DS5_v2Standard_DS5_v2
Report Server 데이터베이스Report Server Database 16개 코어16 Cores 56GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Power BI Report Server Virtual Machine 구성1.2 Power BI Report Server Virtual Machine Configuration

Power BI Report Server를 호스팅하는 Virtual Machine에 다른 구성의 프로세서 및 메모리가 사용되었습니다.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. 다른 VM과 달리 이 컴퓨터는 Premium Storage 디스크에서 3세대(v3) D 시리즈 컴퓨터에 따라 프로비전되었습니다.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/의 "범용" 섹션 아래에서 이 VM 크기에 대한 자세한 정보를 찾을 수 있습니다.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 Azure VM 크기Azure VM Size
Power BI Report Server(소규모)Power BI Report Server (Small) 8개 코어8 Cores 32GB32 GB Standard_D8S_v3Standard_D8S_v3
Power BI Report Server(대규모)Power BI Report Server (Large) 16개 코어16 Cores 64GB64 GB vStandard_D16S_v3vStandard_D16S_v3

2 LoadTest 도구 실행2 Run the LoadTest tool

Power BI Report Server의 Microsoft Azure 배포에 대해 Reporting Services LoadTest 도구를 실행하려는 경우 다음 단계를 수행합니다.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. GitHub(https://github.com/Microsoft/Reporting-Services-LoadTest)에서 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. Microsoft Azure에서 Power BI Report Server 배포에 대해 이 도구를 실행할지 아니면 Power BI Report Server 배포에 대해 이 도구를 실행할지를 결정합니다.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. Azure에서 Power BI Report Server 환경을 만들려면 https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-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. 환경의 배포를 마치면 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