Jak badać wydajność aplikacji poprzez monitorowanie baz danych?

Wstęp

W trakcie analizowania wydajności aplikacji, jednym z najważniejszych elementów jest baza danych, z której korzysta. Niezależnie od rodzaju oprogramowania, czy jest to dedykowana aplikacja czy wersja webowa, musimy zadbać o poprawną pracę warstwy bazodanowej.

Analiza może się skomplikować w sytuacji, kiedy z instancji bazy danych korzysta kilka aplikacji, użytkowników oraz komputerów. Sprawdzenie i zweryfikowanie wszystkich parametrów potrafi być wyzwaniem. Nie można także zapomnieć o dostępności i integralności danych wewnątrz bazy. A jeśli można by było uzależnić dostępność bazy danych z warstwą sieciową? To by ułatwiło pracę!

Poniżej przedstawiamy dwa sposoby na rozwiązanie wszystkich powyższych wyzwań.

Przykłady bazują na instancjach baz danych Microsoft SQL, jednak nasz system monitorowania wspiera także MySQL, Oracle, DB2, SAP ASE, instancje w chmurze.

Dodatkowo wspieramy sterowniki ODBC, zatem wsparcie może być rozszerzone o dowolne bazy danych typu MongoDB czy PostgreSQL.

Wewnętrzne parametry instancji bazy danych

Przy badaniu jakości działania naszej instancji, jednym z najważniejszych aspektów jest status jej wewnętrznych parametrów oraz serwera, na którym jest zainstalowana.

Jednym z kluczowych narzędzi, które jest wbudowane w system monitorujący SolarWinds, jest szablon bazodanowy AppInsight dla modułu Server & Application Monitor. Szablon jest autorskim rozwiązaniem i został stworzony specjalnie dla baz danych.

Szablon posiada widok, który podsumowuje wszystkie bazy danych w danej instancji. Lista obejmuje ich aktualny status, wielkość bazy oraz transaction log. Dodatkowo każda baza posiada swój własny wewnętrzny status, który może być wyświetlony jako zielone kółko oraz żółty lub czerwony wykrzyknik.

W przypadku usług SQL, szablon potrafi monitorować takie parametry jak procesor, pamięć fizyczna, pamięć wirtualna oraz odczyt i zapis na woluminie – per usługa, włącznie z danymi historycznymi.

Istnieje możliwość zaawansowanego monitorowania wewnętrznych parametrów pracy instancji. Poniższy przykład pokazuje parametry dla buforu pamięci oraz latches i locks, które są najbardziej istotne dla prawidłowej pracy kwerend.

Oczywiście szablon posiada także podstawowe parametry dla usługi instancji baz danych. Będą one kluczowym wyznacznikiem wydajności dla każdego administratora baz danych.

Dodatkową funkcjonalnością jest monitorowanie użytkowników per baza danych.

Nową funkcjonalnością szablonu jest możliwość badania opóźnień sieciowych, które wpływają bezpośrednio na działanie instancji baz danych. Dzięki monitorowaniu pakietów TCP, mamy możliwość uzyskania czasu opóźnień oraz ewentualnych utraconych pakietów. Proszę zauważyć na poniższym przykładzie, że szablon potrafi umiejętnie rozdzielić wszystkie sieciowe połączenia i posegregować je per aplikacja.

Dzięki takim statystykom, administratorzy baz danych już nie będą musieli wysyłać zapytań do administratorów sieci!

Jeśli instancja bazy danych jest zainstalowana na serwerze wirtualnym oraz korzysta z dodatkowej macierzy dyskowej, szablon automatycznie skoreluje te informacje.

Oprogramowanie wspiera wirtualizację VMware i Hyper-V oraz macierze dyskowe wszystkich producentów oraz tablice partycji MBR oraz GPT.

Jeśli macierz posiada problemy z wydajnością, administrator baz danych będzie o tym wiedzieć.

Badanie kwerend dla wszystkich aplikacji

Przedstawione do tej pory parametry potrafią dokładnie przedstawić wydajność instancji oraz dostępność usługi i baz danych. Jednak to nie pozwoli pokazać i zbadać wydajności bazy danych od strony aplikacji, która z niej korzysta.

Moduł Database Performance Analyzer pozwoli na dokładne badanie kwerend zainicjowanych przez wszystkie aplikacje, które korzystają z monitorowanej bazy danych. Warto podkreślić, że można monitorować tak dowolną aplikację, np. SharePoint, SAP, Exchange, CRM a nawet aplikacje napisane specjalnie dla danej firmy.

Oprócz wydajności kwerendy, moduł dokładnie wskaże winowajcę problemu z wydajnością.

Poniższy przykład pokazuje posegregowane kwerendy względem czasu, który był potrzebny dla ich wyniku.

Natomiast poniżej można zauważyć posegregowane kwerendy względem problemu wydajności, który został zidentyfikowany.

Po kliknięciu w ikonkę informacji „i”, otrzymujemy okienko z Bazy Wiedzy SolarWinds, które dokładnie opisuje problem, przez kogo może być potencjalnie rozwiązany, rozwiązanie oraz dodatkowe odnośniki do dokumentacji producenta.

Dla wtajemniczonych bazodanowców moduł posiada także dokładną analizę planów hash oraz badania operacji na tabelach.

Wszystkie dane są korelowane z wbudowanym doradcą, który wskaże rekomendowane korekty kwerend, włącznie z podkreśleniem, które wiersze w bazie danych mogą wpływać na daną kwerendę.

Podsumowanie

Mamy nadzieję, że artykuł przybliżył tematykę monitorowania baz danych oraz wszystkich elementów z nimi powiązanych. Dzięki modułom Server & Application Monitor oraz Database Performance Analyzer, można mieć pełną kontrolę nad środowiskiem aplikacyjnym oraz jego danymi.

Powyższe parametry wydajnościowe są przykładowe i wymienione moduły posiadają dużo więcej wartości, które są monitorowane.

Warto nadmienić, że parametry bazodanowe także można monitorować w czasie rzeczywistym, zatem problemy z wydajnością można także rozwiązywać „w locie”.

Zapraszamy do przetestowania rozwiązań SolarWinds.