Studium przypadku – optymalizacja systemu u operatora telco

Projekt dotyczył optymalizacji jednego z kluczowych systemów Operatora, składającego się
z 22-óch baz o łącznej wielkości przekraczającej 1 TB. W związku z planami rozbudowy funkcjonalności, dostawca systemu oszacował, że obciążenie systemu może zwiększyć się o około 20%. System pracował niewydajnie, co przekładało się na zbyt długi czas wykonywania poszczególnych procesów biznesowych oraz znaczne obciążenie CPU serwerów (średnio 85-90%, w szczytach dochodzącego nawet do 100%), dodatkowe jego obciążenie nie wchodziło w grę. Rozważano dwa scenariusze. Pierwszy to zakup nowego sprzętu i uruchomienie systemu w nowym środowisku, drugi natomiast to optymalizacja wydajności aktualnego systemu. Zakup sprzętu związany był z inwestycją sięgającą kilku milionów złotych, optymalizacja natomiast okazała się opcją kilkadziesiąt razy tańszą przy osiągnięciu takiej samej wydajności. Wybór więc był prosty.

Optymalizacja, z powodu trudności przy restartowaniu systemu (szacowany czas zamykania
i otwierania całości systemu wynosił ok. 9 godzin), sprowadziła się przede wszystkim do tworzenia nowych indeksów w celu optymalizacji zapytań. Ponadto po wnikliwej analizie wytypowano 3 tabele, zawierające logi aplikacji, do usunięcia nadmiarowych danych oraz ich przebudowy. Dodatkowo w jednej z baz dokonana została przebudowa części indeksów, celem zmniejszenia ich wielkości, a co za tym idzie przyśpieszenia ich działania. Żadna ze zmian nie ingerowała w kod aplikacji i nie wiązała się ze zmianą funkcjonalności bądź logiki ich działania.

Korzyści dla klienta:

Wzrost wydajności systemu o 82% (średnia dla 2 serwerów), a co za tym idzie zwiększenie szybkości działania aplikacji. W tym samym czasie pracownicy mogą wykonać więcej operacji, co przekłada się na większą ilość wykonanych zadań i lepsze wykorzystanie zasobów;

Obciążenie CPU serwerów zmalało ponad dwukrotnie (do poziomu 35-40% w zależności od serwera) co pozwala na uruchomienie na tym samym sprzęcie większej ilości aplikacji. Utylizacja zakupionego sprzętu znacznie się więc poprawiła;

Większa stabilność środowiska przekładająca się na ograniczenie restartów systemu
i utrzymanie odpowiedniej jego wydajności przy jednoczesnym wyeliminowaniu przestojów
w pracy załogi oraz wyraźnego zmniejszenia interwencji działu IT;

Ograniczenie kosztów – dzięki poprawie parametrów wydajności systemu i obciążenia serwerów do obsługi tych samych aplikacji potrzebna jest mniejsza ilość licencji, co pozwala na osiągnięcie ogromnych oszczędności w zakupie sprzętu, oprogramowania i ich wsparcia. Zbędny stał się zakup nowych serwerów, co przełożyło się na spore oszczędności w wydatkach na infrastrukturę sprzętową (koszt ich zakupu był kilkadziesiąt razy większy od kosztu optymalizacji);

Ograniczenie kosztów zakupu sprzętu w przyszłości – poprawa wydajności daje możliwość zakupu sprzętu bardziej dopasowanego do aktualnych potrzeb Klienta, a co za tym idzie do ograniczania niepotrzebnych zakupów droższego sprzętu o wyższych parametrach;

Zwrot z inwestycji (ROI) – dzięki nieporównywalnie mniejszym kosztom optymalizacji
w stosunku do zakupu infrastruktury sprzętowej firma osiągnęła kilkunastokrotnie szybszy zwrot z inwestycji i poniesionych wydatków.

W kolejnym artykule opiszę dokładniej techniczne aspekty optymalizacji. Artykuł dostępny jest tutaj

Zachęcam do samodzielnego sprawdzenia możliwości optymalizacji Waszych baz danych – przygotowaliśmy program do badania wydajności baz danych (na chwilę obecną gotowa jest wersja dla Oracle, pracujemy nad wersją dla MSSQL i PostgreSQL). Program jest bezpłatny, warunkiem jego używania jest rejestracja na stronie www.commit-it.pl/perfcheck

Jeżeli kogoś zainteresował temat optymalizacji i chciałby się dowiedzieć czegoś więcej, zachęcam do kontaktu: optymalizacja@commit-it.pl

Jedna odpowiedź

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *