A Power BI jelentéskészítő kiszolgáló kapacitástervezési útmutatójaCapacity planning guidance for Power BI Report Server

A Power BI jelentéskészítő kiszolgáló olyan önkiszolgáló BI és céges jelentéskészítő megoldás, amelyet az ügyfelek helyben telepíthetnek a saját tűzfal mögé.Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. A Power BI Desktop interaktív jelentéskészítő képességét kombinálja az SQL Server Reporting Services helyi kiszolgálói platformjával.It combines the interactive report capability of Power BI Desktop with the on-premises server platform of SQL Server Reporting Services. Az elemzések és a jelentések gyakori és növekvő céges használatának köszönhetően a hardveres infrastruktúrák és a vállalati felhasználói bázis skálázásához szükséges szoftverlicencek költségbecslése kihívást jelenthet.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. Ez a tanulmány útmutatást nyújt a Power BI jelentéskészítő kiszolgáló kapacitástervezéséhez. Ehhez számos olyan terhelésteszt eredményét osztja meg, amelyek során különböző számítási feladatokat futtattak egy jelentéskiszolgálón.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. Bár a cégek jelentései, lekérdezései és használati mintái eltérőek lehetnek, a jelen dokumentumban ismertetett eredmények – a ténylegesen használt tesztekkel és a végrehajtásuk részletes bemutatásával – hivatkozási pontként szolgálnak bárkinek, aki a Power BI jelentéskészítő kiszolgáló üzembe helyezésének korai tervezési szakaszában van.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.

Vezetői összefoglalóExecutive summary

Két különböző típusú számítási feladatot hajtottunk végre a Power BI jelentéskészítő kiszolgáló használatával; mindkét számítási feladat különböző típusú jelentések megjelenítéséből, valamint különböző webportálos műveletek végrehajtásából állt.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.

  • A „Power BI-jelentés (nagy erőforrásigényű)” számítási feladatban a leggyakrabban végrehajtott művelet (azaz az időszak 60%-ában végrehajtott művelet) a Power BI-jelentések megjelenítése volt.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.
  • Az „Oldalakra osztott jelentés (nagy erőforrásigényű)” számítási feladatban a leggyakrabban végrehajtott művelet az oldalakra osztott jelentések megjelenítése volt.In "Paginated Report Heavy" workload, the most frequently executed operation was rendering paginated reports.

A Power BI jelentéskészítő kiszolgáló topológiáján alapulva, valamint azt feltételezve, hogy a felhasználók legfeljebb 5%-a fér hozzá egyszerre a jelentéskészítő kiszolgálóhoz, az alábbi táblázat azoknak a felhasználóknak a maximális számát tartalmazza, akiket a Power BI jelentéskészítő kiszolgáló legalább 99%-os megbízhatósággal kezelni tud.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.

Számítási feladatWorkload 8 mag, 32 GB RAM8 Core/32 GB RAM 16 mag, 64 GB RAM16 Core/64 GB RAM
Power BI-jelentés (nagy erőforrásigényű) (>60%)Power BI Report Heavy (>60%) 1000 felhasználó1,000 users 3000 felhasználó3,000 users
Többoldalas jelentés (nagy erőforrásigényű) (>60%)Paginated (RDL) Report Heavy (>60%) 2000 felhasználó2,000 users 3200 felhasználó3,200 users

Mindegyik körben a leginkább kihasznált erőforrás a CPU volt.In each run, the most overwhelmed resource was CPU. Ezért a Power BI jelentéskészítő kiszolgáló magjainak számának növelésével jobb eredmény érhető el a rendszer megbízhatóságát tekintve, legalábbis a memória vagy a merevlemez-terület növeléséhez képest.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.

Tesztelési módszerTest methodology

A használt tesztelési topológia a szállítóspecifikus fizikai hardver helyett a Microsoft Azure Virtual Machines használatán alapult.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Minden gép üzemeltetése egyesült államokbeli régiókban történt.All machines were hosted in US regions. Ez a helyi és a nyilvános felhőbeli hardvervirtualizálások általános trendjét tükrözi.This reflects the general trend of hardware virtualization both on-premises and in the public cloud.

A Power BI jelentéskészítő kiszolgáló topológiájaPower BI Report Server topology

A Power BI jelentéskészítő kiszolgáló üzemelő példánya az alábbi virtuális gépekből állt:The Power BI Report Server deployment consisted of the following virtual machines:

  • Active Directory-tartományvezérlő: az SQL Server adatbázismotor, az SQL Server Analysis Services és a Power BI jelentéskészítő kiszolgáló igényelte ezt az összes kérés biztonságos hitelesítéséhez.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 adatbázismotor és SQL Server Analysis Services: itt tároltuk a jelentések megjelenítésekor használt összes adatbázist.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 jelentéskészítő kiszolgálóPower BI Report Server
  • A Power BI jelentéskészítő kiszolgáló adatbázisa.Power BI Report Server Database. A jelentéskészítő kiszolgáló adatbázisa a Power BI jelentéskészítő kiszolgálótól eltérő gépen található, így annak nem kell osztoznia az SQL Server adatbázismotorral a memórián, a CPU-n, a hálózaton és a lemezerőforrásokon.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.

A Power BI Jelentéskészítő kiszolgáló, az Active Directory és a társított adatbázisok közötti kapcsolatok diagramja.

A topológiában használt egyes virtuális gépek átfogó konfigurálásával kapcsolatban lásd: 1.1. függelék – A Power BI jelentéskészítő kiszolgáló topológiája és 1.2. függelék – A Power BI jelentéskészítő kiszolgáló virtuálisgép-konfigurációja.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.

TesztekTests

A terhelési műveletekben használt tesztek nyilvánosan elérhetők a Reporting Services LoadTest nevű GitHub-projektben.The tests used in the load test runs are publicly available in a GitHub project called Reporting Services LoadTest. Ez az eszköz lehetővé teszi a felhasználóknak az SQL Server Reporting Services és a Power BI jelentéskészítő kiszolgáló teljesítményre, megbízhatóságra, skálázhatóságra és helyreállíthatósági jellemzőkre vonatkozó adatainak tanulmányozását.This tool allows users to study the performance, reliability, scalability and recoverability characteristics of SQL Server Reporting Services and Power BI Report Server. A projekt négy csoportba tartozó teszteseteket tartalmaz:This project consists of four groups of test cases:

  • Power BI-jelentések megjelenítését szimuláló tesztek.Tests simulating rendering Power BI reports,
  • Mobiljelentések megjelenítését szimuláló tesztek.Tests simulating rendering mobile reports,
  • Kicsi és nagy, többoldalas jelentések megjelenítését szimuláló tesztek.Tests simulating rendering small and large paginated reports, and
  • Különböző típusú webportálos műveletek végrehajtását szimuláló tesztek.Tests simulating performing various types of web portal operations.

Minden tesztet úgy írtak meg, hogy alkalmas legyen teljes körű műveletek végrehajtására (jelentések megjelenítése, új adatforrások létrehozása stb.).All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Mindez legalább egy webkérés jelentéskészítő kiszolgálónak való elküldésével valósul meg (API-kon keresztül).They accomplish this by making one or more web requests to the report server (via APIs). A valós életben a felhasználónak néhány köztes műveletet is el kellhet végeznie az ilyen teljes körű műveletek végrehajtásakor.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Például egy jelentés megjelenítéséhez a felhasználónak meg kell nyitnia a webportált és a jelentést tartalmazó mappát, majd a jelentésre kattintva kell megjelenítenie azt.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. Bár a tesztek nem végzik el a teljes körű feladatok végrehajtásához szükséges összes műveletet, jól szimulálják a Power BI jelentéskészítő kiszolgálót érő terhelés nagy részét.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. A GitHub-projekt tanulmányozásával megismerheti a felhasznált jelentések különböző típusait, valamint az elvégzett különböző műveleteket.You can learn more about the different types of reports used as well as the variety of operations performed by exploring the GitHub project.

Megjegyzés

A Microsoft nem támogatja hivatalosan az eszközt, de a termék csapata hozzájárul a projekthez, és válaszol a más közreműködők által felvetett problémákra.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.

Számítási feladatokWorkloads

A teszteléshez két számítási profil használható: Power BI-jelentés (nagy erőforrásigényű) és lapszámozott jelentés (nagy erőforrásigényű).There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. Az alábbi táblázat a jelentéskészítő kiszolgálón végrehajtott kérések eloszlását ismerteti.The table below describes the distribution of requests executed against the Report Server.

TevékenységActivity Power BI-jelentés (nagy erőforrásigényű), előfordulás gyakoriságaPower BI Report Heavy, Frequency of occurrence Többoldalas jelentés (nagy erőforrásigényű), előfordulás gyakoriságaPaginated Report Heavy, Frequency of occurrence
Power BI-jelentések megjelenítéseRendering Power BI reports 60%60% 10%10%
Többoldalas jelentések megjelenítéseRendering paginated (RDL) reports 30%30% 60%60%
Mobiljelentések megjelenítéseRendering mobile reports 5%5% 20%20%
Webportálos műveletekWeb portal operations 5%5% 10%10%

Felhasználói terhelésUser load

Minden egyes tesztfuttatás során a végrehajtott tesztek a két számítási feladatban meghatározott gyakoriságon alapultak.For each test run, tests were executed based on the frequency specified in one of the two workloads. A tesztek 20 egyidejű felhasználó jelentéskészítő kiszolgálónak küldött kérésével indultak.Tests started with 20 concurrent user requests to the report server. A rendszer ezután fokozatosan emelte a felhasználói terhelést, amíg a megbízhatóság a 99%-os célérték alá nem csökkent.The user load was then gradually increased until reliability dropped below the 99% target.

EredményekResults

Egyidejű felhasználói kapacitásConcurrent user capacity

Ahogyan korábban hangsúlyoztuk, a tesztek 20 egyidejű felhasználó jelentéskészítő kiszolgálónak küldött kérésével indultak.As stated earlier, tests started with 20 concurrent users making requests to the report server. Az egyidejű felhasználók számát a rendszer ezután fokozatosan növelte az összes kérés 1%-ának sikertelen végrehajtásáig.The number of concurrent users was then gradually increased until 1% of all requests were failing. Az alábbi táblázatban lévő eredmények az egyidejű felhasználói kérések azon mennyiségét mutatják, amelyet a kiszolgáló csúcsterhelés alatt legfeljebb 1%-os hibaaránnyal kezelni tud.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%.

Számítási feladatWorkload 8 mag, 32 GB RAM8 Core/32 GB 16 mag, 64 GB RAM16 Core/64 GB
Power BI-jelentés (nagy erőforrásigényű)Power BI Report Heavy 50 egyidejű felhasználó50 concurrent users 150 egyidejű felhasználó150 concurrent users
Többoldalas jelentés (nagy erőforrásigényű)Paginated Report Heavy 100 egyidejű felhasználó100 concurrent users 160 egyidejű felhasználó160 concurrent users

Teljes felhasználói kapacitásTotal user capacity

A Microsoftnál több csoport használja éles környezetben a Power BI jelentéskészítő kiszolgálót.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. A környezet tényleges használatának elemzésekor azt figyeltük meg, hogy az egy adott időpontban egyidejű felhasználók száma (akár a napi csúcsterhelés során is) általában nem haladja meg a teljes felhasználói bázis 5%-át.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. Az 5%-os egyidejűségi arányt alapként használva extrapoláltuk azt a teljes felhasználói bázist, amelyet a Power BI jelentéskészítő kiszolgáló 99%-os megbízhatósággal kezelni tud.Using this 5% concurrency ratio as a benchmark, we extrapolated the total user base Power BI Report Server could handle with 99% reliability.

Számítási feladatWorkload 8 mag, 32 GB RAM8 Core/32 GB 16 mag, 64 GB RAM16 Core/64 GB
Power BI-jelentés (nagy erőforrásigényű)Power BI Report Heavy 1000 felhasználó1,000 users 3000 felhasználó3,000 users
Többoldalas jelentés (nagy erőforrásigényű)Paginated Report Heavy 2000 felhasználó2,000 users 3200 felhasználó3,200 users

ÖsszefoglalásSummary

A futtatott terheléstesztekben a CPU volt a leginkább kihasznált erőforrás a Power BI jelentéskészítő kiszolgálót üzemeltető gép csúcsterhelésekor.For each load test run, CPU was the most overwhelmed resource at the point of peak load on the Power BI Report Server machine. Ezért az erőforrások közül először a magok számát érdemes növelni.Due to this, the first resource that should be increased is the number of cores. Alternatív megoldásként fontolóra vehető a szolgáltatás kiterjesztése további, Power BI jelentéskészítő kiszolgálót üzemeltető kiszolgálók topológiába való felvételével.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

A jelen dokumentumban ismertetett eredmények adott adatkészletet használó adott jelentések adott módon ismételt végrehajtásából származnak.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. Hasznos hivatkozási pontként szolgálnak, de vegye figyelembe, hogy a használat függ a jelentésektől, a lekérdezésektől, a használati mintáktól és a Power BI jelentéskészítő kiszolgáló üzemelő példányától is.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.

FüggelékAppendix

1. Topológia1 Topology

1.1. A Power BI jelentéskészítő kiszolgáló topológiája1.1 Power BI Report Server Topology

Annak céljából, hogy a különböző konfigurációkban kizárólag a Power BI jelentéskészítő kiszolgáló viselkedését tudjuk vizsgálni, az egyes típusú gépek VM-konfigurációja rögzített volt (kivéve a Power BI jelentéskészítő kiszolgálót üzemeltető gépet).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. Mindegyik gép üzembe helyezése a második generációs (v2), Premium Storage-lemezekkel felszerelt, D sorozatú gépeknek megfelelően történt.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. Az egyes virtuálisgép-méretekről a weblap általános célú felhasználást ismertető szakaszában talál részletes információkat.You can find detailed information about each VM size under the "General Purpose" section.

Virtuális gép típusaVirtual Machine Type ProcesszorProcessor MemóriaMemory Azure-beli virtuális gép méreteAzure VM Size
Active Directory-tartományvezérlőActive Directory Domain Controller 2 mag2 Cores 7 GB7 GB Standard_DS2_v2Standard_DS2_v2
SQL Server adatbázismotor és Analysis ServicesSQL Server Database Engine and Analysis Services 16 mag16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2
A jelentéskészítő kiszolgáló adatbázisaReport Server Database 16 mag16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2. A Power BI jelentéskészítő kiszolgáló virtuálisgép-konfigurációja1.2 Power BI Report Server Virtual Machine Configuration

Különböző konfigurációjú processzorokat és memóriát használtunk a Power BI jelentéskészítő kiszolgálót üzemeltető virtuális gépen.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. A többi virtuális géptől eltérően ennek a gépnek az üzembe helyezése a harmadik generációs (v3), Premium Storage-lemezekkel felszerelt, D sorozatú gépeknek megfelelően történt.Unlike the other VMs, this machine was provisioned according to the third-generation (v3) D Series Machines with Premium Storage Disks. Erről a virtuálisgép-méretről a weblap általános célú felhasználást ismertető szakaszában talál részletes információkat.You can find detailed information about this VM size under the "General Purpose" section

Virtuális gépVirtual Machine ProcesszorProcessor MemóriaMemory Azure-beli virtuális gép méreteAzure VM Size
Power BI jelentéskészítő kiszolgáló (kicsi)Power BI Report Server (Small) 8 mag8 Cores 32 GB32 GB Standard_D8S_v3Standard_D8S_v3
Power BI jelentéskészítő kiszolgáló (nagy)Power BI Report Server (Large) 16 mag16 Cores 64 GB64 GB vStandard_D16S_v3vStandard_D16S_v3

2. A LoadTest eszköz futtatása2 Run the LoadTest tool

Ha futtatni szeretné a Reporting Services LoadTest eszközt a saját vagy egy Microsoft Azure-beli Power BI jelentéskészítő kiszolgálón, kövesse az alábbi lépéseket.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. Klónozza a Reporting Services LoadTest nevű projektet a GitHubon (https://github.com/Microsoft/Reporting-Services-LoadTest) ).Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. A projekt könyvtárában található egy RSLoadTests.sln nevű megoldásfájl.In the project directory, you will find a solution file called RSLoadTests.sln. Nyissa meg ezt a fájlt a Visual Studio 2015-ös vagy újabb verziójában.Open this file in Visual Studio 2015 or later.
  3. Döntse el, hogy az eszközt a Power BI jelentéskészítő kiszolgáló saját üzemelő példányán vagy egy Microsoft Azure-beli Power BI jelentéskészítő kiszolgálón kívánja-e futtatni.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. Ha saját üzemelő példányon szeretné futtatni, ugorjon az 5. lépésre.If you are going to run it against your own deployment, go to step 5.
  4. Hozzon létre egy Power BI jelentéskészítő kiszolgálói környezetet az Azure-ban a https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure lap utasításait követve.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. Miután végzett a környezet üzembe helyezésével, kövesse a https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution weblapon található utasításokat a tesztek futtatásához.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.

További kérdései vannak?More questions? Kérdezze meg a Power BI közösségétTry asking the Power BI Community