Pomysły na wydajność

Pomimo starań dostawców sprzętu i oprogramowania, problem wydajności rozwiązań informatycznych wciąż pozostaje aktualny.

Pomimo starań dostawców sprzętu i oprogramowania, problem wydajności rozwiązań informatycznych wciąż pozostaje aktualny.

Pomysły na wydajność

Piotr Nogaś, inżynier w Veritas Polska

Od kiedy informatyka wyszła poza bramy uczelni, lista wymagań stawianych systemom wydłuża się: wysoka dostępność, skalowalność, bezpieczeństwo czy możliwość szybkiego tworzenia i modyfikowania aplikacji przy stale rosnącej liczbie przetwarzanych i przechowywanych danych. Urzeczywistnienie tych idei zazwyczaj odbywa się kosztem wydajności.

W codziennej praktyce poszukiwanie sposobu zwiększenia wydajności w systemach informatycznych sprowadza się do analizy kilku obszarów. Istotne są głównie: architektura systemu, sprawność serwera, wydajność bazy danych i wydajność pamięci masowych.

Niewydajne definicje

Czym jest wydajność? Pojęcie wydajności we współczesnych systemach informatycznych, nadużywane w języku broszur marketingowych, jest wieloznaczne. Mamy bowiem podawaną przez producentów wydajność nominalną, inaczej teoretyczną, i kontrastującą z nią wydajność rzeczywistą. Wydajność teoretyczna może służyć do określenia typu czy klasy rozwiązań. Ta druga natomiast określa rzeczywiste osiągi, które jednak dla poszczególnych produktów o tej samej wydajności teoretycznej mogą być zaskakująco różne.

Pochodną tego problemu jest wydajność rejestrowana w laboratorium w porównaniu z wydajnością możliwą do uzyskania w realnym środowisku przetwarzania danych. Najlepszym przykładem są testy wydajności transakcyjnej baz danych TPC - wyników notowanych podczas testów zazwyczaj nie da się powtórzyć w typowym środowisku biznesowym. Stąd wyniki testów laboratoryjnych, przeprowadzonych kosztem ogromnych nakładów finansowych, nie powinny być podstawą do wyboru konkretnego rozwiązania, ale spełniać jedynie rolę pomocniczą.

Wydajność transakcyjna, czyli określenie liczby transakcji możliwych do wykonania we wskazanym czasie, często bywa mylona z wydajnością obliczeniową, odnoszącą się do sprawności w wykonywaniu obliczeń arytmetycznych. Pierwsza zależy głównie od konstrukcji baz danych i wydajności podsystemu wejścia-wyjścia (I/O), druga zaś w największej mierze od zainstalowanej mocy obliczeniowej, głównie od liczby i mocy procesorów.

Rozróżnienia wymagają także pojęcia wydajności technicznej i biznesowej. Nie pomoże bowiem zastosowanie wieloprocesorowego serwera, jeżeli aplikacja nie potrafi wykorzystać jego zasobów i działa tak samo wolno jak na jednym procesorze lub nawet wolniej. Co z tego, że system operacyjny może szybko kopiować pliki, skoro kopiowanie danych między tabelami w bazie odbywa się z wykorzystaniem innych, wielokrotnie wolniejszych mechanizmów? Jaki jest pożytek z szybkiej macierzy, gdy aplikacja wymienia dane z bazą poprzez mało wydajny interfejs? O sprawności całego rozwiązania decyduje jego najsłabszy element.

Szybko, znaczy równolegle

Wydajność najczęściej kojarzy się z szybkością komputera. General-nie jest to założenie słuszne, ale z pewnymi zastrzeżeniami. Ten sam sprzęt można uznać za szybki lub wolny, w zależności od rodzaju zadań, jakie ma wykonywać. Przykładowo, komputery mainframe mają niezrównaną wydajność transakcyjną, jednak ich wydajność obliczeniowa w porównaniu z serwerami RISC, a nawet mocnymi serwerami PC, jest mizerna.

Teoretycznie wydajność komputerów rośnie wraz z przyrostem liczby procesorów. W powszechnie stosowanej architekturze SMP (Symmetric Multi Processing) zwiększa-nie liczby procesorów powoduje jednak coraz mniejszy przyrost mocy, równolegle bowiem rośnie problem synchronizacji między nimi i opóźnienia w dostępie do pamięci. W praktyce dodawanie kolejnego procesora zwiększa moc serwera jedynie o 30-40% nominalnej mocy nowego układu. W przypadku serwerów RISC współczynnik ten udaje się utrzymać jedynie przy liczbie procesorów nie większej niż osiem i to tylko pod pewnymi warunkami; w serwerach PC - co najwyżej przy czterech procesorach. Przy większej liczbie procesorów narzut wynikający z opóźnień jest tak duży, że zwiększanie ich liczby przestaje być opłacalne.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200