Analiza informacji o wydajności

Przykład
Wprowadzenie

Czasy reakcji systemu mają decydujący wpływ na produktywność i zadowolenie użytkowników. Można użyć monitorów wydajności do rejestrowania informacji o wydajności, które można wykorzystać do obiektywnej analizy czasów odpowiedzi. Analiza informacji o wydajności może ujawnić przyczyny nieodpowiednich czasów reakcji.

Efektywne wykorzystanie monitorów wydajności i analiza informacji o wydajności zostały opisane poniżej. Dokument koncentruje się w szczególności na wykorzystaniu monitorów wydajności w systemach produkcyjnych.

Grupa docelowa

  • Administratorzy
  • Konsultanci techniczni
  • Programiści

Opis

Czasy reakcji wydajnego systemu powinny być regularnie monitorowane, aby w razie ich pogorszenia można było w porę podjąć odpowiednie działania. W celu zapewnienia bezpiecznego i długotrwałego działania systemu Comarch ERP Enterprise, czasy odpowiedzi należy sprawdzać:

  • Raz w tygodniu podczas fazy wprowadzania systemu
  • Raz w miesiącu, jeśli nie występują problemy

Czasy odpowiedzi można monitorować za pomocą standardowego monitora wydajności bazy danych.

W celach porównawczych powinny być zapisywane analizy informacji o wydajności. Należy regularnie porównywać analizy historyczne z bieżącymi. Umożliwia to rozpoznanie negatywnego trendu, zanim dojdzie do eskalacji problemu z klientem.

Jeśli czas odpowiedzi systemu nie spełnia wymagań, należy podjąć działania w celu znalezienia przyczyn nieodpowiedniego czasu odpowiedzi. Monitory wydajności i wynikające z nich informacje o wydajności mogą zapewnić kluczowe wsparcie w znalezieniu przyczyn.

Jeśli system wykazuje niewystarczające czasy odpowiedzi, należy wykonać następujące czynności:

  1. sprawdzić konfigurację systemu
  2. przeanalizować standardowy monitor wydajności bazy danych
  3. utworzyć specyficzne monitory wydajności bazy danych dla problematycznych aplikacji lub raportów
  4. skorygować problemy wykryte w systemie deweloperskim
  5. użyć monitorów wydajności bazy danych w systemie testowym, aby sprawdzić, czy korekta się powiodła.
  6. przenieść poprawkę do systemu produkcyjnego
  7. powtórzyć pomiar problematycznych aplikacji lub raportów za pomocą monitorów wydajności bazy danych.
  8. monitorować system w krótkich odstępach czasu w celu wykrycia dalszych problemów. W razie potrzeby powtórz proces optymalizacji.

Sprawdzanie konfiguracji systemu

Przed przystąpieniem do analizy systemu najpierw należy sprawdzić jego konfigurację. Artykuł Lista kontrolna: Konfiguracja systemu opisuje podstawowe wytyczne dotyczące konfiguracji systemu Comarch ERP Enterprise. Jeśli, na przykład, procesy na jednym z komputerów wymagają więcej pamięci niż ten komputer ma dostępnej w rzeczywistej pamięci głównej, system Comarch ERP Enterprise działa wolno. Nie ma znaczenia, czy proces uruchomiony na dyskach twardych stanowi instancję bazy danych, czy pełni funkcję serwera aplikacji.

Ponieważ nieodpowiednia konfiguracja systemu ma znaczący wpływ na czas reakcji systemu, sprawdzenie konfiguracji systemu jest zatem niezbędnym krokiem w optymalizacji każdego systemu.

Należy sprawdzić, czy aplikacja reorganizacji Reorganizacja informacji o wydajności jest wykonywana codziennie.

Należy pamiętać, że liczba wątków na kolejkę przetwarzania ma decydujący wpływ na obciążenie systemu. Więcej informacji na temat konfiguracji kolejek przetwarzania i wątków można znaleźć w poniższych artykułach: Panel System: Kolejka przetwarzania i Panel System: Serwer aplikacji.

Informacje o wydajności

Monitory wydajności rejestrują informacje o wydajności, dzięki którym można znaleźć czasochłonne funkcje w systemie i określić przyczyny zużycia czasu.

Analizując informacje o wydajności, należy zwróć uwagę, że w wielu firmach profil obciążenia często zmienia się w zależności od dnia. Aby zmniejszyć wpływ różnych profili obciążenia, należy zawsze analizować informacje o wydajności z co najmniej jednego tygodnia.

Czas mierzony w informacjach o wydajności jest często zużywany w centralnie wykorzystywanym zasobie (np. systemie baz danych). Ponieważ każdy zasób w systemie cyfrowym ma ograniczoną wydajność, przeciążenie zasobu może mieć zauważalny wpływ na czas odpowiedzi całego systemu. Pojedyncza funkcja może zatem wpływać na cały system poprzez nadmierne wykorzystanie centralnego zasobu. Dlatego należy rozróżnić funkcje, które powodują przeciążenie, od funkcji, które stale spowolniły z powodu przeciążenia. Jest bardzo prawdopodobne, że przyczyną przeciążenia centralnego zasobu jest 10 najbardziej czasochłonnych funkcji.

W wielu przypadkach wydajność systemu bazodanowego determinuje zachowanie serwerów aplikacji. Jeśli system bazy danych jest przeciążony, nawet prosty dostęp do bazy danych może trwać znacznie dłużej niż w normalnie obciążonym systemie. Jeśli system bazy danych jest przeciążony, musisz znaleźć aplikację lub raport, który powoduje przeciążenie.

Analiza standardowego monitora wydajności bazy danych

Standardowy monitor wydajności bazy danych rejestruje informacje o wydajności każdego systemu. Można użyć tych informacji o wydajności, aby określić najbardziej czasochłonne funkcje w systemie.

Subiektywne odczucia użytkowników

Przed każdą analizą wydajności należy zapytać użytkowników, którzy regularnie pracują z systemem i określić funkcje, których nieodpowiednie czasy reakcji są postrzegane jako uciążliwe:

  • jeśli tylko kilka działań w poszczególnych aplikacjach jest opisywanych jako powolne, może to wskazywać na izolowany problem w tych aplikacjach. Aplikacje i działania, których to dotyczy, powinny zostać przeanalizowane bardziej szczegółowo poniżej.
  • jeśli wszystkie działania są opisywane jako powolne, niezależnie od aplikacji, a czasy odpowiedzi systemu mogą ulegać znacznym wahaniom, oznacza to, że system jako całość jest przeciążony. Należy poszukać przyczyny przeciążenia, zaczynając od raportów, dokumentów i aplikacji działających w tle.

Analizy dla aplikacji interaktywnych

Należy uruchomić aplikację Raport: Czasochłonne działania posortowane według sumy dla ostatniego tygodnia i z liczbą wyników równą 10, a następnie wyniki porównać z opiniami użytkowników.

Jeśli działania subiektywnie postrzegane jako powolne są uwzględnione w 10 najbardziej czasochłonnych działaniach, zatem można je obiektywnie zweryfikować za pomocą pomiarów, należy zarejestrować dalsze informacje o wydajności dla tych aplikacji i działań. Więcej informacji znajduje się w rozdziale Weryfikacja za pomocą monitorów wydajności bazy danych.

Jeżeli działania subiektywnie postrzegane jako powolne nie są uwzględnione w 10 najbardziej czasochłonnych działaniach, istnieją różnice między subiektywnym wrażeniem a pomiarami.

Różnice można wyjaśnić na przykład w następujący sposób:

  • wybrani użytkownicy, nie korzystają z reprezentatywnego zakresu funkcji
  • działania są one rzadko używane

Należy podjąć próbę wyjaśnienia przyczyny różnic między subiektywnym wrażeniem a informacjami o wydajności.

Niezależnie od powyższego, należy przyjrzeć się bliżej 10 najbardziej czasochłonnym czynnościom. Działania te stanowią największe obciążenie dla systemu. Należy jednak pamiętać, że raport ten obejmuje również działania, które mają dobry czas działania, ale są używane szczególnie często.

Przykład
W firmie wprowadzanych jest 10 000 pozycji zamówień sprzedaży dziennie. Dodanie pozycji zajmuje średnio 0,5 sekundy. Użytkownicy nie nie zgłaszają uwag do działania w tym zakresie. Niemniej jednak działanie to zostanie prawdopodobnie uwzględnione w raporcie dotyczącym najbardziej czasochłonnych działań ogółem, ponieważ działanie to zajęło łącznie 5000 sekund.

Czasy wykonania dłuższe niż 1-2 sekundy są często postrzegane przez użytkowników jako wolne. Należy zatem zwracać szczególną uwagę na akcje, których średni czas wykonania przekracza 2 sekundy. Dlatego należy zapisać dalsze informacje o wydajności dla tych aplikacji i działań. Więcej informacji znajduje się w rozdziale Weryfikacja za pomocą monitorów wydajności bazy danych.

Analizy dla aplikacji działających w tle

Aplikacje działające w tle mogą stanowić duże obciążenie dla systemu. Jeśli cały system działa wolno, a użytkownicy nie mogą ograniczyć problemów do poszczególnych działań, należy sprawdzić aplikacje działające w tle.

W pierwszej kolejności należy określić najbardziej czasochłonne aplikacje działające w tle:

  1. uruchomić aplikacje Panel System
  2. W polu Typ wskazać System i przejść na zakładki Informacje o wydajności.
  3. Należy ustawić:
Wymiar  Typ Ograniczenia  Wartość Ograniczenia 
Operacje Ogranicz Wykonaj akcję aplikacji
Okresy Ogranicz Ostatni tydzień
Serwer Aplikacji Nie używaj
Akcje Ogranicz i Wyświetl
Aplikacje Ogranicz i Wyświetl
Raporty Nie używaj
Typy Sesji Ogranicz Przetwarzanie w tle
Bazy danych Nie używaj
Zapytania bazodanowe Nie używaj
Wyszukiwanie Nie używaj

4. Sortowanie powinno się odbywać według następujących kolumn:

  • Suma czasów wykonania
  • Aplikacja
  • Akcje

5. Jeśli to konieczne, należy zapisać ustawienia jako wzorzec zapytania, aby móc powtórzyć ocenę później.

Należy zidentyfikować 10 najbardziej czasochłonnych aplikacji działających w tle pod względem całkowitego czasu wykonania, które generują największe obciążenie systemu. Aplikacje działające w tle, które są uruchamiane głównie poza godzinami pracy użytkowników interaktywnych, mogą zostać pominięte w analizie. Aby uzyskać dalsze informacje o wydajności najbardziej czasochłonnych aplikacji działających w tle, należy zapoznać się z rozdziałem Weryfikacja za pomocą monitorów wydajności bazy danych.

Należy pamiętać:

  • Obciążenie systemu wynikające z przetwarzania zadań jest zależne również od konfiguracji systemu.
  • Więcej informacji na temat konfiguracji systemu znajduje się w rozdziale Sprawdzanie konfiguracji systemu.

Analizy dokumentów i raportów

Raporty i dokumenty mogą mieć bardzo duży wpływ na ogólne obciążenie systemu. W szczególności podczas dostosowywania dokumentów, niewielkie zmiany w standardowym dokumencie mogą spowodować znaczny wzrost czasu działania.

Należy wykonać Raport: Czasochłonne raporty według sumy dla ostatniego tygodnia i z liczbą wyników równą 10. Najbardziej czasochłonne raporty najbardziej obciążają system. Więcej informacji znajduje się w rozdziale Weryfikacja za pomocą monitorów wydajności bazy danych.

Weryfikacja za pomocą monitorów wydajności bazy danych

W przypadku zidentyfikowania za pomocą standardowego monitora wydajności bazy danych aplikacji i raportów, które generują szczególnie duże obciążenie systemu lub mają niewystarczające czasy odpowiedzi, należy skonfigurować dla nich dedykowane monitory wydajności bazy danych w celu przeprowadzenia pełnej analizy. Monitory wydajności bazy danych są wykorzystywane między innymi do rejestrowania poleceń bazy danych wykonywanych przez te aplikacje i raporty.

Konfigurowanie monitorów wydajności

Rejestrowanie poleceń bazy danych może stanowić dodatkowe obciążenie dla systemu. Czas odpowiedzi jest zazwyczaj pogorszony o 10-20% ze względu na dodatkowe monitory wydajności.

Optymalizacja konfiguracji monitorowania:

  • Jeśli to możliwe, należy skonfigurować monitor wydajności bazy danych tylko na jednym serwerze aplikacji.
  • Jeśli analiza dotyczy tylko kilku aplikacji lub raportów, należy utworzyć oddzielny monitor wydajności bazy danych dla każdej aplikacji i każdego raportu.

W tym celu należy:

  1. Uruchomić aplikację Monitory wydajności
  2. Utworzyć nowy monitor wydajności z plikiem szablonu DatabaseMonitor-FullAnalysis.xml.
  3. W razie potrzeby można ograniczyć serwer aplikacji, aplikację lub raport
  4. Aktywować monitor wydajności

Jeśli pogorszenie czasu odpowiedzi przez dodatkowy monitor wydajności jest zbyt duże, można zakończyć każdy dodatkowy monitor wydajności w dowolnym momencie. Zakończony monitor wydajności nie ma wpływu na system.

Jeśli ma zostać zmierzony czad pracy użytkownika, należy ograniczyć się tylko do niego, a nie do serwera aplikacji, aplikacji lub raportu.

Aby uzyskać reprezentatywny pomiar, należy uruchomić dodatkowe monitory wydajności przez co najmniej dzień lub tydzień (zalecane). Należy ocenić wyniki monitora wydajności natychmiast po zakończeniu pomiaru, ponieważ są one podsumowywane przez aplikację do reorganizacji po określonym czasie.

Analiza informacji o wydajności

Celem analizy dodatkowych monitorów wydajności jest znalezienie przyczyny niewystarczającego czasu odpowiedzi aplikacji lub raportu. Dzięki plikowi szablonu DatabaseMonitor-FullAnalysis.xml polecenia bazy danych wykonywane przez aplikacje lub raporty są również rejestrowane w monitorach wydajności. Liczba wykonań i czas działania poleceń bazy danych są zwykle decydujące dla czasów odpowiedzi. Ocena koncentruje się zatem na poleceniach bazy danych.

Po zakończeniu pomiaru należy uruchomić:

W razie potrzeby należy ograniczyć raporty do wybranych aplikacji lub raportów. Wyniki powinny zostać zapisane do późniejszej analizy.

Można użyć aplikacji Panel System do dynamicznej analizy informacji o wydajności.

Określając najbardziej czasochłonne instrukcje bazy danych dla aplikacji lub raportu:

  1. Uruchomić aplikację Panel System
  2. Wybrać w polu Typ opcję System i przejść na zakładki Informacje o wydajności
  3. Ustawić wymiary w następujący sposób:
Wymiar  Typ Ograniczenia  Wartość Ograniczenia 
Operacje Ogranicz
Okresy Ogranicz Ostatni tydzień
Serwer Aplikacji Nie używaj
Akcje Ogranicz i Wyświetl
Aplikacje Ogranicz i Wyświetl W razie potrzeby ograniczyć do danej aplikacji.
Raporty Ogranicz i Wyświetl W razie potrzeby ograniczyć do danego raportu.
Typy Sesji Nie używaj
Bazy danych Nie używaj
Zapytania bazodanowe Nie używaj
Wyszukiwanie Nie używaj

4. Sortowanie powinno się odbywać według następujących kolumn:

  • Suma czasów wykonania
  • Aplikacja
  • Akcje
  • Raport

5. Jeśli to konieczne, należy zapisać ustawienia jako wzorzec zapytania, aby móc powtórzyć ocenę później.

Należy zidentyfikować 10 najbardziej czasochłonnych aplikacji działających lub raportu jest prawdopodobnie odpowiedzialnych za niewystarczający czas odpowiedzi. Zaczynając od najbardziej czasochłonnej instrukcji bazy danych, należy sprawdzić, czy i jak można zoptymalizować aplikację lub raport.

Więcej informacji znajduje się w rozdziale Poprawki do systemu.

Poprawki do systemu

Wynikiem analizy informacji o wydajności jest zestaw instrukcji bazy danych oraz aplikacji lub raportów, w których są one używane. Użyj tych informacji, aby zoptymalizować instrukcje bazy danych, aplikacje lub raporty.

Optymalizacja poszczególnych poleceń bazy danych

Jeśli poszczególne instrukcje bazy danych powodują duże obciążenie systemu bazy danych, może to wpłynąć na czas odpowiedzi całego systemu. Całkowite obciążenie spowodowane przez polecenia bazy danych jest decydujące dla obciążenia systemu bazy danych. Całkowite obciążenie zależy od czasu wykonania i częstotliwości wykonywania poleceń bazy danych.

Polecenia bazy danych o długim czasie wykonywania

Jeśli polecenie bazy danych ma długi czas wykonania (np. średnio ponad 0,1 sekundy), należy sprawdzić, czy można poprawić czas wykonania, tworząc indeks. Należy użyć narzędzi systemów zarządzania bazami danych, które mogą tworzyć sugestie dotyczące indeksów za pomocą planu wykonania instrukcji bazy danych. Indeksy można utworzyć za pomocą aplikacji Indywidualne indeksy. Dodatkowe informacje na temat indeksów  można znaleźć w artykule: Optymalizacja wydajności.

Jeśli nie można osiągnąć żadnej lub tylko niewystarczającą poprawę poprzez utworzenie indeksu, należy uprościć instrukcję bazy danych. Aby to zrobić, należy zmodyfikować aplikację lub raport, który korzysta z instrukcji bazy danych.

Polecenia bazy danych z krótkim czasem wykonania

Jeśli instrukcja bazy danych ma krótki czas wykonania (np. mniej niż 0,1 sekundy), ale jest wykonywana bardzo często, należy zawsze poprawić aplikację lub raport, aby instrukcja bazy danych była wykonywana rzadziej.

Wyszukiwanie poleceń bazy danych w aplikacjach

Informacje o wydajności wskazują aplikację i akcję dla jakiej została wykonana instrukcja bazy danych. Te dwie informacje znacznie ograniczają klasy Java, które należy wziąć pod uwagę. Więcej informacji na temat lokalizowania instrukcji bazy danych w aplikacjach można znaleźć w dokumencie Optymalizacja wydajności.

Optymalizacja aplikacji i raportów

Informacje o wydajności stanowią podstawę do dalszych działań optymalizacyjnych. Należy wykorzystać zebrane dane dotyczące najbardziej czasochłonnych działań w systemie Comarch ERP Enterprise.

Proces optymalizacji aplikacji oraz raportów należy przeprowadzać, kierując się odpowiednimi artykułami.

  • Optymalizacja aplikacji – artykuł Optymalizacja wydajności opisuje proces przeprowadzania optymalizacji aplikacji.
  • Optymalizacja raportów – artykuł Tworzenie raportów za pomocą Crystal Reports zawiera informacje na temat optymalizacji raportów.

Czy ten artykuł był pomocny?