Power BI 報表伺服器的容量規劃指引

Power BI 報表伺服器是一種自助 BI 和企業報告解決方案,客戶可以在其防火牆後方在其內部部署部署。 它會結合 Power BI Desktop 的互動式報表功能與 SQL Server Reporting Services 的內部部署伺服器平臺。 隨著企業內部大量且日益增多的分析與報告使用量,預算調整為企業使用者群所需的硬體基礎結構和軟體授權可能會是一項挑戰。 本檔旨在藉由針對報表伺服器共用許多負載測試執行的結果,為Power BI 報表伺服器提供容量規劃指引。 雖然組織的報表、查詢和使用模式差異很大,但本文中呈現的結果,以及實際使用的測試,以及執行方式的詳細描述,可作為部署Power BI 報表伺服器早期規劃程式中任何人的參考點。

摘要

我們針對Power BI 報表伺服器執行兩種不同類型的工作負載;每個工作負載都包含轉譯不同類型的報表,以及執行各種入口網站作業。

  • 在「Power BI 報表繁重」工作負載中,最常執行的作業(也就是執行了 60% 的作業)正在轉譯 Power BI 報表。
  • 在「編頁報表繁重」工作負載中,最常執行的作業是轉譯編頁報表。

在Power BI 報表伺服器的四部伺服器拓撲下,且預期一次不超過 5% 的使用者會存取報表伺服器,下表描述Power BI 報表伺服器最多可以處理 99% 可靠性的使用者數目。

工作負載 8 核心/32 GB RAM 16 核心/64 GB RAM
Power BI Report Heavy ( > 60%) 1,000 位使用者 3,000 位使用者
編頁 (RDL) 報告重 ( > 60%) 2,000 位使用者 3,200 位使用者

在每次執行中,最不堪重負的資源是 CPU。 因此,增加Power BI 報表伺服器的核心數目會增加系統的可靠性,而不是增加記憶體或硬碟空間。

測試方法

所使用的測試拓撲是以 Microsoft Azure 虛擬機器為基礎,而不是廠商特定的實體硬體。 所有機器都裝載在美國區域。 這反映了內部部署和公用雲端中硬體虛擬化的一般趨勢。

Power BI 報表伺服器拓撲

Power BI 報表伺服器部署包含下列虛擬機器:

  • Active Directory 網網域控制站:SQL Server 資料庫引擎、SQL Server Analysis Services 和 Power BI 報表伺服器 需要此專案,才能安全地驗證所有要求。
  • SQL Server 資料庫引擎 和 SQL Server Analysis Services:這是我們在轉譯報表時儲存所有資料庫供報表取用的位置。
  • Power BI 報表伺服器
  • Power BI 報表伺服器資料庫。 報表伺服器資料庫裝載于與 Power BI 報表伺服器 不同的電腦上,因此不需要與 SQL Server 資料庫引擎競爭記憶體、CPU、網路和磁片資源。

Diagram showing relationships between Power B I Report Server, Active Directory, and associated databases.

請參閱附錄 1.1 Power BI 報表伺服器拓撲和附錄 1.2 Power BI 報表伺服器 虛擬機器組態,以取得拓撲中使用的每部虛擬機器的完整設定。

Tests

負載測試回合中使用的測試可在名為 Reporting Services LoadTest 的 GitHub 專案中公開使用。 此工具可讓使用者研究 SQL Server Reporting Services 和Power BI 報表伺服器的效能、可靠性、延展性和可復原性特性。 此專案包含四組測試案例:

  • 測試模擬轉譯 Power BI 報表,
  • 測試模擬轉譯行動報表,
  • 測試模擬呈現小型和大型編頁報表,以及
  • 測試模擬執行各種類型的入口網站作業。

所有測試都是為了執行端對端作業而撰寫的(例如轉譯報表、建立新的資料來源等等)。 他們藉由對報表伺服器提出一或多個 Web 要求來達成此目的(透過 API)。 在真實世界中,使用者可能需要執行一些中繼作業,才能完成其中一個端對端作業。 例如,若要轉譯報表,使用者必須移至入口網站,請流覽至報表所在的資料夾,然後按一下報表來轉譯報表。 雖然測試不會執行完成端對端工作所需的所有作業,但它們仍會強加Power BI 報表伺服器會遇到的大部分負載。 您可以深入瞭解所使用的不同報表類型,以及探索 GitHub 專案所執行的各種作業。

注意

Microsoft 並未正式支援此工具,但產品小組確實會參與專案,並回答其他參與者所引發的問題。

工作負載

測試使用 2 個工作負載設定檔:Power BI Report Heavy 和編頁報表 Heavy。 下表描述針對報表伺服器執行的要求散發。

活動​​ Power BI 報表繁重、發生頻率 編頁報表繁重,發生頻率
轉譯 Power BI 報表 60% 10%
轉譯編頁 (RDL) 報表 30% 60%
轉譯行動報表 5% 20%
入口網站作業 5% 10%

使用者載入

針對每個測試回合,會根據兩個工作負載之一中指定的頻率來執行測試。 測試從報表伺服器的 20 個並行使用者要求開始。 然後,使用者負載會逐漸增加,直到可靠性低於 99% 的目標為止。

結果

並行使用者容量

如先前所述,測試從 20 位並行使用者開始對報表伺服器提出要求。 然後,並行使用者的數目會逐漸增加,直到所有要求中有 1% 失敗為止。 下表的結果告訴我們伺服器在尖峰負載下能夠處理的並行使用者要求數目,失敗率小於 1%。

工作負載 8 核心/32 GB 16 核心/64 GB
Power BI Report Heavy 50 個並行使用者 150 個並行使用者
編頁報表繁重 100 個並行使用者 160 個並行使用者

使用者容量總計

在 Microsoft 中,我們有數個小組使用的Power BI 報表伺服器生產部署。 當我們分析此環境的實際使用量時,我們觀察到任何指定時間(即使在每日尖峰負載期間)的並行使用者數目不會超過使用者總數的 5%。 使用此 5% 並行率作為基準測試,我們推斷出使用者基底總數Power BI 報表伺服器可以處理 99% 的可靠性。

工作負載 8 核心/32 GB 16 核心/64 GB
Power BI Report Heavy 1,000 位使用者 3,000 位使用者
編頁報表繁重 2,000 位使用者 3,200 位使用者

摘要

針對每個負載測試回合,CPU 是Power BI 報表伺服器電腦上尖峰負載時最不堪重負的資源。 因此,應該增加的第一個資源是核心數目。 或者,您可以藉由在拓撲中新增裝載Power BI 報表伺服器的更多伺服器,來考慮相應放大。

本文中顯示的結果衍生自執行一組特定報表來取用特定資料集,以特定方式重複。 這是一個實用的參考點,但請記住,您的使用量將取決於您的報告、查詢、使用模式和部署Power BI 報表伺服器。

附錄

1 拓撲

1.1 Power BI 報表伺服器拓撲

為了專注于不同組態下Power BI 報表伺服器行為,已修正每種類型的機器的 VM 組態(除了裝載Power BI 報表伺服器的電腦除外)。 每部機器都根據具有進階儲存體磁片的第二代(v2) D 系列機器進行布建。 您可以在 [ 一般用途] 區段 下找到每個 VM 大小的詳細資訊。

虛擬機器類型 處理器 記憶體 Azure VM 大小
Active Directory 網網域控制站 2 個核心 7 GB Standard_DS2_v2
SQL Server 資料庫引擎 與 Analysis Services 16 個核心 56 GB Standard_DS5_v2
報表伺服器資料庫 16 個核心 56 GB Standard_DS5_v2

1.2 Power BI 報表伺服器虛擬機器組態

處理器和記憶體的不同組態用於裝載Power BI 報表伺服器的虛擬機器。 與其他 VM 不同,此電腦是根據具有進階儲存體磁片的第三代(v3) D 系列機器布建。 您可以在 [ 一般用途] 區段下找到此 VM 大小的詳細資訊

虛擬機器 處理器 記憶體 Azure VM 大小
Power BI 報表伺服器 (小) 8 核心 32 GB Standard_D8S_v3
Power BI 報表伺服器 (大型) 16 個核心 64 GB vStandard_D16S_v3

2 執行 LoadTest 工具

如果您想要對 Power BI 報表伺服器 的 Microsoft Azure 部署執行 Reporting Services LoadTest 工具,請遵循下列步驟。

  1. 從 GitHub 複製 Reporting Services LoadTest 專案。 https://github.com/Microsoft/Reporting-Services-LoadTest
  2. 在專案目錄中,您會發現名為 RSLoadTests.sln 的解決方案檔。 在 Visual Studio 2015 或更新版本中開啟此檔案。
  3. 判斷您是否要針對部署Power BI 報表伺服器或 Microsoft Azure 中的Power BI 報表伺服器部署執行此工具。 如果您要針對自己的部署執行它,請移至步驟 5。
  4. 請遵循上 https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure 所列的指示,在 Azure 中建立Power BI 報表伺服器環境。
  5. 完成環境部署之後,請遵循所列 https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution 的指示來執行測試。

更多問題嗎? 嘗試詢問Power BI 社群