Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



21.02.2019

Wdrażanie projektów AI

Infrastruktura OVH
21.02.2019

Certyfikacja kluczy

HEUTHES-CAK
21.02.2019

Kopie zapasowe

Veeam Availability for AWS
21.02.2019

Dysk SSD Samsung 970 EVO Plus

Dysk SSD Samsung 970 EVO Plus
21.02.2019

Szyfrowane USB

Kingston IronKey D300 Serialized
21.02.2019

Bezpieczeństwo sieci

Check Point Maestro i seria 6000
21.02.2019

Ochrona danych

Commvault IntelliSnap i ScaleProtect
21.02.2019

Ułatwienie telekonferencji

Plantronics Calisto 3200 i 5200
21.02.2019

Transformacja centrów danych

Fujitsu PRIMEFLEX for VMware vSAN

Analiza danych o wydajności serwera SQL

Data publikacji: 21-02-2019 Autor: Marcin Szeliga
Rys. 1. Analiza obciążenia...

W poprzedniej części opisano metodę zbierania danych o wydajności serwerów przy użyciu systemowego monitora wydajności oraz przedstawiono sposób wygenerowania testowego obciążenia serwera SQL za pomocą darmowego narzędzia HammerDB. W tej części przeanalizujemy zebrane dane o wydajności serwera i utworzymy kilka ułatwiających ich interpretację raportów.


Szablon użytego do zebrania najważniejszych danych o wydajności serwera kolektora danych dostępny jest pod adresem github.com/szelor/SQL-Server-Performance-Monitoring. Kolektor ten został zdefiniowany tak, żeby zapisywać wyniki pomiarów liczników wydajności w bazie danych.

W tym artykule analizę i wizualizację danych przeprowadzimy w darmowym, dostępnym pod adresem tinyurl.com/MicrosoftPower programie Power BI Desktop. Pozwala on pobierać dane z różnych źródeł, przygotowywać je do analiz, modelować i prezentować za pomocą interaktywnych wizualizacji.

> PRZYGOTOWANIE DANYCH

Źródłem danych będzie serwer SQL Server. W bazie Performance utworzymy prosty widok PerfMon, za pośrednictwem którego odczytamy dane zebrane przez liczniki wydajności i zapisane w trzech powiązanych ze sobą tabelach. Zwróćmy uwagę na konwersję czasu zebrania danych z formatu tekstowego na typ Datetime. Program Power BI Desktop używa zmiennych na podstawie typów danych, np. dla zmiennych daty i czasu domyślnie tworzy hierarchię rok-kwartał-miesiąc-dzień. W dodatku wiele wizualizacji wymaga zastosowania danych odpowiednich typów.

CREATE VIEW [dbo].[PerfMon] AS
SELECT CONVERT(DATETIME, CAST(CounterDateTime
AS VARCHAR(19))) AS CounterDateTime,
MachineName, ObjectName, CounterName, InstanceName,
CounterValue
FROM dbo.CounterData AS D JOIN dbo.CounterDetails AS C ON D.CounterID = C.CounterID;

Po uruchomieniu programu Power BI Desktop należy połączyć się ze źródłem danych. Jako typ źródła danych wybierzmy Bazę danych programu SQL Server, a następnie podajmy nazwę serwera SQL (zamiast nazwy lokalnego serwera można wpisać kropkę) i bazy danych Performance. W tym wypadku dane zaimportujemy do modelu Power BI (domyślna opcja Importuj), ale możliwe jest również utworzenie połączenia bezpośrednio odczytującego dane ze źródła (opcja DirectQuery). Wybór drugiej opcji pozwoliłby na bieżąco analizować wydajność serwerów. Po kliknięciu OK wyświetlone zostaną tabele i widoki wybranej bazy – należy zaznaczyć widok PerfMon i kliknąć przycisk Edytuj. Zapytanie pobierające dane z widoku PerfMon zostanie wyświetlone w edytorze zapytań Power Query.

Gotowy, zawierający wszystkie opisane raporty plik SQL Ser­ver Performance.pbix dostępny jest pod adresem github.com/szelor/SQL-Server-Performance-Monitoring.

Zapytanie zwraca sześć kolumn: czas pomiaru, nazwę serwera, nazwę obiektu i jego wystąpienia, nazwę licznika wydajności i zmierzoną wartość. Scalając nazwy, poprawimy czytelność pierwszego raportu. W tym celu należy zduplikować kolumny z nazwami, a następnie zaznaczyć wszystkie zduplikowane kolumny i je scalić. Tak przygotowane dane możemy zaimportować do modelu.

> OCENA NOMINALNEJ WYDAJNOŚCI SERWERA

W pierwszej kolejności przyjrzymy się rozkładowi wartości liczników wydajności zmierzonych podczas testowego obciążenia serwera. Pozwoli to ocenić nominalną wydajność serwera i porównywać jego wydajność w poszczególnych dniach, tygodniach, miesiącach i latach. Przede wszystkim jednak dostarczy nam danych potrzebnych do precyzyjnego określenia wartości brzegowych poszczególnych liczników wydajności. To ważne, bo wszystkie pozostałe raporty będą korzystały z tych wartości brzegowych i jeżeli błędnie je ustawimy, będą zwracały błędne informacje.

Zacznijmy od dodania filtru pozwalającego wybrać prezentowane liczniki wydajności. Zastosowana wizualizacja HierarchySlicer jest jedną z wielu dodatkowych, dostępnych za darmo wizualizacji. Żeby ją pobrać, wystarczy kliknąć znajdujący się pod ikonami wizualizacji wielokropek, wybrać opcję Zaimportuj z platformy handlowej, znaleźć wizualizację HierarchySlicer i kliknąć przycisk Dodaj. Wizualizację umieścimy z lewej strony raportu. Po przeciągnięciu do niej kolumn ObjectName, CounterName i InstanceName filtr jest prawie gotowy. Wystarczy tylko sformatować go tak, żeby możliwe było jednoczesne wybranie wielu elementów.

Żeby móc analizować obciążenie serwera w poszczególnych dniach, tygodniach i miesiącach, do górnej części raportu dodamy kolejną niestandardową wizualizację, TimeLine. Ona również jest dostępna za darmo na platformie handlowej. Po odpowiednim sformatowaniu zajmuje mało miejsca i pozwala łatwo wybrać zakres dat.

Pozostałą część raportu wypełni trzecia niestandardowa wizualizacja, Box and Whisker Chart. Ją też należy pobrać z platformy handlowej i dodać do raportu. Jako kategorię wykresu użyjemy dodanej kolumny Counter, próby danych będą obliczane dla wartości kolumny CounterDateTime, a wartościami będą dane odczytane z kolumny CounterValue. Wizualizację należy sformatować tak, żeby wąsy pudełek wyznaczały półtorakrotność rozstępu ćwiartkowego, a nie wartości minimalną i maksymalną. Dzięki temu łatwiej zobaczymy odstające (niespodziewanie duże i małe) wartości liczników wydajności. Zbudowany wykres pozwala szybko ocenić rozkład wartości wybranych zmiennych we wskazanym okresie (rys. 1).

Analiza danych zebranych w ciągu dnia, albo nawet w ciągu kilku dni, pozwoli określić nominalną wydajność serwera. Otrzymane wyniki posłużą nam do określania wartości brzegowych liczników wydajności. W ten sposób będziemy mogli automatycznie porównywać aktualną wydajność serwera z jego wydajnością nominalną. Warto samodzielnie przeanalizować rozkład wartości pozostałych liczników.

> OCENA BIEŻĄCEJ WYDAJNOŚCI SERWERA

Systemowy monitor wydajności prezentuje zebrane dane w postaci wykresów. Na ich osi X znajduje się czas pomiaru, a na osi Y – wartość zmierzona przez licznik wydajności. My też zaczniemy od utworzenia takich wykresów liniowych, ale uzupełnimy je o wartości brzegowe zdefiniowane dla poszczególnych liczników wydajności.

 

[...]


Pracownik naukowy Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie; jest autorem książek poświęconych analizie danych i posiada tytuł Microsoft Most Valuable Professional. 

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"