Dane rządzą współczesnym biznesem – od systemów obsługi klienta, przez systemy transakcyjne i billingowe po rozwiązania e-commerce i logistykę.
Od czasów reakcji aplikacji, szybkości dostępu do danych, tworzenia raportów online z systemów transakcyjnych bardzo często zależy jakość obsługi klienta, sprzedaż czy możliwość świadczenia usług.
Aby sprostać wymaganiom rynkowym aplikacje biznesowe są nieustannie rozwijane. Zwykle związane jest to z pojawieniem się problemów wydajnościowych w tworzonych systemach, a w sytuacjach skrajnych radykalnym spadkiem efektywności, w tym postępującej erozji wydajności środowisk bazodanowych.
W sytuacji, gdy wymagania wobec aplikacji biznesowych rosną, a wraz z nimi skokowo zwiększa się ilość przetwarzanych operacji stajemy przed dylematem: | |
W jaki sposób poradzić sobie z rosnącym obciążeniem serwerów przy operacjach przetwarzających dane i pracą wielu aplikacji? | |
Typowe podejście do rozwiązania tego problemu oferowane przez producentów aplikacji oraz dostawców sprzętu i oprogramowania to: | |
Zakup serwerów o większej wydajności lub innego rodzaju inwestycja w sprzęt, jak macierze dyskowe. |
Zwykle mocniejszy sprzęt, dzięki zwiększeniu szybkość CPU, czy dysków, usprawnia wydajność aplikacji – jednak poprawa ta ma zazwyczaj charakter liniowy i nie powoduje radykalnej, jakościowej zmiany parametrów pracy systemu. Przy istotnych inwestycjach sprzętowych firmy oczekują wzrostu wydajności o rząd lub dwa rzędy wielkości, jednak modernizacja sprzętowa rzadko zapewnia taki efekt w dłuższym okresie czasu.
Znaleźć źródło problemu
Dwa typy systemów to te o charakterystyce OLTP – transakcyjne wykonujące dużo małych operacji oraz systemy typu OLAP gdzie procesy raportowe odczytują bardzo duże ilości danych z systemów dyskowych. Jedną z najczęściej występujących przyczyn opóźnień w przetwarzaniu danych mogą być zapytania, które powodują bardzo duże obciążenie procesora (CPU). Dotyczy to przede wszystkim wszelkiego rodzaju systemów billingowych czy magazynowych operujących na milionach obiektów. W sytuacji, gdy podstawowe działania optymalizacyjne zostały już zrealizowane przez wewnętrzny zespół IT, firma ma do wyboru:
- Zakup nowego sprzętu i nowych licencji bazodanowych (koszty mogą sięgać nawet kilku milionów złotych)
- Zamówienie usługi optymalizacji bazy danych u dostawcy oprogramowania biznesowego (Oracle, Microsoft)
Jednak żadne z tych rozwiązań nie daje gwarancji rozwiązania problemów ani osiągnięcia skokowego wzrostu wydajności.
Powszechny problem: zmiana planu wykonania zapytań SQL przez silnik bazy danych
Dostawcy aplikacji często szukają problemów ad hoc tj. patrząc na problem z punktu widzenia tylko aplikacji zamiast próby optymalizacji całości systemu, czyli aplikacji i działającej pod nią bazy danych. Częstym problemem jest zmiana planu wykonania zapytań SQL, których nie monitorują właściciele aplikacji. Typowe narzędzia administracyjne baz danych nie dostarczają szczegółowych statystyk na temat obciążeń poszczególnych elementów bazy, operacji I/O czy systemu operacyjnego. Dodatkowo, aby wyciągnąć właściwe wnioski na temat pracy bazy, należy analizować jej pracę przez dłuższy czas i opierać się na trendach wskazujących poprawę lub pogarszanie się jej wydajności.
DBPLUS oferuje usługę polegającą na przeprowadzeniu analizy pracy bazy danych w dłuższym terminie i dokonaniu jej optymalizacji do właściwego, ustalonego z klientem poziomu z gwarancją jakości wykonanej usługi.
Dzięki dedykowanemu oprogramowaniu służącemu do monitorowania i optymalizacji zapytań danej aplikacji sprawiającej problemy wydajnościowe, jesteśmy w stanie sporządzić plan optymalizacji zapytań i struktur bazy danych, oraz przygotowywać rekomendacje do optymalizacji procesów biznesowych.
W efekcie uzyskujemy nawet stukrotne przyspieszenie pracy aplikacji biznesowych bez istotnej modyfikacji ich kodu i zaangażowania działów programistycznych.
Jak to działa?
- Dokładne opomiarowanie zużycia zasobów przez poszczególne zapytania SQL, zajętość CPU, operacji I/O 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 np. planu wykonywania zapytania SQL.
- 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 użycia procesora na sortowanie danych lub liczbę danych odczytywanych i przesyłanych z zasobów dyskowych.
Zbyt duże obciążenie CPU
Bardzo często poszczególne elementy bazy w zbyt dużym stopniu wykorzystują procesor, a raport zużycia wskazuje na 100% wykorzystanie zasobów. Typowym podejściem klientów do rozwiązania tego problemu jest:
- Zakup nowego sprzętu o większej wydajności
- Zakup dodatkowych procesorów do istniejących serwerów
Jednak bardzo często okazuje się, że za skokowy wzrost zużycia procesora odpowiada drobny element. Optymalizacja jest możliwa do wykonania przez administratorów jedynie w sytuacji, w której dysponują oni raportem pokazującym, w jaki sposób moc obliczeniowa jest rozdzielana pomiędzy poszczególne elementy silnika bazy danych w ujęciu historycznym.
Gwarancja efektów
Doświadczenie DBPLUS zdobyte w bardzo wielu środowiskach na różnych platformach wskazuje, że większość problemów wydajnościowych ma swoją powtarzalność w czasie, bez względu na poniesione koszty na środowisko sprzętowe, w którym pracuje. U podstawy naszej metody optymalizacji leży zebranie jak największej liczby informacji o pracy bazy danych w założonym przedziale czasowym. Po analizie tych danych, jesteśmy w stanie wskazać źródło problemu z wydajnością, gdzie może być to spowodowane poprzez zbyt długi czas odczytywania informacji z urządzeń dyskowych lub złą składnią zapytań SQL. Wykorzystując DBPLUS Performance Monitor mierzymy ten czas i pokazujemy z dokładnością co do sekundy, czy problem leży po stronie bazy danych, czy też po stronie systemu dyskowego, a co za tym idzie możemy pokazać w funkcji czasu zapytania odpowiedzialne za problemy wydajnościowe.
W odróżnieniu od zakupu serwerów umowa na optymalizację z DBPLUS gwarantuje osiągnięcie określonych parametrów pracy.
Miernikiem wykonania naszej usługi optymalizacji baz danych jest realizacja procesu biznesowego w czasie wskazanym przez klienta. Dodatkowo ustalamy z klientem mierniki techniczne, takie jak obniżenie zajętości CPU lub urządzeń wejścia/wyjścia (I/O), jakimi są np. urządzenia dyskowe.
Stała gwarancja wydajności bazy danych powierzonej w obsługę do DBPLUS
To usługa, którą oferujemy stałym klientom polegającą na utrzymaniu uzgodnionej wydajności w określonym czasie. Istotą usługi jest monitoring wydajności baz danych w trybie ciągłym i raportowanie wskaźników wydajnościowych baz danych, które służą do przygotowania zmian. Po akceptacji przez klienta proponowanych zmian DBPLUS wykonuje ich wdrożenie. Jakość usług jest gwarantowana poprzez ciągłe porównywanie założonych wskaźników wydajnościowych z parametrami oczekiwanymi przez klienta.