Testowanie obciążenia systemu

Eksplozja aplikacji klient/serwer, nie omijająca także Polski, zdarzyła się bez dostępu zestawu narzędzi, pozwalających na dokładne przetestowanie - w różnych aspektach - aplikacji, przed jej przekazaniem użytkownikom.

Eksplozja aplikacji klient/serwer, nie omijająca także Polski, zdarzyła się bez dostępu zestawu narzędzi, pozwalających na dokładne przetestowanie - w różnych aspektach - aplikacji, przed jej przekazaniem użytkownikom.

Obecnie pojawiło się już sporo takich narzędzi do testowania wydajności bazy danych, aplikacji, sieci i stacji klienta pracujących w konfiguracji klient/serwer.

Testowanie obciążenia systemu zaczęło się na dużych komputerach (mainframe) i powoli migrowało do Unixa a potem PC. Do niedawna jednak w celu przeprowadzenia tej operacji w środowisku klient/serwer, należało opracować własne narzędzia. Obecnie można je kupić z półki; na ogół mają jedną poważną wadę - wysoką cenę i wiele małych oraz średnich firm nie może sobie na nie pozwolić.

Cel testowania

Czytelnik może zapytać - czy i w jakim celu jest potrzebne testowanie obciążenia systemu komputerowego i aplikacji.

Tak, ponieważ w systemie tym jest wiele miejsc mających wpływ na jego wydajność: sam komputer, system operacyjny, system zarządzania bazą danych, karty sieciowe, PC, aplikacja itd. Celem zaś jest wskazanie aktualnych i potencjalnych wąskich gardeł systemu. Co się stanie, jeśli za pół roku zechcemy zwiększyć liczbę użytkowników?

Testowanie obciążenia systemu ma służyć właściwemu zaplanowania instalacji komputerowej z uwzględnieniem przyszłych potrzeb. Czy taniej będzie kupić już teraz potężniejszy system czy też dokonać jego rozbudowy po zwiększeniu liczby użytkowników lub rozmiaru obsługiwanej bazy?

Dwa podejścia

Istnieją dwie podstawowe metody testowania obciążenia systemu. Pierwsza, polega na ocenie zmiany wydajności w miarę wzrostu obciążenia. W trakcie testowania obciąża się system niewielką liczbą stacji użytkowników, na przykład 20 komputerami PC lub terminalami i na tej podstawie ocenia spadek wydajności systemu, przy wzroście obciążenia do kilkudziesięciu lub kilkuset użytkowników. Druga metoda wykorzystuje wieloprocesorowy wielowątkowy system unixowy do symulowania pracy wielu użytkowników.

Specjaliści nie mogą zgodzić się co do tego, która metoda daje bardziej wiarygodne wyniki. Istnieje obawa, że system może działać znakomicie dla 20 użytkowników i "padnie" po zwiększeniu ich liczby nawet do 21. Metoda symulacyjna ma tę wadę, że nie uwzględnia wpływu ruchu w sieci ani czasu reakcji użytkownika. Jednakże jej główną zaletą jest mały koszt przeprowadzania testu oraz to, że może ją przeprowadzić nawet mała firma.

Główni producenci

Gotowe pakiety testowe dostarcza jedynie trzech producentów:

Mercury Interactive, Microsoft i SQA (patrz ramka).

Mercury LoadRunner. Firma Mercury Interactive produkuje narzędzia do obydwu wspomnianych wyżej metod testowania. WinRunner i LoadRunner PC tworzą zestaw do testowania obciążenia za pomocą komputerów PC, dołączonych do serwera (bazy danych lub aplikacji). WinRunner zapamiętuje akcje użytkownika i zapisuje je w pliku skryptu, opisującym sposób jego działania. LoadRunner może ten plik powielić na komputery PC w sieci i uruchamiać na nich. Możliwe jest również symulowanie jednakowych akcji wielu użytkowników (np. logowania się w tej samej chwili), co pozwala wyłapywać wąskie gardła.

LoadRunner XL (produkt samodzielny lub część pakietu LoadRunner Client/Server) działa metodą symulowania akcji wielu wirtualnych użytkowników w sieci przez posyłanie wielu zapytań do bazy danych. Działa na maszynie unixowej w sieci i może symulować jednoczesne działania setek użytkowników. Firma Mercury dostarcza narzędzia zbierające zapytania SQL podczas działania aplikacji, w celu wykorzystania ich w trakcie testowania przez LoadRunner XL. Program zapisuje także czasy odpowiedzi serwera na każde z zapytań, co pozwala na optymalizację aplikacji.

SQA LoadTest. Firma SQA oferuje program LoadTest współpracujący ściśle z programami testującymi SQA Robot i SQL Manager. SQA Robot działa na komputerze PC, gdzie uruchamia wcześniej przygotowany skrypt, powielony w sieci przez SQA LoadTest, przystosowany do typu aplikacji i zakresu testowania. SQA Manager zarządza procesem testowania. Pakiet pozwala na testowanie dowolnego typu serwera bazy danych (Unix, OS/2, Windows NT) ze stacji PC działających pod Windows. Pakiet zawiera także moduły określające czas odpowiedzi na różne skrypty testowe dla określenia optymalnej konfiguracji sprzętowej.

Zestaw SQA Suite TeamTest Client/Server, zawierający SQA Robot, SQA Manager i SQA LoadTest kosztuje 12 395 USD. Podobnie jak omawiany wyżej LoadRunner PC firmy Mercury, SQA LoadTest może testować obciążenie jedynie taką liczbą PC, ile jest ich w sieci.

Microsoft Visual Test 4.0. Jest to pakiet do tworzenia własnych programów testujących w języku zbliżonym do Visual Basicu. Za cenę 599 USD jest to interesująca alternatywa, mimo że wymaga wiele pracy programistycznej.

Proste rozwiązanie

Testowanie wydajności serwera bazy danych jest kosztowne i czasochłonne. Najprostszy sposób jego zwiększenia sprowadza się zwykle do dodania pamięci do komputera. Od tego też należy zacząć, dopiero potem diagnozować bardziej zaawansowane opcje.

Co z siecią?

Termin "testowanie obciążenia systemu" sugeruje testowanie zdolności serwera bazy danych do jednoczesnej obsługi wielu zapytań i modyfikacji. Jednakże często to nie serwer bazy limituje wydajność aplikacji w całości. Jeżeli wielu użytkowników jest dołączonych do jednego segmentu sieci Ethernet 10 Mb/s, to właśnie sieć może zwiększać czas odpowiedzi systemu.

Dla przetestowania obciążenia sieci wystarcza użycie jednego z wielu handlowo dostępnych pakietów monitorowania obciążenia, produkowanych przez HP, Network General, Intel czy inne firmy.

Gorzej jest z przewidywaniem odpowiedzi sieci na nową aplikację. Istnieją pakiety programistyczne pozwalające na symulację obciążenia w sieci LAN i WAN. Należą do nich np. Comnet III (firmy CACI Products) i Bones (Systems and Networks). Niestety są to również pakiety kosztowne i wymagające dużego nakładu pracy dla uzyskania miarodajnych wyników.


TOP 200