Budując duże rozwiązanie oparte o Power BI chcielibyśmy wiedzieć, jak wielu użytkowników może z niego skorzystać. Z uwagi na to, że każde rozwiązanie jest nieco inne, bardzo trudno jest oszacować jakie obciążenie udźwignie. Najlepszą do tego zadania metodą jest po prostu wykonanie testów obciążeniowych. Co więcej, jest do tego specjalne narzędzie i o nim opowiem w dzisiejszym artykule.
Czym są testy obciążeniowe?
Testy obciążeniowe to sposób na weryfikację możliwości rozwiązania poprzez uruchomienie dużej liczby zapytań do systemu. W przypadku systemu raportowego, opartego o Power BI, będzie to po prostu uruchomienie w tym samym czasie jak dużej ilości raportów. Innymi słowy – chcemy zasymulować duży ruch, poprzez otwarcie kilkuset okien przeglądarki i wygenerowanie wielu raportów, najlepiej z różnymi parametrami. Czy takie testy mają sens? To zależy w jakim stopniu znamy zachowanie użytkowników i czy możemy je sparametryzować. Nie zmienia to jednak faktu, że wynik testu daje mierzalną informację o przewidywanym obciążeniu, jakie system może przyjąć.
Jak wykonać testy obciążeniowe?
Jeśli mamy duży zespół, to oczywiście możemy poprosić kolegów i koleżanki o klikanie po raporcie i monitorować wykorzystanie zasobów. Niestety – może się okazać, że współpracownicy po prostu nie mają na to czasu, dlatego to nie do końca rozwiąże nasze problemy. Drugim sposobem jest skorzystanie z narzędzia, które automatyzuje takie testy. Jest ono dostępne tutaj i bazuje na skrypcie Powershell, który uruchamia kilka okien przeglądarki, a następnie zmienia wartości parametrów. Możemy oczywiście zdefiniować jak wiele równoległych uruchomień chcemy wykonać. Co istotne, jeśli potrzebujemy wygenerować naprawdę duży ruch możemy to narzędzie uruchomić na kliku maszynach wirtualnych.
Testy działają i co dalej?
Pozostaje nam sprawdzić czy nasze środowisko wytrzymało obciążenie. Jeśli nasze raporty są oparte na Premium Capacity, to możemy skorzystać z tego rozwiązania, aby zobaczyć jak wyglądał czas odpowiedzi, a jak zużycie zasobów. Jeśli natomiast łączymy się do Analysis Services w trybie Live Connection, to możemy wykorzystać metryki zużytych jednostek QPU. Jeśli zobaczymy ciągłą linię znajdującą się na maksymalnym poziomie oznacza to, że należy rozważyć skalowanie lub optymalizację modelu.
Tyle teorii, do dzieła!
- Zapoznaj się z dokumentacją narzędzia i pobierz skrypty.
- Zainstaluj niezbędne moduły (jeśli planujesz pracować z PS przy Power BI możesz pobrać wszystkie).
- Uruchom skrypt, a następnie zaloguj się.
- Wypełnij niezbędne parametry.
- Po jakimś czasie sprawdź zużycie pojemności Premium /Embedded/Bazy Analysis Services.
Czy potrzebuję takiego testowania?
Na to pytanie musisz odpowiedzieć sobie sam, w zależności od projektu, jakim się zajmujesz. Jeśli tworzysz duże rozwiązanie i kluczowa dla Ciebie jest szybkość działania i niezawodność systemu, to jest to wskazane. W przypadku, gdy szybkość nie jest krytyczna, a rozwiązanie jest niewielkie, można po prostu monitorować rozwiązanie (na przykład wykorzystując Log Analytics), a w razie problemów podjąć konieczne kroki. Jeśli chcesz dowiedzieć się więcej – jak zwykle zapraszam na mój kanał na Youtube.