Power BI Rapor Sunucusu için kapasite planlaması rehberiCapacity planning guidance for Power BI Report Server

Power BI Rapor Sunucusu, müşterilerin şirketi içinde güvenlik duvarlarının arkasında dağıtabileceği bir self servis BI ve kurumsal raporlama çözümüdür.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'ın etkileşimli rapor işlevleriyle SQL Server Reporting Services'in şirket içi sunucu platformunu birleştirir.It combines the interactive report capability of Power BI Desktop with the on-premises server platform of SQL Server Reporting Services. Kuruluşlarda analiz ve raporlama kullanımının yoğun ve artan kullanımıyla birlikte, kurumsal kullanıcılar için ölçeklenmesi gereken donanım altyapısının ve yazılım lisanslarının karşılanması zorlaşabilir.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. Bu makalede, bir rapor sunucusundaki çeşitli iş yüklerine ilişkin çok sayıda yük testi yürütmesinin sonuçları paylaşılarak, Power BI Rapor Sunucusu için kapasite planlamaya yönelik rehberlik sunmak amaçlanmaktadır.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. Kuruluşların raporları, sorguları ve kullanım desenleri büyük çapta değişiklik göstermekle birlikte; kullanılan testler ve testlerin nasıl yürütüldüğüne ilişkin ayrıntılı bir açıklamayla birlikte bu makalede ortaya konulan sonuçlar, Power BI Rapor Sunucusu dağıtma işleminin ilk aşamalarından olan planlama sürecindeki bir kişi için başvuru noktası oluşturur.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.

Yürütmeye ilişkin özetExecutive summary

Power BI Rapor Sunucusu'nda, her biri çeşitli web portalı işlemlerinin gerçekleştirilmesinin yanı sıra farklı türlerde raporların işlenmesini içerecek şekilde, iki farklı türde iş yükü yürüttük.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" iş yükünde, en sık olarak yürütülen işlem (toplam sürenin %60'ında yürütülen işlem) Power BI raporu işlemeydi.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" iş yükünde ise en sık yürütülen işlem sayfalandırılmış raporlar işlemeydi.In “Paginated Report Heavy” workload, the most frequently executed operation was rendering paginated reports.

Dört sunuculuk bir Power BI Rapor Sunucusu topolojisinde, herhangi bir anda kullanıcıların en fazla %5'inin rapor sunucusuna erişeceği yönündeki beklentiyle gerçekleştirilen testler sonucunda ortaya çıkan aşağıdaki tabloda, Power BI Rapor Sunucusu'nun en az %99'luk güvenilirlikle hizmet sunabileceği maksimum kullanıcı sayısı gösterilmiştir.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.

İş YüküWorkload 8 Çekirdek/32 GB RAM8 Core/32 GB RAM 16 Çekirdek/64 GB RAM16 Core/64 GB RAM
Power BI Report Heavy (>%60)Power BI Report Heavy (>60%) 1.000 kullanıcı1,000 users 3.000 kullanıcı3,000 users
Paginated (RDL) Report Heavy (>%60)Paginated (RDL) Report Heavy (>60%) 2.000 kullanıcı2,000 users 3.200 kullanıcı3,200 users

Her bir çalıştırmada en yoğun olarak kullanılan kaynak CPU'ydu.In each run, the most overwhelmed resource was CPU. Bu nedenle, Power BI Rapor Sunucusu'na yönelik çekirdek sayısının artırılması, bellek veya sabit disk alanının artırılmasına kıyasla sistemin güvenilirliği konusunda daha yüksek bir kazanım elde edilmesini sağlar.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 metodolojisiTest methodology

Kullanılan test topolojisinde, satıcıya özgü fiziksel donanım yerine Microsoft Azure Sanal Makineler temel alınmıştır.The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. Tüm makineler ABD bölgelerinde barındırılmıştır.All machines were hosted in US regions. Bu, hem şirket içindeki hem de genel buluttaki yaygın donanım sanallaştırma eğilimlerini yansıtır.This reflects the general trend of hardware virtualization both on-premises and in the public cloud.

Power BI Rapor Sunucusu topolojisiPower BI Report Server topology

Power BI Rapor Sunucusu dağıtımında aşağıdaki sanal makineler yer almıştır:The Power BI Report Server deployment consisted of the following virtual machines:

  • Active Directory Etki Alanı Denetleyicisi: Bu, SQL Server Veritabanı Altyapısı, SQL Server Analysis Services ve Power BI Rapor Sunucusu'nun tüm isteklere yönelik olarak güvenli bir şekilde kimlik doğrulaması gerçekleştirmesi için gereken sanal makinedir.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 Veritabanı Altyapısı ve SQL Server Analysis Services: Bu, rapor işleme gerçekleştirirken kullandığımız raporlara ilişkin veritabanlarını depoladığımız yerdir.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 Rapor SunucusuPower BI Report Server
  • Power BI Rapor Sunucusu Veritabanı.Power BI Report Server Database. Rapor sunucusu veritabanı Power BI Rapor Sunucusu yerine farklı bir makinede barırındırılmıştır, bu sayede; bellek, CPU, ağ ve disk kaynaklarını SQL Server Veritabanı Altyapısı ile paylaşması gerekmez.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.

Topolojide kullanılan her bir sanal makinenin yapılandırmasını ayrıntılı bir şekilde görmek için Ek 1.1 Power BI Rapor Sunucusu Topolojisi ve Ek 1.2 Power BI Sunucusu Sanal Makine Yapılandırması bölümlerine bakın.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.

TestlerTests

Yük testi çalıştırmalarında kullanılan testlere, Reporting Services LoadTest olarak adlandırılan GitHub projesinden ulaşılabilir.The tests used in the load test runs are publicly available in a GitHub project called Reporting Services LoadTest. Bu araç, kullanıcıların, SQL Server Reporting Services ve Power BI Rapor Sunucusu'na ilişkin performans, güvenilirlik, ölçeklenebilirlik ve kurtarılabilme özelliklerini incelemesine olanak sağlar.This tool allows users to study the performance, reliability, scalability and recoverability characteristics of SQL Server Reporting Services and Power BI Report Server. Bu proje, dört test çalışması grubundan oluşur:This project consists of four groups of test cases:

  • Power BI raporu işleme işleminin benzetiminin yapıldığı testler,Tests simulating rendering Power BI reports,
  • Mobil raporların işlenmesinin benzetiminin yapıldığı testler,Tests simulating rendering mobile reports,
  • Sayfalandırılmış küçük ve büyük raporların işlenmesinin benzetiminin yapıldığı testler veTests simulating rendering small and large paginated reports, and
  • Çeşitli türlerde web portalı işlemlerinin gerçekleştirilmesinin benzetiminin yapıldığı testler.Tests simulating performing various types of web portal operations.

Tüm testler, uçtan uca bir işlem (rapor işleme, yeni bir veri kaynağı oluşturma vb.) gerçekleştirmeye yönelik olarak yazılmıştır.All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). Bunu, rapor sunucusuna yönelik bir veya daha fazla web isteğinde bulunarak (API'ler aracılığıyla) gerçekleştirirler.They accomplish this by making one or more web requests to the report server (via APIs). Gerçek dünyada, bir kullanıcının bu uçtan uca işlemleri tamamlaması için birkaç ara işlem gerçekleştirmesi gerekebilir.In the real world, a user may need to perform a few intermediate operations to complete one of these end-to-end operations. Örneğin, kullanıcının, bir raporu işlemek için web portalına erişmesi, raporun bulunduğu klasöre gitmesi ve ardından işlemi gerçekleştirmek üzere rapora tıklaması gerekir.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. Testler uçtan uca bir görevi tamamlamak için gereken tüm işlemleri gerçekleştirmese de Power BI Rapor Sunucusu’nun deneyimleyeceği yükü büyük oranda yansıtmaktadır.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 projesini inceleyerek, kullanılan farklı rapor türlerinin yanı sıra gerçekleştirilen çeşitli işlemler hakkında daha fazla bilgi edinebilirsiniz.You can learn more about the different types of reports used as well as the variety of operations performed by exploring the GitHub project.

Not

Araç Microsoft tarafından resmi olarak desteklenmez, ancak ürün ekibi projeye katkıda bulunur ve diğer katkıda bulunanlar tarafından oluşturulan sorunları yanıtlar.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.

İş YükleriWorkloads

Testte kullanılan 2 iş yükü profili vardır: Power BI Report Heavy ve Paginated Report Heavy.There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. Aşağıdaki tabloda, Rapor Sunucusu'na yönelik olarak yürütülen dağıtım istekleri açıklanmıştır.The table below describes the distribution of requests executed against the Report Server.

EtkinlikActivity Power BI Report Heavy, Gerçekleşme sıklığıPower BI Report Heavy, Frequency of occurrence Paginated Report Heavy, Gerçekleşme sıklığıPaginated Report Heavy, Frequency of occurrence
Power BI raporu işlemeRendering Power BI reports %6060% %1010%
Sayfalandırılmış (RDL) rapor işlemeRendering paginated (RDL) reports %3030% %6060%
Mobil rapor işlemeRendering mobile reports %55% %2020%
Web portalı işlemleriWeb portal operations %55% %1010%

Kullanıcı yüküUser load

Her bir test çalıştırması sırasında testler, iki iş yükünden birinde belirtilen sıklığa göre yürütülmüştür.For each test run, tests were executed based on the frequency specified in one of the two workloads. Testler, rapor sunucusuna 20 eş zamanlı kullanıcı isteğinin yönlendirilmesiyle başladı.Tests started with 20 concurrent user requests to the report server. Ardından, kullanıcı yükü, güvenilirlik %99 hedefinin altına düşene kadar kademeli olarak artırıldı.The user load was then gradually increased until reliability dropped below the 99% target.

SonuçlarResults

Eş zamanlı kullanıcı kapasitesiConcurrent user capacity

Daha önce de belirtildiği gibi testler, 20 eş zamanlı kullanıcının rapor sunucusuna istek göndermesiyle başladı.As stated earlier, tests started with 20 concurrent users making requests to the report server. Ardından, eş zamanlı kullanıcı sayısı, tüm isteklerin %1'inin başarısız olduğu bir durum elde edilene kadar kademeli olarak artırıldı.The number of concurrent users was then gradually increased until 1% of all requests were failing. Aşağıdaki tabloda bulunan sonuçlar, tavan yükte sunucunun %1'in altında bir hata oranıyla işleyebileceği eş zamanlı kullanıcı isteği sayısını göstermektedir.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%.

İş YüküWorkload 8 Çekirdek/32 GB8 Core/32 GB 16 Çekirdek/64 GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 50 eş zamanlı kullanıcı50 concurrent users 150 eş zamanlı kullanıcı150 concurrent users
Paginated Report HeavyPaginated Report Heavy 100 eş zamanlı kullanıcı100 concurrent users 160 eş zamanlı kullanıcı160 concurrent users

Toplam kullanıcı kapasitesiTotal user capacity

Microsoft'ta, birkaç ekip tarafından kullanılan bir Power BI Rapor Sunucusu üretim dağıtımına sahibiz.At Microsoft, we have a production deployment of Power BI Report Server that several teams used. Bu ortamın gerçek kullanımını analiz ettiğimizde, herhangi bir zamandaki (tavan yük sırasındaki de dahil) eş zamanlı kullanıcı sayısının kullanıcı tabanı genelinin %5'ini geçmeme eğilimi gösterdiğini gözlemliyoruz.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. Bu %5'lik eş zamanlılık oranını karşılaştırma yapmak için kullanarak, Power BI Rapor Sunucusu'nun %99'luk güvenilirlik oranıyla hizmet sunabileceği toplam kullanıcı tabanına ulaştık.Using this 5% concurrency ratio as a benchmark, we extrapolated the total user base Power BI Report Server could handle with 99% reliability.

İş YüküWorkload 8 Çekirdek/32 GB8 Core/32 GB 16 Çekirdek/64 GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy 1.000 kullanıcı1,000 users 3.000 kullanıcı3,000 users
Paginated Report HeavyPaginated Report Heavy 2.000 kullanıcı2,000 users 3.200 kullanıcı3,200 users

Sonuçları görüntülemeView results

Yük testi sonuçlarını görüntülemek için bir rapor seçin.Select a report to view the results of the load test.

İş YüküWorkload 8 Çekirdek/32 GB8 Core/32 GB 16 Çekirdek/64 GB16 Core/64 GB
Power BI Report HeavyPower BI Report Heavy Görüntüle - 8 çekirdekView - 8 core Görüntüle - 16 çekirdekView - 16 core
Paginated Report HeavyPaginated Report Heavy Görüntüle - 8 çekirdekView - 8 core Görüntüle - 16 çekirdekView - 16 core

ÖzetSummary

Her bir yük testi çalıştırması için, Power BI Rapor Sunucusu makinesindeki tavan yük sırasında en yoğun olarak kullanılan kaynak CPU'ydu.For each load test run, CPU was the most overwhelmed resource at the point of peak load on the Power BI Report Server machine. Bu nedenle, sayısının artırılması gereken ilk kaynak çekirdektir.Due to this, the first resource that should be increased is the number of cores. Alternatif olarak, topolojinize Power BI Rapor Sunucusu'nun barındırıldığı daha fazla sunucu ekleyerek ölçeği genişletmeyi de deneyebilirsiniz.Alternately, you can consider scaling out by adding more servers hosting Power BI Report Server in your topology.

Bu makalede ortaya konulan sonuçlar, belirli veriler kullanılarak özel bir rapor kümesinin belirli bir tekrar deseniyle yürütülmesi sonucunda elde edilmiştir.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. Kullanışlı bir başvuru noktası olan bu sonuçlardan yararlanırken, sizin kullanımınızın, raporlarınıza, sorgularınıza, kullanım desenlerinize ve Power BI Rapor Sunucusu dağıtımınıza göre şekilleneceğini göz önünde bulundurun.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.

EkAppendix

1 Topoloji1 Topology

1.1 Power BI Rapor Sunucusu Topolojisi1.1 Power BI Report Server Topology

Yalnızca farklı yapılandırmalarda görülen Power BI Rapor Sunucusu davranışına odaklanmak üzere, her bir makineye yönelik VM yapılandırması (Power BI Rapor Sunucusu'nun barındırıldığı makine dışında) aynı tutulmuştur.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. Her makine, Premium Depolama Diskleri içeren ikinci nesil (v2) D Serisi makineler temel alınarak hazırlanmıştır.Each machine was provisioned according to the second-generation (v2) D Series machines with Premium Storage Disks. https://azure.microsoft.com/pricing/details/virtual-machines/windows/ sayfasındaki "Genel Amaçlı" bölümünde, her bir VM boyutu ile ilgili ayrıntılı bilgilere ulaşabilirsiniz.You can find detailed information about each VM size under the “General Purpose” section on https://azure.microsoft.com/pricing/details/virtual-machines/windows/.

Sanal Makine TürüVirtual Machine Type İşlemciProcessor BellekMemory Azure VM BoyutuAzure VM Size
Active Directory Etki Alanı DenetleyicisiActive Directory Domain Controller 2 Çekirdek2 Cores 7 GB7 GB Standard_DS2_v2Standard_DS2_v2
SQL Server Veritabanı Altyapısı ve Analysis ServicesSQL Server Database Engine and Analysis Services 16 Çekirdek16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2
Rapor Sunucusu VeritabanıReport Server Database 16 Çekirdek16 Cores 56 GB56 GB Standard_DS5_v2Standard_DS5_v2

1.2 Power BI Rapor Sunucusu Sanal Makine Yapılandırması1.2 Power BI Report Server Virtual Machine Configuration

Power BI Rapor Sunucusu'nun barındırıldığı Sanal Makine için farklı işlemci ve bellek yapılandırmaları kullanılmıştır.Different configurations of processor and memory were used for the Virtual Machine hosting Power BI Report Server. Diğer VM'lerden farklı olarak, bu makine, Premium Depolama Diskleri içeren üçüncü nesil (v3) D Serisi Makineler temel alınarak hazırlanmıştır.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/pricing/details/virtual-machines/windows/ sayfasındaki "Genel Amaçlı" bölümünde, bu VM boyutu ile ilgili ayrıntılı bilgilere ulaşabilirsiniz.You can find detailed information about this VM size under the “General Purpose” section on https://azure.microsoft.com/pricing/details/virtual-machines/windows/.

Sanal MakineVirtual Machine İşlemciProcessor BellekMemory Azure VM BoyutuAzure VM Size
Power BI Rapor Sunucusu (Küçük)Power BI Report Server (Small) 8 Çekirdek8 Cores 32 GB32 GB Standard_D8S_v3Standard_D8S_v3
Power BI Rapor Sunucusu (Büyük)Power BI Report Server (Large) 16 Çekirdek16 Cores 64 GB64 GB vStandard_D16S_v3vStandard_D16S_v3

2 LoadTest aracını çalıştırma2 Run the LoadTest tool

Reporting Services LoadTest aracını Power BI Rapor Sunucusu'na ilişkin Microsoft Azure dağıtımınızda çalıştırmak için aşağıdaki adımları uygulayın.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'daki (https://github.com/Microsoft/Reporting-Services-LoadTest) ) Reporting Services LoadTest projesini kopyalayın.Clone the Reporting Services LoadTest project from GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. Proje dizininde, RSLoadTests.sln adlı bir çözüm dosyası bulunur.In the project directory, you will find a solution file called RSLoadTests.sln. Bu dosyayı Visual Studio 2015 veya sonraki bir sürümünde açın.Open this file in Visual Studio 2015 or later.
  3. Bu aracı Power BI Rapor Sunucusu dağıtımınızda mı yoksa Microsoft Azure'daki bir Power BI Rapor Sunucusu dağıtımında mı çalıştırmak istediğinize karar verin.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. Aracı kendi dağıtımınızda çalıştırmak istiyorsanız 5. adıma gidin.If you are going to run it against your own deployment, go to step 5.
  4. Azure'da bir Power BI Rapor Sunucusu ortamı oluşturmak için https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure bölümünde listelenen yönergeleri izleyin.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. Ortamı dağıtma işlemini tamamladıktan sonra, testleri çalıştırmak üzere https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution sayfasında listelenen yönergeleri uygulayın.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.

Başka bir sorunuz mu var?More questions? Power BI Topluluğu'na sorunTry asking the Power BI Community