Udostępnij przez


Wskazówki dotyczące planowania pojemności dla serwera raportów usługi Power BI

Power BI Report Server to samoobsługowe rozwiązanie dla analizy biznesowej i raportowania przedsiębiorstw, które klienci mogą wdrażać lokalnie, wewnątrz swojej zapory. Łączy on interaktywną funkcję raportów programu Power BI Desktop z lokalną platformą serwera usług SQL Server Reporting Services. W przypadku dużego i rosnącego użycia analiz i raportowania w przedsiębiorstwach budżetowanie infrastruktury sprzętowej i licencji na oprogramowanie wymagane do skalowania do bazy użytkowników przedsiębiorstwa może być wyzwaniem. Ten dokument ma na celu zaoferowanie wskazówek dotyczących planowania pojemności dla Serwer raportów usługi Power BI przez udostępnienie wyników wielu wykonań testów obciążeniowych różnych obciążeń na serwerze raportów. Chociaż raporty, zapytania i wzorce użycia organizacji różnią się znacznie, wyniki przedstawione w tym dokumencie, wraz z rzeczywistymi używanymi testami i szczegółowym opisem sposobu ich wykonania, służą jako punkt odniesienia dla każdego we wczesnym etapie procesu planowania wdrażania serwera raportów usługi Power BI.

Podsumowanie dla kierownictwa

Wykonaliśmy dwa różne typy obciążeń na serwerze raportów usługi Power BI; każde obciążenie składało się z renderowania różnych typów raportów, a także wykonywania różnych operacji w portalu internetowym.

  • W obciążeniu "Power BI Report Heavy" najczęściej wykonywana operacja (tj. operacja wykonana 60% czasu) renderowała raporty usługi Power BI.
  • W obciążeniu „Raport podzielony na strony” najczęściej wykonywaną operacją było renderowanie raportów podzielonych na strony.

W ramach topologii czterech serwerów serwera raportów usługi Power BI i oczekiwania, że nie więcej niż 5% użytkowników będzie uzyskiwać dostęp do serwera raportów w dowolnym momencie, w poniższej tabeli opisano maksymalną liczbę użytkowników, których serwer raportów usługi Power BI może obsłużyć z co najmniej 99% niezawodności.

Obciążenie pracą 8 rdzeni/32 GB pamięci RAM 16 rdzeni/64 GB pamięci RAM
Power BI Report Heavy (>60%) 1000 użytkowników 3000 użytkowników
Raport podzielony na strony (RDL) Intensywny (>60%) 2000 użytkowników 3200 użytkowników

W każdym przebiegu najbardziej obciążonym zasobem był procesor. W związku z tym zwiększenie liczby rdzeni do serwera raportów usługi Power BI zwiększy niezawodność systemu niż zwiększenie ilości pamięci lub miejsca na dysku twardym.

Metodologia testowania

Używana topologia testowania była oparta na maszynach wirtualnych platformy Microsoft Azure zamiast sprzętu fizycznego specyficznego dla dostawcy. Wszystkie maszyny były hostowane w regionach USA. Odzwierciedla to ogólny trend wirtualizacji sprzętu zarówno lokalnie, jak i w chmurze publicznej.

Topologia serwera raportów usługi Power BI

Wdrożenie serwera raportów usługi Power BI składało się z następujących maszyn wirtualnych:

  • Kontroler domeny usługi Active Directory: był wymagany przez aparat bazy danych programu SQL Server, usługi SQL Server Analysis Services i serwer raportów usługi Power BI w celu bezpiecznego uwierzytelniania wszystkich żądań.
  • Silnik bazy danych SQL Server i SQL Server Analysis Services: tutaj przechowywaliśmy wszystkie bazy danych dla raportów, które były używane do ich generowania.
  • Serwer raportów usługi Power BI
  • Baza danych serwera raportów usługi Power BI. Baza danych serwera raportów jest hostowana na innym komputerze niż serwer raportów usługi Power BI, dzięki czemu nie musi konkurować z aparatem bazy danych programu SQL Server dla zasobów pamięci, procesora CPU, sieci i dysku.

Zrzut ekranu przedstawiający diagram relacji między serwerem raportów usługi Power BI, usługą Active Directory i skojarzonymi bazami danych.

Zobacz Dodatek 1.1 Topologia serwera raportów usługi Power BI i dodatek 1.2 Konfiguracja maszyny wirtualnej serwera raportów usługi Power BI, aby uzyskać dokładną konfigurację każdej maszyny wirtualnej używanej w topologii.

Testy

Testy używane w przebiegach testów obciążeniowych są publicznie dostępne w projekcie Usługi GitHub o nazwie Reporting Services LoadTest. To narzędzie umożliwia użytkownikom badanie cech wydajności, niezawodności, skalowalności i możliwości odzyskiwania usług SQL Server Reporting Services i serwera raportów usługi Power BI. Ten projekt składa się z czterech grup przypadków testowych:

  • Testy symulujące renderowanie raportów usługi Power BI,
  • Testy symulujące renderowanie raportów dla urządzeń przenośnych,
  • Testy symulujące renderowanie małych i dużych raportów podzielonych na strony oraz
  • Testy symulujące wykonywanie różnych typów operacji w portalu internetowym.

Wszystkie testy zostały napisane w celu wykonania kompleksowej operacji (na przykład renderowania raportu, tworzenia nowego źródła danych itp.). Umożliwiają one wykonywanie co najmniej jednego żądania internetowego na serwerze raportów (za pośrednictwem interfejsów API). W świecie rzeczywistym użytkownik może wymagać wykonania kilku pośrednich operacji, aby wykonać jedną z tych operacji end-to-end. Na przykład aby renderować raport, użytkownik musi przejść do portalu internetowego, przejść do folderu, w którym znajduje się raport, a następnie kliknąć raport, aby go renderować. Chociaż testy nie wykonują wszystkich operacji potrzebnych do wykonania kompleksowego zadania, nadal nakładają większość obciążenia, które będzie występowało na serwerze raportów usługi Power BI. Możesz dowiedzieć się więcej o różnych typach raportów używanych, a także o różnych operacjach wykonywanych przez eksplorowanie projektu GitHub.

Uwaga / Notatka

Narzędzie nie jest oficjalnie obsługiwane przez firmę Microsoft, ale zespół produktu współtworzy projekt i odpowiada na problemy zgłaszane przez innych współautorów.

Workloads

W testowaniu są używane 2 profile obciążeń: Power BI Report Heavy i Paginated Report Heavy. W poniższej tabeli opisano rozkład żądań wykonywanych na serwerze raportów.

Activity Power BI Report Heavy, częstotliwość występowania Report Heavy z podziałem na strony, częstotliwość występowania
Renderowanie raportów usługi Power BI 60% 10%
Renderowanie raportów podzielonych na strony (RDL) 30% 60%
Renderowanie raportów dla urządzeń przenośnych 5% 20%
Operacje portalu internetowego 5% 10%

Obciążenie użytkownika

Dla każdego przebiegu testu testy zostały wykonane zgodnie z określoną częstotliwością w jednym z dwóch profili obciążenia. Testy rozpoczęły się od 20 równoczesnych żądań użytkowników do serwera raportów. Obciążenie użytkownika było następnie stopniowo zwiększane, aż niezawodność spadnie poniżej 99% celu.

Results

Współbieżna pojemność użytkownika

Jak wspomniano wcześniej, testy rozpoczęły się od 20 równoczesnych użytkowników wysyłających żądania do serwera raportów. Liczba równoczesnych użytkowników została następnie stopniowo zwiększana, aż 1% wszystkich żądań kończyło się niepowodzeniem. Wyniki w poniższej tabeli informują nas o liczbie współbieżnych żądań użytkowników, które serwer będzie mógł obsłużyć przy szczytowym obciążeniu z szybkością awarii mniejszą niż 1%.

Obciążenie pracą 8 rdzeni/32 GB 16 rdzeni/64 GB
Power BI Raport Obciążający 50 równoczesnych użytkowników 150 równoczesnych użytkowników
Ciężki raport podzielony na strony 100 równoczesnych użytkowników 160 równoczesnych użytkowników

Łączna pojemność użytkownika

W firmie Microsoft mamy wdrożenie produkcyjne serwera raportów usługi Power BI używanego przez kilka zespołów. Podczas analizowania rzeczywistego użycia tego środowiska obserwujemy, że liczba równoczesnych użytkowników w danym momencie (nawet podczas dziennego szczytowego obciążenia) nie przekracza 5% całkowitej bazy użytkowników. Korzystając z tego 5% współczynnika współbieżności jako punktu odniesienia, ekstrapolowaliśmy łączną bazę użytkowników, których Power BI Report Server może obsłużyć z 99% niezawodnością.

Obciążenie pracą 8 rdzeni/32 GB 16 rdzeni/64 GB
Power BI Raport Obciążający 1000 użytkowników 3000 użytkowników
Ciężki raport podzielony na strony 2000 użytkowników 3200 użytkowników

Podsumowanie

Dla każdego przebiegu testu obciążeniowego procesor był najbardziej przeciążonym zasobem przy szczytowym obciążeniu na serwerze raportów Power BI. W związku z tym pierwszy zasób, który należy zwiększyć, to liczba rdzeni. Alternatywnie, możesz rozważyć skalowanie w poziomie, dodając więcej serwerów, które hostują Power BI Report Server w swojej topologii.

Wyniki przedstawione w tym dokumencie pochodzą z wykonywania określonego zestawu raportów zużywających określony zestaw danych, powtarzanych w określony sposób. Jest to przydatny punkt odniesienia, ale pamiętaj, że użycie będzie zależeć od raportów, zapytań, wzorców użycia i wdrożenia serwera raportów usługi Power BI.

Dodatek

1 Topologia

1.1 Topologia serwera raportów usługi Power BI

Aby skoncentrować się wyłącznie na zachowaniu serwera raportów usługi Power BI w różnych konfiguracjach, konfiguracja maszyny wirtualnej dla każdego typu maszyny (z wyjątkiem maszyny obsługującej serwer raportów usługi Power BI) została naprawiona. Każda maszyna została skonfigurowana jako maszyna serii D drugiej generacji (wersja 2) z dyskami Premium Storage. Szczegółowe informacje o poszczególnych rozmiarach maszyn wirtualnych można znaleźć w sekcji "Ogólnego przeznaczenia".

Typ maszyny wirtualnej Processor Memory Rozmiar maszyny wirtualnej platformy Azure
Kontroler domeny usługi Active Directory 2 rdzenie 7 GB Standard_DS2_v2
Aparat bazy danych programu SQL Server i usługi Analysis Services 16 rdzeni 56 GB Standard_DS5_v2
Baza danych serwera raportów 16 rdzeni 56 GB Standard_DS5_v2

1.2 Konfiguracja maszyny wirtualnej serwera raportów usługi Power BI

Dla maszyny wirtualnej hostująca serwer raportów usługi Power BI użyto różnych konfiguracji procesora i pamięci. W przeciwieństwie do innych maszyn wirtualnych, ta maszyna została aprowizowana zgodnie z maszynami serii D trzeciej generacji (v3) z dyskami Premium Storage. Szczegółowe informacje o tym rozmiarze maszyny wirtualnej można znaleźć w sekcji "Ogólnego przeznaczenia"

Maszyna wirtualna Processor Memory Rozmiar maszyny wirtualnej platformy Azure
Serwer raportów usługi Power BI (mały) 8 rdzeni 32 GB Standard_D8S_v3
Serwer raportów usługi Power BI (duży) 16 rdzeni 64 GB vStandard_D16S_v3

2 Uruchamianie narzędzia LoadTest

Jeśli chcesz uruchomić narzędzie Reporting Services LoadTest względem własnego wdrożenia serwera raportów usługi Power BI lub wdrożenia na platformie Microsoft Azure, wykonaj następujące kroki.

  1. Sklonuj projekt LoadTest usług SQL Server Reporting Services z GitHub (https://github.com/Microsoft/Reporting-Services-LoadTest).
  2. W katalogu projektu znajdziesz plik rozwiązania o nazwie RSLoadTests.sln. Otwórz ten plik w programie Visual Studio 2015 lub nowszym.
  3. Zdecyduj, czy chcesz uruchomić to narzędzie na wdrożenie serwera raportów Power BI, czy na jego wdrożenie na platformie Microsoft Azure. Jeśli zamierzasz uruchomić go we własnym wdrożeniu, przejdź do kroku 5.
  4. Postępuj zgodnie z instrukcjami wymienionymi na https://github.com/Microsoft/Reporting-Services-LoadTest#create-a-sql-server-reporting-services-load-environment-in-azure stronie, aby utworzyć środowisko serwera raportów usługi Power BI na platformie Azure.
  5. Po zakończeniu wdrażania środowiska postępuj zgodnie z instrukcjami wymienionymi na stronie https://github.com/Microsoft/Reporting-Services-LoadTest#load-test-execution, aby uruchomić testy.

Więcej pytań? Spróbuj zapytać społeczność usługi Power BI