Testowanie wydajności za pomocą narzędzia Apache JMeter

Testowanie wydajności to niezbędny krok pozwalający upewnić się, że Oracle Analytics Cloud poradzi sobie z oczekiwanym obciążeniem bez pogorszenia wydajności. Za pomocą Apache JMeter, narzędzia typu "open source" służącego do testowania wydajności, można symulować rzeczywiste środowisko użytkownika i mierzyć wydajność raportów Oracle Analytics Cloud.

Na tym diagramie przedstawiono proces testowania wydajności w Oracle Analytics Cloud.Opis "GUID-80613252-4A68-4BB8-896B-1CD2665062CA-default.jpg" znajduje się poniżej
.jpg"

  1. Określanie miar wydajności na podstawie realistycznych scenariuszy.

    Do określania miar wydajności konieczne jest poznanie wymagań związanych z Oracle Analytics Cloud i oczekiwań użytkowników. Jeśli na przykład oczekuje się, że Oracle Analytics Cloud będzie obsługiwać dużą liczbę użytkowników, miary wydajności powinny koncentrować się na czasie odpowiedzi i przepustowości. Analogicznie, jeśli oczekuje się, że Oracle Analytics Cloud będzie przetwarzać dużą ilość danych, miary wydajności powinny być zorientowane na wykorzystanie zasobów. Po zdefiniowaniu miar wydajności można przystąpić do ustalania celów dotyczących wydajności.

  2. Projektowanie planu testów dotyczących wybranych miar.

    Plan testów musi być zaprojektowany tak, aby symulować realistyczne scenariusze i obciążenia. Oznacza to, że konieczne jest określenie liczby unikatowych użytkowników wirtualnych, czasu trwania testu oraz czasu namysłu między żądaniami. Liczba ustawionych unikatowych użytkowników wirtualnych powinna mieć realistyczną wartość symulującą faktycznie oczekiwane obciążenie. Podobnie czas trwania testu powinno się dobrać tak, aby możliwie najwierniej odzwierciedlić rzeczywisty okres uruchamiania raportów przez użytkowników. Czas namysłu to czas między dwoma żądaniami użytkownika. Zatem aby symulować rzeczywiste scenariusze, należy także realistycznie oszacować jego wartość.

    W skrypcie trzeba też uwzględnić odpowiednie tempo wykonywania czynności, aby zapewnić, że żądania będą wysyłane z częstotliwością zbliżoną do rzeczywistych sytuacji. Aby uzyskać dokładne i praktycznie użyteczne wyniki, Oracle zaleca stosowanie różnych czasów namysłu dla różnych typów działań zamiast jednej stałej wartości tego czasu. Na przykład w prostej nawigacji po pulpitach informacyjnych zalecany jest krótki czas namysłu wynoszący 20 sekund, a w przypadku wybierania wartości filtrów monitujących średni czas namysłu wynoszący 60 sekund. W przypadku wyświetlania raportów Oracle zaleca stosowanie długiego czasu namysłu o losowej wartości z zakresu 120-200 sekund. Dzięki takiemu podejściu test będzie wiernie naśladować zachowanie użytkowników w rzeczywistych warunkach i wygeneruje wiarygodne wyniki.

  3. Skorelowanie wartości dynamicznych.

    Korelacja polega na przechwytywaniu i zastępowaniu w skrypcie wartości dynamicznych, takich jak tokeny dostępu, identyfikatory stanu sesji, tokeny CSRF i inne parametry dynamiczne. Brak skorelowania tych wartości może prowadzić do błędów i niedokładnych wyników. Korelacja jest niezbędna w przypadku aplikacji opartych na chmurze, takich jak Oracle Analytics Cloud, ponieważ w takich aplikacjach wartości dynamiczne są używane do utrzymywania sesji i obsługiwania żądań użytkownika. Aby ułatwić ten proces, można pobrać przykładowy plik COR biblioteki reguł korelacji dla Oracle Analytics Cloud zawierający predefiniowany zbiór reguł korelacji, których można użyć do utworzenia skryptu testowego na potrzeby Oracle Analytics Cloud.

  4. Rejestrowanie i odtwarzanie skryptów testowych.

    Narzędzie JMeter udostępnia funkcję rejestrowania czynności użytkownika i przekształcania ich w skrypty testowe. Można skorzystać z tej funkcji w celu zarejestrowania czynności wykonywanych przez użytkowników w Oracle Analytics Cloud i utworzenia skryptów testowych symulujących rzeczywiste scenariusze. Zarejestrowane skrypty można wielokrotnie odtwarzać, aby zweryfikować wydajność raportu. Skrypty testowe należy zaprojektować tak, aby symulowały rzeczywiste scenariusze, takie jak wyszukiwanie danych, generowanie raportów i wizualizacja danych.

  5. Testowanie z realistycznym obciążeniem.

    Aby zasymulować realistyczne obciążenie, należy ustawić taką liczbę użytkowników wirtualnych, która będzie dobrze symulować oczekiwane obciążenie. Następnie należy stopniowo zwiększać obciążenie, aby określić maksymalną wydajność aplikacji. Oracle zaleca wykonywanie testu przez co najmniej godzinę w celu zasymulowania rzeczywistych scenariuszy, a także zaprojektowanie obciążenia w taki sposób, aby symulować okresy maksymalnego użycia, takie jak koniec miesiąca czy koniec roku obrotowego.

  6. Analiza wyników.

    Po ukończeniu testu należy przeanalizować jego wyniki, aby zidentyfikować wąskie gardła wydajności, takie jak długie czasy odpowiedzi, wysokie współczynniki błędów lub nadmierne wykorzystanie mocy obliczeniowej przy zapytaniach. Można to zrobić, korzystając z miar dostępnych za pośrednictwem usługi Oracle Cloud Infrastructure Monitoring, a także z wbudowanych narzędzi analitycznych aplikacji JMeter. Po zidentyfikowaniu wąskich gardeł wydajności można na podstawie tych ustaleń podjąć dalsze działania w celu zwiększenia wydajność raportów. Może to obejmować optymalizację zapytań, poprawienie konfiguracji ustawień systemowych lub skalowanie w górę liczby OCPU.

    Jeśli raporty nie spełniają założonych celów wydajnościowych, można je optymalizować metodą identyfikowania, a następnie eliminowania wąskich gardeł. W zidentyfikowaniu najdłużej wykonywanych żądań mogą pomóc nasłuchy narzędzia JMeter, a główną przyczynę problemów z wydajnością można ustalić, analizując dzienniki. Możliwe, że w celu poprawy wydajności Oracle Analytics Cloud będą wymagane takie działania jak optymalizacja zapytań do bazy danych, dostosowanie ustawień pamięci podręcznej czy też skalowanie infrastruktury w górę.

Postępowanie w sposób zgodny z przedstawionymi wytycznymi pomoże zagwarantować, że Oracle Analytics Cloud będzie spełniać założone wymagania dotyczące wydajności oraz zapewniać szybkie i płynnie działające środowisko w danej organizacji. Regularne testowanie wydajności pozwoli identyfikować i rozwiązywać wszelkie pojawiające się problemy, zanim odczują je użytkownicy.