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ź