Embedded Embedded Systems Arc hitecture System Performance

Podobne dokumenty
Embedded Systems Architecture System Performance. Embedded Systems Architecture 1

Wydajny Linux. Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys

Inżynieria Wytwarzania Systemów Wbudowanych. Analiza Wydajności Systemów. Inżynieria Wytwarzania Systemów Wbudowanych 1/75

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Diagnostyka pamięci RAM

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Analizator wydajności AMD CodeAnalyst

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Działanie systemu operacyjnego

Monitor maszyn wirtualnych

... Podpis osoby - osób upoważnionych do składania oświadczeń woli w imieniu wykonawcy

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

Programowanie współbieżne Wykład 2. Iwona Kochańska

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Nazwa kwalifikacji: Montaż i eksploatacja komputerów osobistych oraz urządzeń peryferyjnych Oznaczenie kwalifikacji: E.12 Numer zadania: 01

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

Galileo - encyklopedia internetowa Plan testów

Działanie systemu operacyjnego

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

Linux -- u mnie działa!

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

PREMIUM BIZNES zł 110zł za 1 Mb/s Na czas nieokreślony Od 9 14 Mbit/s

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

SSI Katalog. Program do katalogowania zawartości dysków. Dariusz Kalinowski

Spis treści. 1 Moduł Modbus TCP 4

Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota

Działanie systemu operacyjnego

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Sprzętowo wspomagane metody klasyfikacji danych

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2019 CZĘŚĆ PRAKTYCZNA

Zasady organizacji projektów informatycznych

Architektura i administracja systemów operacyjnych

WYDAJNOŚĆ I SKALOWALNOŚĆ

Wybrane działy Informatyki Stosowanej

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Usprawnienie procesu zarządzania konfiguracją. Marcin Piebiak Solution Architect Linux Polska Sp. z o.o.

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

Szkolenie: Testowanie wydajności (Performance Testing)

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

1 Moduł Lutron HomeWorks QS

Client Management Solutions i Mobile Printing Solutions

oprogramowania F-Secure

Projekt i implementacja filtra dzeń Pocket PC

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Usługa: Audyt kodu źródłowego

Usługa: Testowanie wydajności oprogramowania

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

ZAŁĄCZNIK NR 1.8 do PFU Serwery wraz z system do tworzenia kopii zapasowych i archiwizacji danych - wyposażenie serwerowni

Architektura komputerów

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Projektowanie zabezpieczeń Centrów Danych oraz innych systemów informatycznych o podwyższonych wymaganiach bezpieczeństwa

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Rozwiązanie Compuware dynatrace

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA CZĘŚĆ I

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

1 Moduł Konwertera. 1.1 Konfigurowanie Modułu Konwertera

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

1. Podstawy...P Polecenia podstawowe...p... 18

Client Management Solutions i Mobile Printing Solutions

Działanie systemu operacyjnego

Win Admin Replikator Instrukcja Obsługi

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Architektura komputerów

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Systemy rozproszone System rozproszony

Budowa systemów komputerowych

1 Moduł Modbus ASCII/RTU

Działanie komputera i sieci komputerowej.

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Symantec Backup Exec System Recovery 7.0 Server Edition. Odtwarzanie systemu Windows w ciągu najwyżej kilkudziesięciu minut nie godzin czy dni

Parametry wydajnościowe systemów internetowych. Tomasz Rak, KIA

Web frameworks do budowy aplikacji zgodnych z J2EE

Projektowanie i implementacja wysokowydajnych aplikacji w języku

1 Moduł Modbus ASCII/RTU 3

Zarządzanie rolami jakie może pełnić serwer System prosi o wybór roli jaklą ma spełniać serwer.

Załącznik dotyczący opcji usług (SOA) Rozszerzone Wsparcie Techniczne dla systemu Linux zainstalowanego na klastrach komputerowych

dr inż. Jarosław Forenc

Testowanie i walidacja oprogramowania

Wstęp do Informatyki. Klasyfikacja oprogramowania

Opis przedmiotu zamówienia / Formularz Oferty Technicznej (dokument należy złożyć wraz z ofertą)

Narzędzia diagnostyczne protokołów TCP/IP

Transkrypt:

Embedded Systems Architecture System Performance 1/63

WYDAJNOŚĆ SYSTEMU Wydajność to ekscytująca, zmienna i wymagająca dyscyplina. Brendan GREG Wydajność systemu analiza całego systemu łącznie ze wszystkimi komponentami sprzętowymi oraz pełnym stosem oprogramowania. Wszystko co znajduje się na ścieżce danych oprogramowanie i sprzęt, ma wpływ na wydajność. W systemach rozproszonych oznacza to wiele serwerów i aplikacji. 2/63

WYDAJNOŚĆ SYSTEMU Wydajność oznacza podejmowanie działań w następującej kolejności: Zdefiniowanie celów związanych z wydajnością oraz modelowaniem wydajności. Przygotowanie charakterystyki wydajności prototypu oprogramowania i sprzętu. Przeprowadzenie analizy kodu źródłowego wstępna integracja. Przeprowadzenie testów nieregresywnych kompilowanego oprogramowania, wydania typu pre- i post-. Wykonanie testów wydajności danej wersji oprogramowania. Testowanie dowodu koncepcji ang. proof-of-concept przed jego wdrożeniem w środowisku docelowym. Optymalizacja konfiguracji przed jego wdrożeniem w środowisku produkcyjnym. Monitorowanie oprogramowania działającego w środowisku produkcyjnym. Analiza zgłoszonych problemów dotyczących wydajności. 3/63

WYDAJNOŚĆ SYSTEMU Pierwsze pięć kroków stanowią część tradycyjnego modelu tworzenia oprogramowania. Przygotowany produkt trafia na rynek, a kolejnym krokiem jest przeprowadzenie testów dowodu koncepcji w środowisku klienta lub wdrożenie i konfiguracja. Jeżeli w środowisku klienta zostaną odkryte problemy w ostatnich trzech krokach oznacza to, że nie zostały zauważone lub usunięte w trakcie prac nad danym produktem. Idealnym rozwiązaniem jest sytuacja, w której inżynier wydajności rozpocznie pracę za min nastąpi wybór sprzętu i oprogramowania. Na każdym kolejnym etapie procesu usunięcie problemów może okazać się coraz trudniejsze. 4/63

WYDAJNOŚĆ SYSTEMU Działania związane z wydajnością systemu można postrzegać z różnych perspektyw: analiza obciążenia; analiza zasobów. Dotyczą one spojrzenia na stos oprogramowania z różnych kierunków. Perspektywa analizy zasobów jest często stosowana przez administratorów systemu odpowiedzialnych za jego zasoby. Programiści aplikacji, którzy są odpowiedzialni za wydajność podczas obciążenia, najczęściej koncentrują się na perspektywie analizy obciążenia. Każda perspektywa ma wady i zalety. W wielu sytuacjach konieczne jest spojrzenie z punktu widzenia obu perspektyw. 5/63

WYDAJNOŚĆ SYSTEMU PERSPEKTYWY Wydajność jest subiektywna. To co jeden z użytkowników uznaje za niewystarczającą wydajność, czyli problem, inny użytkownik może uznać za dobrą wydajność. 6/63

WYDAJNOŚĆ SYSTEMU - METODOLOGIE Metodologie analizy wydajności: obserwacyjne; eksperymentalne. Modelowanie i planowanie pojemności. 7/63

WYDAJNOŚĆ SYSTEMU METRYKI Najczęściej stosowane rodzaje metryk wydajności systemu obejmują: IOPS liczba operacji wejścia-wyjścia wykonywanych w ciągu sekundy; przepustowość liczba operacji lub ich wielkość w ciągu sekundy; poziom wykorzystania stopień zajętości zasobu obliczany na podstawie ilości czasu, który we wskazanym przedziale czasu był poświęcony na aktywne wykonywanie zadania; dla zasobów dostarczających pamięci masowych może to oznaczać zużytą pamięć np. wykorzystana ilość pamięci operacyjnej; opóźnienie czas, w którym operacja czeka na przeprowadzenie; czasem pojęcie to może odnosić się do całkowitego czasu operacji, jest odpowiednikiem czasu udzielenia odpowiedzi. 8/63

WYDAJNOŚĆ SYSTEMU METRYKI Wszelkie perturbacje mogą wpływać na wyniki testu. Dotyczy to perturbacji powodowanych przez: zaplanowane działania systemu; działania pozostałych użytkowników systemu; inne obciążenia. Źródło zakłóceń nie musi być oczywiste do jego ustalenia może być konieczne przeprowadzenie drążącej analizy wydajności. Co może być szczególnie trudne w pewnych środowiskach przetwarzania w chmurze (wpływ innych tenantów). Perturbacje Dane wejściowe Obciążenie Wydajność systemu podczas testu Wydajność końcowa 9/63

WYDAJNOŚĆ SYSTEMU KOMPROMISY Wydajność systemu świadomość istnienia pewnych kompromisów. Kompromis typu wybierz dwa z dobrze, szybko, tanio z użyciem terminologii z projektów informatycznych; Dobrze Wydajność Szybko Tanio Na czas Niedrogo 10/63

WYDAJNOŚĆ SYSTEMU KOMPROMISY W wielu projektach stawia się na elementy na czas i niedrogo, wydajność pozostawia do poprawienia w późniejszych fazach realizacji projektu. Problemem mogą być wcześniej podjęte decyzje uniemożliwiające poprawę wydajności. Do wspomnianych decyzji dla przykładu zalicza się: wybór nieoptymalnej architektury pamięci masowej; wykorzystanie języka programowania lub systemu operacyjnego, który nie udostępnia zaawansowanych narzędzi przydatnych w analizie wydajności. Stopa zwrotu inwestycji ROI Return of Investment; 11/63

WYDAJNOŚĆ SYSTEMU KOMPROMISY Skalowalność liniowa. Osiągnięcie i przekroczenie punktu na kolanach, rywalizacja o zasoby systemu powoduje negatywny wpływ na wydajność systemu. W ogólności liczba wykonywanych zadań spada. Punkt nasycenia. 12/63

WYDAJNOŚĆ SYSTEMU NIEWIADOME Na polu wydajności systemów musimy rozpatrywać różnego rodzaju niewiadome: Znane wiadome rzeczy, o których wiemy, mamy świadomość że trzeba sprawdzić metryki wydajności i znamy ich wartości bieżące. (Wykorzystanie procesora 10%); Znane niewiadome rzeczy, o których wiemy, że ich nie znamy jednak mamy świadomość konieczności sprawdzenia metryki lub istnienia podsystemu, ale jeszcze go nie zaobserwowaliśmy. (Co wykorzystuje moc procesora?); Nieznane niewiadome rzeczy, o których nie wiemy, że powinniśmy je znać. (Wpływ przerwań na wykorzystanie mocy procesora). 13/63

WYDAJNOŚĆ SYSTEMU ANALIZA ZASOBÓW Podejmowane działania: Wyszukiwanie problemów związanych z wydajnością sprawdzenie, czy określony typ zasobu odpowiada za dany problem; Planowanie pojemności zbieranie informacji pomagających w ustaleniu wielkości nowych systemów oraz określenie kiedy zasoby istniejących systemów mogą zostać wyczerpane. 14/63

WYDAJNOŚĆ SYSTEMU ANALIZA OBCIĄŻENIA Pozwala sprawdzić wydajność aplikacji dla stosowanego obciążenia oraz sposobów reakcji aplikacji na dane obciążenie. Badane obszary podczas analizy obciążenia: żądania aktualne obciążenie; opóźnienie czas udzielenia odpowiedzi przez aplikację; zakończenie pracy sprawdzenie czy wystąpiły jakiekolwiek błędy; 15/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Jawna antymetoda analiza oparta na obserwacji; Antymetoda losowej zmiany analiza oparta na eksperymentach; Antymetoda obwiniania kogoś innego analiza oparta na hipotezach; Metoda listy przygotowanej ad hoc analiza oparta na obserwacji i eksperymentach; Opis problemu zbieranie informacji; Metoda naukowa analiza oparta na obserwacji; Cykl diagnostyczny analiza cyklu życiowego; Metoda narzędzi analiza oparta na obserwacji; Metoda USE (ang. Utilization, Saturation and Errors) analiza oparta na obserwacji; Charakterystyka obciążenia analiza oparta na obserwacji, planowanie pojemności; Analiza drążąca analiza oparta na obserwacji; Analiza opóźnienia analiza oparta na obserwacji; Metoda R analiza oparta na obserwacji; 16/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Monitorowanie zdarzeń analiza oparta na obserwacji; Dane statystyczne będące punktem odniesienia analiza oparta na obserwacji; Monitorowanie wydajności analiza oparta na obserwacji, planowanie pojemności; Teoria kolejek analiza statyczna, planowanie pojemności; Statyczne dostosowywanie pojemności analiza oparta na obserwacji, planowanie pojemności; Dostosowanie bufora analiza oparta na obserwacji, dostrajanie; Mikro testy wydajności analiza oparta na eksperymentach; Planowanie pojemności planowanie pojemności, dostrajanie; 17/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Jawna antymetoda: Brak wyboru przemyślanej metodologii; Analiza wydajności odbywa się przy pomocy wybranych narzędzi monitorowania, które są nam znane lub wybierane przypadkowo; Podejście albo się uda, albo nie ; Zazwyczaj prowadzi do przeoczenia wielu typów problemów; Dostosowywanie wydajności na zasadzie prób i błędów; Wada tej metodologii odkrycie może być problemem ale nie tym, którego szukamy. 18/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Antymetoda losowej zmiany: Antymetoda oparta na eksperymentach; Podejmowane działania: 1. Losowy wybór elementu, który zostanie zmodyfikowany. 2. Modyfikacja wybranego elementu w jednym kierunku. 3. Pomiar wydajności. 4. Modyfikacja wybranego elementu w przeciwnym kierunku. 5. Pomiar wydajności. 6. Sprawdzenie czy wynik otrzymany w krokach 3. lub 5 jest lepszy niż wynik początkowy. Jeśli tak pozostawiamy zmiany i wracamy do pkt.1. Metodologia bardzo czasochłonna. 19/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Antymetoda obwiniania kogoś innego: Podejmowane działania: 1. Wyszukanie systemu lub komponentu środowiska, za który nie odpowiadamy. 2. Postawienie hipotezy, że wybrany w pkt.1 system lub komponent jest źródłem problemu. 3. Przekazanie informacji o problemie zespołowi odpowiedzialnemu za wybrany w pkt.1 komponent lub system. 4. Jeżeli hipoteza okaże się nieprawdziwa powrót do punktu 1. Metodologia zrzucanie winy na innych. Marnowanie zasobów ludzkich w innych zespołach szukających problemu, który ich nie dotyczy. 20/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Opis problemu: Podejmowane działania sprowadzają się do odpowiedzi na poniższe pytania: 1. Dlaczego sądzisz, że występuje problem związany z wydajnością? 2. Czy używany system kiedykolwiek oferował doskonałą wydajność? 3. Jakie zmiany zostały ostatnio wprowadzone? Oprogramowanie? Sprzęt? Czy zmieniło się obciążenie? 4. Czy problem dotyczy także innych użytkowników lub aplikacji? 5. W jakim środowisku pracujesz? Jaki sprzęt i oprogramowanie są używane? Wersje? Konfiguracje? Odpowiedzi te prowadzą do pośredniej przyczyny problemu i w efekcie do jego rozwiązania. 21/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Metoda naukowa: 1. Pytanie problem z wydajnością. 5. Analiza oparta o dane zebrane podczas testu. 2. Hipoteza prawdopodobna przyczyna niezadawalającej wydajności. 4. Test sprawdzenie przewidywania, oparte na obserwacji lub eksperymentach. 3. Przewidywanie bazujące na hipotezie. 22/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Metoda naukowa: Test obserwacyjny wyraźny spadek wydajności po przeniesieniu systemu na komputer z mniejszą ilością pamięci. Prawdopodobna przyczyna, zbyt mała pamięć podręczna systemu plików. Sprawdzenie wskaźnika trafień. Test eksperymentalny zwiększenie bufora poprzez dodanie pamięci RAM. 23/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Cykl diagnostyczny: Hipoteza; Sprawdzenie hipotezy; Dane; Hipoteza. Cykl skupia się na szybkim zbieraniu danych dla nowo postawionej hipotezy, która następnie jest weryfikowana i modyfikowana itd. 24/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Metoda narzędzi: Przygotowanie listy dostępnych narzędzi do badania wydajności (opcjonalna instalacja lub zamówienie innych). Określenie użytecznych metryk dostarczanych przez każde z narzędzi. Przygotowanie listy reguł stosowanych podczas interpretacji wyników, w odniesieniu do każdej metryki. Powyższe kroki tworzą nakazową listę rzeczy do sprawdzenia. Listy te wskazują narzędzia do użycia, metryki do odczytania oraz ścieżki ich interpretacji. Metoda ta bazuje na dobrze znanych narzędziach i może prowadzić do powstania niekompletnego obrazu systemu. Użytkownik może być nieświadomy, że odbiera niekompletny obraz systemu. Problemy wymagające zastosowania dedykowanych narzędzi mogą zostać niewykryte i nierozwiązane. 25/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Metoda narzędzi: Duża ilość dostępnych narzędzi i metryk może spowodować, że przeanalizowanie ich okaże się bardzo czasochłonne. Konieczność poznania wad i zalet narzędzi dostarczających podobnych funkcjonalności. 26/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Metoda USE Utilization, Saturation and Errors poziom wykorzystania, nasycenie i błędy. Powinna być stosowana na wczesnym etapie analizy systemu. Pozwala wykryć wąskie gardła w systemie. Postępowanie możemy sprowadzić do stwierdzenia: Dla każdego zasobu sprawdź poziom wykorzystania, nasycenia oraz błędy. Zasób: wszystkie fizyczne, funkcjonalne komponenty serwera (procesory, szyny, pamięć itp.). Oprogramowanie również stanowi zasób, który można przeanalizować. 27/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Poziom wykorzystania: Dla zdefiniowanego przedziału czasu oznacza procentową ilość czasu, przez który zasób był zajęty wykonywaniem zadań. Zajęty zasób nadal może przyjmować kolejne zadania. Poziom przy którym traci tę możliwość wskazywany jest przez nasycenie. Nasycenie: Poziom, do którego zasób może akceptować dodatkowe zadania niemożliwe do wykonania w danej chwili. Zadania są najczęściej kolejkowane. Błędy: Liczba błędów. 28/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE W przypadku pamięci operacyjnej poziom wykorzystania jest równy pojemności danego zasobu. Jest to odmienne podejście niż w przypadku definicji opartej na czasie. Po osiągnięciu nasycenia zasób musi kolejkować nowe zadania lub wygenerować błąd, który jest uwzględniany przez metodę USE. Błędy należy sprawdzać gdyż ich skutki mogą mieć znaczący wpływ na wydajność. Metoda USE ogranicza liczbę kluczowych metryk, aby wszystkie zasoby mogły być sprawdzone tak szybko jak to możliwe. System może cierpieć z powodu kilku problemów związanych z wydajnością. Może się okazać, że znaleziony problem nie jest problemem, którego szukamy. Dlatego też jeśli zachodzi potrzeba sprawdzenia następnych zasobów każde odkrycie należy sprawdzić za pomocą innych metodologii, jeszcze przed powrotem do metody USE. 29/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Charakterystyka obciążenia prosta i efektywna metoda identyfikacji problemów pojawiających się na skutek danego obciążenia. Koncentrujemy się w niej na danych wejściowych systemu a nie na końcowej wydajności. Obciążenie można scharakteryzować odpowiadając na poniższe pytania: Co powoduje obciążenie? Jaki jest identyfikator procesu lub użytkownika powodującego obciążenie? Jaki jest zdalny adres IP? Dlaczego dane obciążenie zostało zastosowane? Jaka jest ścieżka kodu i stos wywołań? Jak przedstawia się charakterystyka danego obciążenia? Jakie są wartości IOPS, przepustowość i jaki jest wykonywany rodzaj operacji (odczyt/zapis)? Zaobserwowane zmiany (odchylenie standardowe). Czy dane obciążenie ulega zmianie w czasie? Czy istnieje wzorzec, który można przypisać obciążeniu? 30/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Zwiększenie wydajności można uzyskać poprzez pozbycie się niepotrzebnie wykonywanych zadań. Czasem mogą one być wykonywane przez błędnie działającą aplikację, np. wątek zablokowany w pętli zużywa czas procesora. Przyczynę może stanowić nieprawidłowa konfiguracja, np. kopia zapasowa systemu wykonywana w godzinach pracy. Atak typu DoS (ang. Denial of Service odmowa usług) Przygotowanie charakterystyk obciążenia pozwala wykryć wspomniane problemy. 31/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Analiza drążąca Metodologia ta rozpoczyna się od analizy problemu na poziomie ogólnym, a następnie na coraz większym zawężaniu badanego obszaru na podstawie wcześniejszych wyników. Odrzucane są nieinteresujące obszary a drążone są coraz bardziej te, które wydają się interesujące. Cały proces może wymagać przeanalizowania całego stosu oprogramowania aż do warstwy sprzętowej, aby znaleźć przyczynę problemu. Etapy: 1. Monitorowanie nieustanne rejestrowanie danych statystycznych. 2. Identyfikacja pozwala zawęzić analizę do konkretnych zasobów. 3. Analiza analiza określonych obszarów w celu znalezienia źródła problemu. 32/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Analiza opóźnień Metodologia ta polega na sprawdzeniu ilości czasu koniecznego do ukończenia danej operacji. Analiza ta dzielona jest na mniejsze fragmenty, które dzielone są na kolejne. Celem takiego postępowania jest rozbicie fragmentów o największym opóźnieniu, aby można było znaleźć przyczynę problemu i jego rozwiązanie. 33/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Start Pomiar opóźnienia Podział na A i B Pomiar A lub B (lub obu fragmentów) Czy problem został rozwiązany Tak Koniec A Który fragment jest wolniejszy: A, czy B? B 34/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Metoda R Metodologia opracowana na potrzeby baz danych firmy Oracle. Koncentruje się na znalezieniu źródła opóźnienia na podstawie analizy zdarzeń monitorowania Oracle. Opracowana dla baz danych można ją wykorzystać do analizy systemów. 35/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Monitorowanie zdarzeń Analiza wydajności wymaga zbadania podsumowania przygotowanego na podstawie następujących zdarzeń: Instrukcje procesora, Dyskowe operacje wejścia-wyjścia i inne polecenia, Pakiety systemowe, Wywołania systemowe, Wywołania bibliotek, Transakcje aplikacji, Zapytania do bazy danych itp. 36/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Podczas monitorowania zdarzeń koncentrujemy się na wyszukiwaniu następujących informacji: Dane wejściowe wszystkie atrybuty żądania zdarzenia: typ, kierunek (zapis, odczyt), wielkość (ilość danych), itd.; Czas czas rozpoczęcia i zakończenia zdarzenia, a także opóźnienie; Wynik błędy stanu, wynik zdarzenia (wielkość). 37/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Statystyczne dostosowanie wydajności Metoda ta koncentruje się na kwestiach skonfigurowanej architektury. W przeciwieństwie do innych metodologii, które skupiają się na wydajności przy określonym obciążeniu, wydajność dynamiczna analiza ta może być przeprowadzana, gdy system jest bezczynny, czyli nie znajduje się pod żadnym obciążeniem. Statystyczna analiza wydajności i jej dostosowywanie polega na przejrzeniu wszystkich komponentów systemu i odpowiedzeniu na n/w pytania: Czy dany komponent ma sens? Czy dana konfiguracja ma sens, biorąc pod uwagę przewidywane obciążenie? 38/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Czy dany komponent jest skonfigurowany w najlepszy sposób, biorąc pod uwagę przewidywane obciążenie? Czy wystąpiły jakiekolwiek błędy związane z danym komponentem i czy działa on w ograniczonym zakresie? Przykłady problemów, które można rozwiązać przy pomocy statycznego dostosowywania wydajności: Negocjacja szybkości interfejsu sieciowego: 100 Mb/s zamiast 1Gb/s; Uszkodzony dysk w puli macierzy RAID; Użyta starsza wersja systemu operacyjnego, aplikacji lub firmware u; Wielkość rekordu systemu plików niedopasowana do wielkości obciążenia wejściawyjścia; 39/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Dostosowanie bufora Systemy operacyjne i aplikacje mogą używać wielu buforów dla poprawy wydajności wejścia-wyjścia. Bufory te mogą znajdować się na poziomach od aplikacji po fizyczne dyski. Ogólna strategia dostrajania buforów na poszczególnych poziomach: Bufor powinien znajdować się na jak najwyższym poziomie na stosie oprogramowania, maksymalnie blisko wykonywanych zadań. Zmniejsza to operacyjne obciążenie związane z trafnością bufora. Sprawdzenie bufor jest włączony i działa. Sprawdzenie wskaźnika trafności/nietrafności bufora. Sprawdzenie bieżącej wielkości bufora z dynamicznie ustalaną wielkością. 40/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Dostosowanie bufora do bieżącego obciążenia. Wykonanie tego zadania zależy od dostępnych parametrów dostrajania bufora. Dostosowanie obciążenia do danego bufora. Wykonanie tego zadania oznacza usunięcie z bufora niepotrzebnych obiektów i tym samym zwolnienie miejsca dla potrzebnych obiektów. Kolejnym zagadnieniem w tej metodzie jest sprawdzenie czy nie występuje podwójne buforowanie, które zużywa pamięć operacyjną. Sprawdzenie wpływu dostrajania buforów na różnych poziomach na ogólny przyrost wydajności. 41/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Mikro testy wydajności Metoda ta pozwala na sprawdzenie wydajności przy prostym i sztucznym obciążeniu. Jest przeciwieństwem do przemysłowych testów wydajności, które mają na celu przetestowanie wydajności pod rzeczywistym obciążeniem. W testach używane są narzędzia do mikro testów i generatory obciążenia. Przykłady mikro testów: Czas wywołań systemowych. Odczyty systemów plików. Przepustowość sieci. Sprawdzenie bieżącej wielkości bufora z dynamicznie ustalaną wielkością. 42/63

WYDAJNOŚĆ SYSTEMU METODOLOGIE Modelowanie Modelowanie może być wykorzystane do analizy skalowalności, czyli jak wydajność będzie skalowana wraz ze zmianą obciążenia lub zasobów. Zasobami mogą być komponenty sprzętowe, procesory, jak i oprogramowanie, procesy lub wątki. Analiza skalowalności może pokazać iż w określonym punkcie wydajność przestaje być skalowana liniowo punkt załamania, ograniczenie wynikające z zasobów. 43/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Narzędzia dostarczające informacji dotyczących całego systemu vmstat mpstat iostat sar tcpdump/snoop dtrace/stap Liczniki Monitorowanie ps top pmap strace/truss gdb/mdb Narzędzia dostarczające informacji dotyczących poszczególnych procesów 44/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA W dziedzinie monitorowania wydajności możemy wyróżnić narzędzia dostarczające danych dotyczących całego systemu i danych dotyczących procesu. Większość z nich bazuje na licznikach lub monitorowaniu. Niektóre narzędzia można przypisać do więcej niż jednej ćwiartki. Używając polecenia top możemy wygenerować podsumowanie dotyczące całego systemu. Dzięki DTrace możemy uzyskać informacje o poszczególnych procesach. Kolejną grupę narzędzi wydajności stanowią te oparte na profilowaniu. Tego typu polecenia monitorują aktywność wykonując serię migawek na poziomie systemu lub procesu. 45/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Liczniki są to pewne informacje statystyczne służące do zliczania zdarzeń, a udostępniane są przez jądro systemu. Najczęściej zaimplementowane są jako liczby całkowite bez znaku. Liczniki uważa się za gotowe do wykorzystania, ponieważ są domyślnie włączone i uaktualniane przez jądro. Koszty związane z ich użyciem są znikome. 46/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Narzędzia wykorzystujące liczniki jądra do analizy aktywności na poziomie systemu: vmstat dane statystyczne dotyczące pamięci rzeczywistej i wirtualnej. mpstat poziom wykorzystania poszczególnych procesów. iostat operacje I/O poszczególnych dysków. netstat - dane statystyczne dotyczące interfejsu sieciowego, stos TCP/IP oraz informacje o poszczególnych połączeniach. sar różne dane statystyczne, które mogą być archiwizowane w celu tworzenia raportów. Powyższe polecenia dostępne są zazwyczaj dla wszystkich użytkowników. 47/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Poziom procesu Narzędzia zaliczane do tej grupy zorientowane są na poszczególne procesy i używają liczników, które jądro zawiera dla każdego procesu. Do grupy tej możemy zaliczyć: ps stan procesu, różne dane statystyczne odnoszące się do procesu, np. poziom użycia pamięci i procesora; top wyświetlanie najważniejszych procesów, posortowanych według jednej z danych statystycznych np. poziomu użycia procesora; odpowiednikiem w systemie Solaris jest prstat; pmap podaje informacje o segmentach pamięci procesu i danych dotyczących jej użycia. Powyższe narzędzia często odczytują dane statystyczne z systemu plików /proc. 48/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Monitorowanie Monitorowanie ma na celu zbieranie do analizy danych odnoszących się do poszczególnych zdarzeń. Zazwyczaj frameworki monitorowania nie są włączone, gdyż zbieranie danych obciąża procesor, a dodatkowo może być wymagana bardzo duża ilość pamięci masowej do ich przechowywania. Obciążenie wynikające ze zbierania danych musi być uwzględnione podczas interpretacji zebranych danych. 49/63

Monitorowanie na poziomie systemu monitorowanie oprogramowania systemowego lub zasobów sprzętowych WYDAJNOŚĆ SYSTEMU NARZĘDZIA tcpdump monitorowanie pakietu sieciowego iosnoop monitorowanie blokowych operacji i/o (oparte na DTrace) blktrace monitorowanie blokowych operacji i/o (Linux) systemtap monitorowanie wewnętrznej aktywności jądra i użycie dowolnych zasobów z wykorzystaniem monitorowania statycznego i dynamicznego perf Linux Performance Events, statyczne i dynamiczne monitorowanie sond. 50/63

Monitorowanie na poziomie procesu monitorowanie zorientowane na poszczególne procesy, bazuje na prostych frameworkach systemowych WYDAJNOŚĆ SYSTEMU NARZĘDZIA strace monitorowanie wywołań systemowych w OS Linux truss monitorowanie wywołań systemowych w OS Solaris gdb debuger na poziomie kodu źródłowego (Linux) mdb rozbudowany debuger kodu źródłowego (Solaris) 51/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Profilowanie Charakterystyki badanego systemu przygotowywane są na podstawie próbek i migawek jego zachowania. Przykładem może tu być procesor próbki licznika programu lub śladu stosu pomagają określić charakterystykę ścieżek kodu zużywającego cykle procesora. Dane te pobierane są najczęściej ze stałą częstotliwością. Profilowanie wskazuje, które ścieżki kodu są odpowiedzialne za dane obciążenie. Informacje te pozwalają programistom na optymalizację kodu pod kątem poziomu zużycia zasobów systemowych. 52/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Profilowanie Popularne profilery: oprofile: profilowanie w systemie Linux; perf: zawiera polecenia do profilowania; DTrace: profilowanie programistyczne bazujące na czasie (profile) lub zdarzeniach sprzętowych (cpc); SystemTap: profilowanie programistyczne bazujące na czasie (timer) lub zdarzeniach sprzętowych (perf); Intel VTune Amplifier XE: narzędzia do profilowania OS Linux i Windows z interfejsem graficznym użytkownika pozwala na podgląd kodu źródłowego; Oracle Solaris Studio: zestaw narzędziowy dla systemów Linux i Solaris moduł Performance Analyzer przeznaczony jest do profilowania; 53/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Wywołanie: $ vmstat 1 5 wywołanie typu przedział czasu i liczba analiz. Powyższe wywołanie jako wynik wyświetla następujące dane: W pierwszym wierszu podsumowanie danych zebranych od chwili uruchomienia systemu, są to wartości średnie. W kolejnych wierszach podsumowania z jednosekundowych przedziałów czasu pokazują bieżące działanie. 54/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Znaczenie parametrów w odniesieniu do procesora: us czas użytkownika; sy czas systemu (jądra); id bezczynność; wa czas oczekiwania na operacje i/o, bezczynność procesora w sytuacji gdy wątki są zablokowane na skutek oczekiwania na operacje dyskowe; st w środowisku wirtualizacji czas w którym procesor obsługiwał inne tenanty; 55/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Znaczenie parametrów w odniesieniu do pamięci: swpd ilość pamięci o zawartości w przestrzeni wymiany; free ilość pamięci dostępnej; buff pamięć przeznaczona dla bufora pamięci podręcznej; cache pamięć bufora stron; si strony pamięci wczytane z dysku (stronicowanie); so strony pamięci zapisane na dysku (stronicowanie); 56/63

WYDAJNOŚĆ SYSTEMU NARZĘDZIA Znaczenie parametrów w odniesieniu do pamięci: free ilość pamięci dostępnej; inact nieaktywna pamięć bufora stron; active aktywna pamięć bufora stron; Jeżeli wartości parametrów si i so utrzymują się ciągle na niezerowym poziomie oznacza to, że w systemie brakuje pamięci i przeprowadzana jest operacja stronicowania do urządzenia przestrzeni wymiany lub pliku wymiany. 57/63

WYDAJNOŚĆ SYSTEMU TESTY WYDAJNOŚCI Test wydajności może być prowadzony z następujących powodów: Projekt systemu porównanie różnych systemów, komponentów lub aplikacji dostarczają danych, które ułatwiają klientowi podjęcie decyzji o zakupie; Dostrajanie testowanie modyfikowanych parametrów i opcji konfiguracyjnych identyfikacja tych, które warto poddać dalszej analizie; Programowanie np. badanie na granicy możliwości produktu; Planowanie pojemności określenie limitów systemu i aplikacji podczas planowania pojemości dostarczenie danych do modelowania wydajności; Rozwiązywanie problemów potwierdzają że komponenty mogą nadal działać z maksymalną wydajnością np. badanie przepustowości sieci; Benchmarketing określenie maksymalnej wydajności w celu użycia jej w działaniach marketingowych. 58/63

WYDAJNOŚĆ SYSTEMU TESTY WYDAJNOŚCI Cechy efektywnego testu wydajności: Możliwy do powtórzenia umożliwia porównania; Możliwy do monitorowania umożliwia przeanalizowanie wydajności; Przenośny pozwala na przeprowadzenie testów różnych produktów; Rzeczywisty ma odzwierciedlać rzeczywiste wrażenia klienta; Możliwy do przeprowadzenia umożliwia szybkie testowanie wprowadzanych zmian. 59/63

WYDAJNOŚĆ SYSTEMU TESTY WYDAJNOŚCI Analiza testu wydajności. Podczas wykonywania testu wydajności konieczne jest określenie: Co jest testowane? Jakie występują czynniki ograniczające? Czy jakiekolwiek perturbacje mogą mieć wpływ na wyniki? Jakie wnioski można wyciągnąć na podstawie otrzymanych wyników? Dobra znajomość oprogramowania stosowanego do przeprowadzenia testów oraz reakcji systemu. 60/63

WYDAJNOŚĆ SYSTEMU TESTY WYDAJNOŚCI Grzechy testów wydajności: Przypadkowe testy wydajności Zbyt duża wiara w testy wydajności Wartości bez analizy Skomplikowane narzędzia testów wydajności Testowanie nieprawidłowej rzeczy Ignorowanie błędów Ignorowanie odchyleń Ignorowanie perturbacji Zmiana wielu czynników Oszustwa 61/63

WYDAJNOŚĆ SYSTEMU TESTY WYDAJNOŚCI Rodzaje testów wydajności: Mikrotesty wydajności Symulacja Bezstanowa Stanowa Powtarzalność Standardy biznesowe TPC TPC C symulacja pełnego środowiska obliczeniowego TPC DS symulacja systemów decyzyjnych TPC E symulacja firmy brokerskiej z klientami TPC H symulacja zapytań ad hoc i współbieżne modyfikowanie danych TPC VMS wirtualne bazy danych 62/63

WYDAJNOŚĆ SYSTEMU TESTY WYDAJNOŚCI Rodzaje testów wydajności: SPEC The Standard Performance Evaluation Corporation SPEC SPEC CPU2006 test CINT2006 wydajność liczb całkowitych, CFP2006 wydajność liczb zmiennoprzecinkowych; SPECjEnterprise2010 sprawdzenie wydajności całego systemu dla aplikacji serwera Java EE; SPECsfs2008 symulacja obciążenia w postaci klienta uzyskującego dostęp do plików serwera NFS i CIFS; SPECvirt_sc2010 test wydajności wirtualnego sprzętu, platformy, systemu operacyjnego lub aplikacji. 63/63