Gdy dochodzimy do ściany

Na polskim rynku pojawiła się usługa polegająca na przeprowadzeniu takiej analizy i dokonaniu optymalizacji, która - zależnie od stanu bieżącego - może skutkować nawet stukrotnym przyspieszeniem pracy istniejącego oprogramowania bez jego istotnej modyfikacji, jedynie przez dostrojenie bazy oraz modyfikacje niektórych elementów jej struktury pod kątem znacznie lepszej wydajności. Kluczem do takiej usługi jest wiedza i korzystanie z narzędzi, które umożliwią "opomiarowanie" zapytań wydawanych przez kłopotliwą aplikację. Na tej podstawie można sporządzić plan optymalizacji zapytań i struktur bazy, które razem dają gwarantowany mierzalny efekt. Firma może się sama przekonać, że działania odniosły skutek, także w dłuższej perspektywie. Jest to niemożliwe bez dobrego opomiarowania pracy bazy.

Jaka jest odpowiedź dostawców oprogramowania

Typową odpowiedzią dostawców na problemy wydajnościowe aplikacji jest żądanie zakupu mocniejszego serwera - wyposażonego w większą liczbę rdzeni, szerszą magistralę dostępu do danych, szybszą macierz dyskową doposażoną w moduły SSD i bardzo szybkie dyski mechaniczne. W przypadku zakupu nowego, mocniejszego serwera związane z tym koszty dotyczą nie tylko sprzętu. Każda z licencji na bazę Oracle, nawet nazywana "unlimited" zawiera ograniczenie na liczbę rdzeni procesora - im ta liczba jest wyższa, tym licencja jest droższa. Są to niebagatelne koszty, liczone niekiedy w milionach złotych. Oczywiście, każda firma, zanim podejmie decyzję o zakupie, dostaje opinię od producenta oprogramowania, niekiedy także od dostawcy bazy. Trudno dyskutować z opinią firmy Oracle, zalecającą partycjonowanie bazy na mniejsze części i rozbudowę środowiska serwerów, co przyspieszy pracę, ale będzie wymagało zakupów sprzętu i kosztownych licencji na oprogramowanie bazodanowe.

Czasami ani dostawca oprogramowania, ani producent bazy danych nie zna odpowiedzi na problemy wydajnościowe - nie mogą oni przewidzieć zachowania aplikacji w każdym przypadku, gdyż to oprogramowanie jest zbyt skomplikowane. Dostawcy zdają się zapominać, że poprawa wydajności będzie co najwyżej liniowa - baza będzie działać tyle razy szybciej, ile razy mocniejszy zestaw serwerów zostanie zainstalowany. Nie rozwiązuje się zatem przy takim podejściu problemów, o których wiadomo, że wymagają radykalnej poprawy, gdzie dwu- lub trzykrotne przyspieszenie pracy nie będzie wystarczające w dłuższej perspektywie czasu.

Diabeł tkwi w szczegółach

Dokładne opomiarowanie zużycia zasobów przez poszczególne zapytania sprawia, że można wykryć obszary, w których już wprowadzona optymalizacja przynosi skutek, a gdzie jest miejsce na dalsze przyspieszenie pracy aplikacji. Większość operacji związanych z taką optymalizacją dotyczy zmian planu wykonywania zapytania, skutkujących inną jego realizacją. Przy takich zmianach niekoniecznie trzeba zmieniać indeksy czy dodawać obiekty w bazie, by osiągnąć lepszą wydajność. Chociaż zmiany wydają się niewielkie, przynoszą ogromne efekty, gdyż zmniejsza się obciążenie niektórych obiektów, redukując przez to na przykład nakład procesora na sortowanie danych lub liczbę danych przesyłanych z zasobów dyskowych.

Kolejnym problemem jest bardzo duże wykorzystanie CPU przez poszczególne elementy bazy. Zazwyczaj raport zużycia zasobów pokazuje wtedy stuprocentowe wykorzystanie wszystkich procesorów. Jeśli więc firma ma zamiar poprawić wydajność, musi zainwestować w nowy, o wiele mocniejszy sprzęt lub przynajmniej zakupić dodatkowe procesory do istniejącego serwera. Tymczasem analiza pracy bazy może pokazać, że za radykalny wzrost zużycia procesora jest odpowiedzialny jeden z elementów, zatem drobna zmiana sprawia, że zamiast obciążenia wszystkich 64 rdzeni, do normalnej pracy bazy danych wystarczy 6 rdzeni.

Podjęcie takiej optymalizacji jest możliwe przez administratorów, ale dopiero wtedy, gdy dostaną oni raport, który pokazuje, w jaki sposób moc obliczeniowa jest rozdzielona między poszczególne elementy motoru bazy danych. Wygenerowanie takich informacji samodzielnie wymagałoby przygotowania raportów z zestawieniem historycznym. Użycie specjalizowanego oprogramowania bardzo pomaga przy analizach i daje administratorom potężne narzędzie w optymalizacji bazy.


TOP 200