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



10.06.2019

Inteligentne zarządzanie...

W dniach 11, 12 i 13 czerwca – odpowiednio – w Gdańsku, w Warszawie i w Katowicach,...
27.05.2019

Rozwiązania na platformie GCP

Citrix SD-WAN i Citrix ADC
27.05.2019

Chmura hybrydowa

Dell Technologies Cloud
27.05.2019

Uproszczona komunikacja

Cisco Webex
24.05.2019

Konferencja IT Manager of...

W dniach 12–14 czerwca w Sopocie odbędzie się konferencja IT Manager of Tomorrow 2019. To...
24.05.2019

Ochrona sieci

Fortinet FortiOS 6.2
24.05.2019

Mniejsza złożoność

Rittal VX25 Ri4Power
24.05.2019

All-in-one NAS

QNAP TDS-16489U R2
24.05.2019

Układy SoC

AMD Ryzen Embedded R1000

Pomiar wydajności serwera SQL

Data publikacji: 21-01-2019 Autor: Marcin Szeliga

Zapewnienie wydajnego działania serwerów jest jednym z najważniejszych obowiązków administratorów baz danych. Mimo to niewielu administratorów zbiera i analizuje dane dotyczące wydajności. Część z nich uważa, że monitorowanie i optymalizacja wydajności są zbyt skomplikowane, a reszta nie ma na to czasu, pochłonięta codziennymi obwiązkami.

 

To dwie skrajne postawy, które w rezultacie objawiają się podobnym zachowaniem – optymalizacja wydajności często sprowadza się do czekania, aż użytkownicy zgłoszą kolejny problem. Tymczasem aktywne monitorowanie wydajności serwerów przynosi wymierne korzyści:
 

  • Pozwala zrezygnować z opinii użytkowników jako podstawowego kryterium oceny. Ocena użytkowników jest bardzo subiektywna i nieprecyzyjna – to, co dzisiaj wydaje im się nieakceptowalnym spowolnieniem, jeszcze wczoraj oceniali jako normalne działanie programu. W dodatku każdy użytkownik stosuje własne kryteria oceny wydajności.
  • Ułatwia dyskusje z innymi działami IT. Zrzucanie winy na bazy danych za niską wydajność działania programów jest równie popularne wśród administratorów SAN co programistów. Dysponując danymi dotyczącymi wydajność serwera oraz wynikami ich analiz, administrator może wskazać faktyczne wąskie gardła obniżające wydajność systemu.
  • Pozwala szybciej wykrywać problemy, a nawet przewidywać je, zanim wystąpią. Szybsze ich wykrycie przekłada się na skrócenie czasu jego rozwiązania, a wykrycie problemu, zanim on wystąpi, pozwala usunąć go w sposób całkowicie niewidoczny dla użytkowników.


Celem artykułu jest przedstawienie metody monitorowania wydajności serwerów SQL przy użyciu standardowych narzędzi systemu Windows i serwera SQL oraz ich analizowania za pomocą darmowego oprogramowania Power BI Desktop. Na początek przyjrzyjmy się sposobom zbierania danych o wydajności serwerów.

> OCENA NOMINALNEJ WYDAJNOŚCI SERWERA

Wydajność serwera SQL zależy od wielu czynników. Pierwszym jest konfiguracja sprzętowa serwera, w szczególności pamięci, procesorów i dysków. Drugim – konfiguracja systemu operacyjnego, a w wypadku zwirtualizowanych serwerów SQL konfiguracja systemu hosta, hiperwizora i maszyny wirtualnej. Trzecim równie ważnym elementem jest konfiguracja serwera SQL, konfiguracja systemowych baz danych i baz danych użytkownika. Ostatnimi, ale często mającymi największy wpływ na wydajność elementami są projekt bazy danych i aplikacji klienckiej. Mało który administrator baz danych jest ekspertem we wszystkich tych obszarach, zaczynając od konfiguracji macierzy SAN, poprzez wewnętrzne mechanizmy działania serwera SQL i strategie indeksowania, a kończąc na dobrych praktykach pracy z bazami danych w językach C# czy Java. Mimo to mogą oni zdiagnozować 85% problemów wydajnościowych. Muszą tylko zacząć od oceny nominalnej wydajności serwera.

Nie znając możliwości serwera, nie jesteśmy w stanie określić maksymalnego obciążenia, które nie spowoduje jeszcze spadku wydajności. Bez znajomości nominalnej wydajności serwera nie mamy też z czym porównywać wyników bieżących pomiarów. Wyobraźmy sobie, że jesteśmy lekarzami i przyszło nam zbadać puls pacjenta. Powiedzmy, że jego tętno to 75 skurczów na minutę. Co nam to mówi? Jeżeli nie znamy nominalnej wydajności (w tym wypadku prawidłowego tętna spoczynkowego) – wartość ta niewiele znaczy. Nie mając z czym porównać zmierzonego wyniku, nie wiemy, czy jest on objawem jakichś problemów, czy wprost przeciwnie, potwierdzeniem dobrej kondycji. Co zrobimy, jeśli zmierzymy tętno 175 skurczów na minutę? Nie znając prawidłowego tętna maksymalnego, nie możemy ocenić, czy pacjent jest na progu zawału, czy może kontynuować intensywny trening przez następną godzinę.

> ZBIERANIE DANYCH O WYDAJNOŚCI SERWERA

Do oceny nominalnej wydajności serwera użyjemy monitora wydajności systemu Windows. Pozwala on zbierać i zapisywać w pliku lub bazie danych wyniki działania różnych liczników wydajności. Ponadto zbieranie danych może być uruchamiane automatycznie i zatrzymywane, co ułatwia powtarzanie testów.

Zaczynamy od skonfigurowania bazy danych, w której będziemy zapisywać wyniki pomiarów. Skoro mamy monitorować wydajność serwera SQL, najprostszym i najbardziej naturalnym rozwiązaniem jest utworzenie nowej bazy danych na monitorowanym lokalnym serwerze SQL. Tworząc bazę danych, należy określić lokalizację i początkową wielkość jej plików oraz ustawić dla niej opcje RECOVERY SIMPLE i DELAYED_DURABILITY = FORCED. Pierwsza spowoduje automatyczne obcinanie dziennika transakcyjnego, dzięki czemu plik dziennika nie będzie rósł w nieskończoność, druga włączy asynchroniczny zapis do pliku dziennika, co zmniejszy obciążenie dysku, na którym umieszczony został ten plik. Na poniższym listingu pokazano przykładowy skrypt zakładający bazę danych Performance. Co ważne, jeżeli monitorowany serwer dysponuje kilkoma dyskami, pliki tej bazy danych powinny zostać umieszczone na osobnym, nieużywanym przez pozostałe bazy, dysku.

 

[...]

 

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"