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. 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. このホワイト ペーパーでは、Report Server に対して実行されたさまざまなワークロードの多数のロード テストの結果を示して、Power BI Report Server のキャパシティ プランニングに関するガイダンスをオファーします。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

2 種類のワークロードを Power BI Report Server に対して実行しました。各ワークロードは、異なる種類のレポートの表示と、さまざまな 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.

  • "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.

4 サーバー トポロジの Power BI Report Server を使い、同時にレポート サーバーにアクセスするユーザーは全体の 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 コア/32 GB RAM8 Core/32 GB RAM 16 コア/64 GB RAM16 Core/64 GB RAM
Power BI レポートの処理量が多い (> 60%)Power BI Report Heavy (>60%) 1,000 ユーザー1,000 users 3,000 ユーザー3,000 users
ページ分割された (RDL) レポートの処理量が多い (> 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 ドメイン コントローラー: これは、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. Report Server データベースは、SQL Server データベース エンジンとメモリ、CPU、ネットワーク、およびディスク リソースを競合することがないように、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.

Power BI Report Server と、Active Directory と、関連付けられているデータベースとのリレーションシップを示す図

トポロジで使われた各仮想マシンの詳細な構成については、「付録 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 プロジェクトで誰でも入手できます。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 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
  • さまざまな種類の Web ポータル操作の実行をシミュレートするテスト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 によって) レポート サーバーに 1 つまたは複数の Web 要求を行うことによって実現します。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. たとえば、レポートを表示するには、ユーザーは Web ポータルにアクセスしてレポートがあるフォルダーに移動し、レポートをクリックして表示する必要があります。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.

注意

このツールは Microsoft によって正式にサポートされていませんが、製品チームはプロジェクトに協力し、他の共同作成者によって提起された問題に回答します。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.

ワークロードWorkloads

テストで使われているワークロード プロファイルには、次の 2 種類があります。Power BI レポートの処理量が多いものと、ページ分割されたレポートの処理量が多いものです。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 レポートの処理量が多い、実行の頻度Power BI Report Heavy, Frequency of occurrence ページ分割されたレポートの処理量が多い、実行の頻度Paginated Report Heavy, Frequency of occurrence
Power BI レポートの表示Rendering Power BI reports 60%60% 10%10%
ページ分割された (RDL) レポートの表示Rendering paginated (RDL) reports 30%30% 60%60%
モバイル レポートの表示Rendering mobile reports 5%5% 20%20%
Web ポータルの操作Web portal operations 5%5% 10%10%

ユーザー ロードUser load

各テストは、2 つのワークロードのいずれかで指定された頻度に基づいて実行されました。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 コア/32 GB8 Core/32 GB 16 コア/64 GB16 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

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 コア/32 GB8 Core/32 GB 16 コア/64 GB16 Core/64 GB
Power BI レポートの処理量が多いPower BI Report Heavy 1,000 ユーザー1,000 users 3,000 ユーザー3,000 users
ページ分割されたレポートの処理量が多いPaginated Report Heavy 2,000 ユーザー2,000 users 3,200 ユーザー3,200 users

概要Summary

各ロード テストの実行で、Power BI Report Server マシンのピーク負荷時に最も負荷がかかるリソースは CPU でした。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. 各 VM サイズについて詳しくは、「汎用」セクションを参照してください。You can find detailed information about each VM size under the "General Purpose" section.

仮想マシンの種類Virtual Machine Type プロセッサProcessor メモリMemory Azure VM のサイズAzure VM Size
Active Directory ドメイン コントローラーActive Directory Domain Controller 2 コア2 Cores 7 GB7 GB Standard_DS2_v2Standard_DS2_v2
SQL Server データベース エンジンと Analysis ServicesSQL Server Database Engine and Analysis Services 16 コア16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2
SQL Server データベースReport Server Database 16 コア16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Power BI Report Server の仮想マシンの構成1.2 Power BI Report Server Virtual Machine Configuration

Power BI Report Server をホストする仮想マシンには、異なる構成のプロセッサとメモリを使いました。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. この VM サイズについて詳しくは、「汎用」セクションを参照してください。You can find detailed information about this VM size under the "General Purpose" section

仮想マシンVirtual Machine プロセッサProcessor メモリMemory Azure VM のサイズAzure VM Size
Power BI Report Server (小)Power BI Report Server (Small) 8 コア8 Cores 32 GB32 GB Standard_D8S_v3Standard_D8S_v3
Power BI Report Server (大)Power BI Report Server (Large) 16 コア16 Cores 64 GB64 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 から Reporting Services LoadTest プロジェクトを複製します (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 Report Server のオンプレミスの展開または 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 の指示に従って、Azure に Power BI Report Server 環境を作成します。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