UL/FRI/UNI-RI/ZVRS
Iz E-študij, proste zakladnice študentskega znanja
| Abecedni seznam zapiskov
Predava: Niko Zimic Vaje vodi: Primož Pečar Povezave:
(Za kolokvije ustvari stran) Izpitni red: pisni in ustni
Ostalo: seminarska naloga Ključne besede: ZVRS, zmogljivost, vrednotenje, načrtovanje računalniškega sistema, analiza, simulacija, meritve, bremena, metrike, monitorji, zmogljivostni cikel, WRL |
Razno
Predavanja
Osnovni pojmi
Namen ugotavljanja zmogljivosti
- Zmogljivost = performance
- Računalniški sistem je množica povezanih resursov
- Kdaj ugotavljamo zmogljivost sistema?
- pri nakupu ali menjavi opreme
- pri postavljanju novega sistema
- pri določanju obnašanja sistema ob spremembi bremena
- pri snovanju novih algoritmov
Dejavnosti vrednostenja zmogljivosti rač. sistemov
Ugotavljanje lastnosti bremena
- breme = {množica zahtev, časovna porazdelitev prihajanja zahtev}
Ugotavljanje vpliva bremena na posamezne komponente sistema
- zahteva bolj vpliva na nekatere komponente sistema kot na druge
- iščemo ozka grla oziroma tiste komponente, ki jih breme "prezasede"
Zbiranje podatkov o aplikacijah
- za opazovan računalniški sistem moramo analizirati vse aplikacije
Napoved obnašanja sistema
- ob spremenljivem (naraščajočem) bremenu
Meritve parametrov sistema
- merjenje odzivnih časov
- št. obdelanih zahtev
- št. zahtev v čakalni vrsti
- kakšna je izraba komponent sistema?
Analiza podatkov zmogljivosti
- merj. podatki -> analiza -> zaključki
Preverjanje podatkov (zaključkov) o zmogljivosti
Uglaševanje rač. sistema
- cilj uglaševanja: optimalna raba vseh komponent
- uglaševanje običajno pomeni:
- časovna razporeditev bremen
- optimalna razdelitev resursov
- razdelitev
Planiranje kapacitete
- sedanje in prihodnje zahteve
- vpliv bremena
Zmogljivostni življenjski cikel rač. sistemov
- Zmogljivostni življenjski cikel računalniških sistemov
- življenjski cikel rač. sistema
- ideja
- načrtovanje
- izdelava (realizacija)
- doba izrabe (eksploitacije)
- zaustavitev rač. sistema (deinstalacija)
Osnovni zmogljivostni življenjski cikel O
- načrtovanje
- predvidevanje zmogljivostnih lastnosti
- realizacija
- meritve zmogljivostnih lastnosti (če so neustrezne, se vrnemo nazaj na fazo načrtovanja)
Okrnjeni zmogljivostni življenjski cikel -1
Izključuje fazo predvidevanja zmogljivostnih lastnosti.
- načrtovanje
- implementacija in uglaševanje (če kaj ni v redu, se vrnemo nazaj na fazo načrtovanja)
- meritve zmogljivostnih lastnosti (če so neustrezne, se vrnemo nazaj na fazo načrtovanja)
Izpopolnjen zmogljivostni življenjski cikel +1
Vključuje prehod iz predvidevanja zmogljivostnih lastnosti nazaj v načrtovanje.
- načrtovanje
- predvidevanje zmogljivostnih lastnosti
- realizacija
- meritve zmogljivostnih lastnosti (če so neustrezne, se vrnemo nazaj na fazo načrtovanja)
Aktivni zmogljivostni življenjski cikel
Osnova je izboljšani zmogljivostni cikel, vključuje primerjavo z zastavljenimi cilji.
- načrtovanje
- predvidevanje zmogljivostnih lastnosti (če kaj ni v redu, se vrnemo nazaj na fazo načrtovanja, v fazo realizacije ne gremo, dokler ne pridemo do nekega zastavljenega optimuma)
- realizacija
- meritve zmogljivostnih lastnosti (če so neustrezne, se vrnemo nazaj na fazo načrtovanja, primerjamo z zastavljenimi cilji)
Naraščanje stroškov glede na aktivnost, pri kateri odkrijemo napako
| Aktivnost | Stroški (faktor povečanja) |
|---|---|
| planiranje | / |
| analiza | 1 - 5 |
| načrtovanje | 5 - 25 |
| tehnična rešitev | 25 - 100 |
| izvedba | 100 - 500 |
| nulta serija | 500 - 1000 |
| proizvodnja | 1000 - |
Vrednotenje zmogljivosti rač. sistemov
Tehnike vrednotenja:
- meritve
- simulacije
- analitični pristopi
Napake pri vrednotenju
Napake glede na celoten postopek
- nejasen cilj produkta
- subjektivni dejavnik s strani tistega, ki vrednoti
- nesistematičen pristop
Napake pri oceni bremena
- nereprezentativnost bremena
- opustitev pomembnih parametrov bremena (OS, dinamični pomnilnik, sistem kot celota)
- nepravilno izbrana metrika (merska enota)
- neupoštevanje pomembnih parametrov (OS vrednotimo ob odsotnosti din. pomnilnika)
Napake pri izbiri tehnik vrednotenja
- kompleksni sistemi - neprimerni za analitične pristope (predrago)
- vedno skušamo izbrati dve tehniki vrednotenja
- nepravilen izbor podatkov simulacije
- napake pri postavitvi eksperimenta
Napake v fazi analize rezultatov
- po meritvi podatkov sploh ne analiziramo
- napačna analiza (napačni zaključki)
- opustitev analize občutljivosti sistema na spremembo bremen in parametrov
- neupoštevanje napak na vhodu
- podatki, ki odstopajo od povprečja
- neupoštevanje sprememb bremen in parametrov v prihodnosti
Koraki v postopku vrednotenja
- Koraki v postopku vrednotenja računalniških sistemov
- postavitev cilja vrednotenja in popolna definicija opazovanega sistema
- sistem mora biti definiran, da ga lahko vrednotimo
- izdelava spiska opravil in pričakovanih rezultatov opravil
- za rač. sistem moramo predvideti opravila in pričakovane rezultate
- izbor metrike (mere ali merila)
- različne metrike so primerne za različne aplikacije
- izdelava spiska parametrov
- parametri so lastnosti sistema, ki vplivajo na performanse
- parametri so lahko:
- glavni: neposredno vplivajo na opazovane lastnosti
- pomožni: minimalno vplivajo na opazovane lastnosti
- Zgled: hitrost delovanja računalnika
- glavni parametri: procesor, dinamični pomnilnik
- pomožni parametri: grafična kartica, mrežna kartica
- izberemo parametre za testiranje in vrednostne nivoje slednjih
- Zgled: dinamični pomnilnik testiramo pri 256 MB, 512 MB, 1024 MB
- izbira tehnike ali metode
3 vrste metod:
- analitični pristop (performančno analizo delamo teoretično)
- simulacijski pristop
- testiranje prototipa ali končnega produkta
- izbira bremena
- načrtovanje testiranja
- zagotoviti je potrebno delujočo platformo
- analiza pridobljenih rezultatov
- dobiti je potrebno vse zaključke, ki so relevantni za uporabnika
Izbira metode (tehnike) in metrike
Tehnika
- analitični pristop
- simulacija
- testiranje (meritve)
| KRITERIJ | ANALITIČNI PRISTOP | SIMULACIJA | TESTIRANJE |
| v kakšnem stanju razvojnega cikla je sistem | vedno | vedno | vsaj prototip |
| zahteva čas | MIN | MEDIUM | MAX |
| orodja | papir | razvojna okolja | strojna oprema |
| verodostojnost | nizka | srednja | visoka |
| študij vpliva | enostaven | srednji | najtežji |
| cena izvedbe | MIN | MEDIUM | MAX |
Izbira metrike
Metrika je merilo ali mera, s katero želimo opisati dinamiko, ki jo opazujemo.
- zahteve
- obdelane zahteve
- pravilno obdelane (čas odgovora, propustnost sistema)
- nepravilno obdelane (verjetnost napake, frekvenca napake - glede na vrsto napake)
- neobdelane zahteve (zavrnjene) - sistem ni v fazi delovanja
- trajanje prekinitve
- čas med prekinitvami
- obdelane zahteve
Zgled: izvor - kanal prenosa - ponor
- možni dogodki za posamezne zahteve
- paket pride na pravi naslov ob pravem času
- nekateri paketi so sprejeti v napačnem vrstnem redu
- paket je dostavljen večkrat
- nekateri paketi se izgubijo
- izbira metrike
- odzivni čas (čas, potreben za prehod od izvora do ponora)
- propustnost (št. paketov na časovno enoto)
- procesni čas na oddajni strani/paket
- procesni čas na sprejemni strani/paket
- procesni čas na napravo v omrežju/paket
- varianca odzivnega časa
- verjetnost sprejema paketov v napačnem vrstnem redu
- verjetnost večkratnega prejema paketa
- verjetnost izgube paketa
Pogosto uporabljanje metrike
- obračalni čas i-te zahteve
- povprečni obračalni čas
- čisti čas porabe na CPU za i-to zahtevo
- utežen obračalni čas
- povprečni utežen obračalni čas
- propustnost - št. zahtev, ki se izvedejo v nekem času
- če ni nasičenja
- sistem v nasičenju - pride do izgubljanja zahtev
- s povečevanjem bremena slabšamo propustnost
- 2/3 je tista obremenitev, ki pri večini sistemov že pomeni upočasnitev delovanja in s tem zmanjšanje propustnosti
Koncepti metrik
3 koncepti:
- manjše je boljše - npr. čas prebivanja zahteve v sistemu
- večje je boljše - npr. propustnost
- nominalno je boljše - npr. obremenitev etherneta
Postavljanje performančnih zahtev
Večinoma ob nakupu novega sistema. Zgled: želja po performansah
- sistem mora biti procesno in pomnilniško učinkovit
- ne smemo pretirano obremenjevati procesorja
- verjetnost napak pri prenosu v omrežju mora biti minimalna
Napake pri podajanju zmogljivostnih parametrov z vidika investitorja:
- nedoločnost zahtev
- zmogljivostne značilnosti podane lingvistično ne numerično (hiter procesor, zanesljiv sistem)
- Zanesljivost sistema je verjetnost, da bo rač. sistem v časovnem intervalu deloval pravilno ob vnaprej predvidenih robnih pogojih.
- nemerljivi parametri
- navajamo parametre, ki se jih ne da izmeriti ali pa je meritev predraga
- nesprejemljivost numeričnih vrednosti
- navajamo parametre, ki so v nasprotju z ostalimi vrednostmi parametrov
- primer: počasen CPU, hiter pomnilnik - nesprejemljivo, ker hiter pomnilnik samo zvišuje ceno, njegovih performans pa zaradi počasne CPU ne moremo izkoriščati
- neizvedljivost
- previsoke zahteve
- netemeljitost
- primer: imamo večuporabniški sistem, delovanje je hitro za 10 - 20 uporabnikov, ne vemo, kako počasen je lahko sistem pri številu uporabnikov, večjem od 20
Zgled: hitro lokalno omrežje
- performančne zahteve
- hitrost
- čas od izvora do ponora mora biti pri pravilnem prenosu manjši od 1 s
- trajna propustnost je 80 Mbit/s
- zanesljivost
- verjetnost napake na enem bitu < 10 − 3
- verjetnost napačnega paketa < 1%
- verjetnost dostave okvarjenega paketa brez detekcije < 10 − 15
- verjetnost izgube paketa < 1%
- dosegljivost
- ob izpadu - inicializacija omrežja t < 10 ms
- ob izpadu - popravilo omrežja t < 1 h
- hitrost
Bremena
Breme je časovni tok zahtev.
- testno breme
- realno breme
- model bremena
- sintetično breme
- osnovno breme
- hibridno breme
- umetno breme
- izvajalno breme
- parametrično breme
- sintetično breme
Pri realnem bremenu se je potrebno vprašati, ali je to breme reprezentativno (glede na vrsto in frekvenco zahtev). Naš cilj pri vrednotenju je imeti ponovljivo breme - realno breme ni ponovljivo!
Model bremena ne temelji na realnem vzorcu. Sintetična bremena vsebujejo podatke o bremenih, pridobljene na osnovi meritev. Gre za aplikacijske teste. Osnovno breme je izdelano na osnovi zgolj ene aplikacije in deluje v ozkih pogojih. Hibridno breme je splošnejše od osnovnega, vsebuje najbolj reprezentativne dele več aplikacij. Primer: testi zmogljivosti družine SPEC. Umetna bremena nastanejo neodvisno od podatkov meritev, so ozko specificirana (npr. dostop do registra). Parametrična bremena so tista bremena, ki so podana parametrično in so namenjena le analitični metodi (npr. propustnost 10 zahtev na sekundo, obstaja samo kot številka na papirju). Izvajalno breme se v resnici izvaja (ga je potrebno dejansko generirati).
Testni programi za določanje zanesljivosti
Vir programov je neodvisen. Enačimo ga z sintetičnimi hibridnimi bremeni. Zgled: SPEC CPU 2000, fokus programa: CPU, pomnenje.
Kaj zna računalniški sistem?
- pomnenje
- procesiranje (odločanje)
- transfer podatkov
Nabor bremen (segm. aplikacij):
- prevajalnik + interpreter
- kompresiranje
- baze podatkov
- fizikalni izračuni (napoved vremena)
- matematični izračuni (dinamika tekočin)
- aplikacije umetne inteligence
- fizika, kemija
- računalniške igre
Izbira testnega bremena
Pomembna je ponovljivost (ponavljanje testov s spreminjanjem parametrov), zato da so testi primerljivi.
Napake pri testiranju, ki so odvisne od bremena:
- napačna obremenitev resursov
- vrstni red zahtev različnih tipov ni ustrezen
- časovna razporeditev zahtev
Segmenti aplikacij glede na finančni obseg (zanesljivost):
- gadget in osebni računalnik
- OLTP: Visa, Mastercard, American Express, Diners
- long range mission (vesoljski program)
- critical missions (civilni in letalski promet, kemija, jedrska fizika...)
Obremenjenost resursa (strežnika)
Matrika uporabe resursov - koliko i-ta zahteva obremenjuje j-ti resurs?
Čas in breme
- vrstni red zahtev ?
- analitična bremena:
- verjetnostna porazdelitev medprihodnih časov
- povprečen medprihodni čas
- delež posamezne zahteve v celotnem bremenu
- simulacijska ali testna metoda:
- breme sestavljajo najpogostejše zahteve
- delež posamezne zahteve v celotnem bremenu
- časovno zaporedje prihodov
- breme sestavljajo zahteve, ki povprečno obremenjujejo resurse
Breme v realnem sistemu in testno breme
Monitorji
Monitorji so orodja za zbiranje podatkov o opazovanem sistemu. Realizacija:
- programska oprema
- strojna oprema
- hibridna izvedba
Uporaba:
- testiranje ciljnega sistema (kje in kdaj prihaja do napak)
- vrednotenje rač. sistema (ocenjevanje performans)
Uporaba pridobljenih podatkov - zgledi:
- sistemski programer - identificira pogostost uporabe rutin
- sistemski inženir - določa ozka grla in obremenitev resursov
- sistemski analitik - načrtovanje kapacitete, iskanje parametrov, relevantnih za zanesljivost
Osnovni pojmi
- Dogodek je sprememba stanja opazovanega sistema.
- Sled (trace) je spisek dogodkov in značilnosti dogodkov (čas nastopa, vrsta dogodka...)
- Dodatna obremenitev, ki jo na procesnem ali pomnilnem ali prenašalnem segmentu lahko povzroči monitor na opazovanem sistemu - poznamo invazivni in neinvazivni monitoring. Neinvazivni ne obremenjuje dodatno sistema (strojni monitoring), invazivni (programski) monitoring dodatno obremeni procese sistema.
- Domena podatkov, ki jih monitor zna zajeti.
- Vhodna frekvenca je maksimalna hitrost zajema podatkov.
- kratkotrajna maksimalna hitrost - omogoča hiter zajem, ne pa tudi obdelave
- stalna maksimalna hitrost - na dolgi rok, zajem in obdelava podatkov
- Resolucija monitoringa je minimalni čas med dvema dogodkoma, ki ju monitor zazna in loči.
- Vhodna širina je število podatkov, ki jih monitor zajame ob posameznem dogodku.
Delitev monitorjev
Glede na izvedbo:
- programska oprema, ki teče na opazovanem sistemu in je s tem dodatna obremenitev
- strojna realizacija je načeloma neinvazivna
- hibridni monitorji so razširjeni predvsem na področju komunikacij
Glede na način zagona:
- dogodkovno proženje (npr. beleženje trajanja)
- v enakih časovnih korakih (npr. vrste)
Glede na prikaz zajetih podatkov:
- sprotno prikazovanje
- naknadno prikazovanje
Programski monitorji
Analiziramo uporabniške aplikacije - operacijski sistem - strojne entitete. Realizacija je čisto programska, ni lastne procesne platforme, obremenitev gostitelja (opazovanega sistema). Primerni so za dogodke z nizko frekvenco. Imajo veliko vhodno širino, zato so prilagodljivi. Težava je lahko pomnenje - ob veliki vhodni širini je treba poskrbeti za ustrezno pomnenje.
Posebnosti programskih monitorjev
Razlike (posebnosti) izvirajo iz izvedbe. Lahko se realizirajo na več načinov kot strojni, so neodvisni od platforme in operacijskega sistema.
- način proženja (klic procedure):
- dodajanje inštrukcije za zajem podatka (najbolj enostavno)
- trap inštrukcija
- trace mode - po vsaki inštrukciji sproži prekinitev, obremenjujoče
- časovne (ciklične) prekinitve - kadar imamo malo dogodkov
- velikost vmesnega pomnenja:
- frekvenca zajema in njegova širina narekujeta velikost pomnilnih enot in vmesnih pomnilnikov
- dodatno vpliva prisotnost monitorja
- kaj narediti, če je vmesni pomnilni prostor zaseden?
- hranimo sveže podatke, stare izgubljamo
- hranimo stare podatke, nove izgubljamo
- vmesna analiza podatkov
- možnost vklopa/izklopa
- programski jezik - zbirni, C
- prioritete med aplikacijami na ciljnem sistemu
- zajem nenormalnih dogodkov
Izvedba programskih monitorjev
Namen programskih monitorjev:
- sledenje programskega izvajanja
- merjenje časov izvedbe
- optimizacija programske kode
- preverjanje pravilnosti
- preverjanje metod testiranja
3 možnosti za izvedbo monitorja:
- nudi ga operacijski sistem
- gostitelj za monitor je koda ciljne aplikacije
- samostojna aplikacija
Program - monitor je potrebno opremiti (vgraditi ukaze za monitoring). Prvoten program - dodajanje elementov za beleženje - opremljen program - izvajanje programa - zbiranje podatkov.
Enota opazovanja je lahko:
- inštrukcija (nizek nivo)
- ukazna vrstica (srednji nivo)
- transakcija (1 vpis v podatkovno bazo)
Tehnika merjenja:
- zajemanje v enakih časovnih intervalih
- vrivanje kode na prava mesta
Kdaj opremiti program?
- ob nastajanju programa (ob programiranju)
- pri prevajanju programa
- v fazi povezovanja
- pred časom izvajanja
Uporaba dnevniških datotek (log) za monitoring
Za trivialne monitorje so že vgrajene.
Cilji:
- pravilnost delovanja
- sledenje posebnim dogodkom
- monitoring
Dobre strani:
- so že vgrajene
- proizvajalec poskrbi za minimalno obremenitev
Slabosti:
- redkokdaj lahko logging programiramo
Strojni monitorji
Strojni monitorji so naprave, ki zaznavajo električne nivoje na vodilnih napravah in jih znajo ustrezno interpretirati in poleg tega analizirati.
- cena je nekajkrat višja v primerjavi z programskimi
- ni obremenitve na opazovani sistem
- imajo visoko frekvenco dogodkov
- delujejo na nizkem področju (najnižji nivo: napetost, logika)
Osnovni sestavni deli strojnega monitoringa:
- sonde (fizičen priklop)
- strojne realizacije števcev (zaradi velike frekvence)
- primerjalniki in logični elementi
- časovniki
- pomnilni segment
Primerjava med programskimi in strojnimi monitorji
Strojni:
- zaznava signale in spremembe na vodilih
- nizek nivo spremljanja
- zelo hitri
- delovna frekvenca (resolucija) je lahko višja od frekvence opazovane naprave (zaželjeno je, da je višja)
- problem znanja
- pomnenje: ne krade pomnilnika aplikacije
- zazna vse dogodke (paralelizem sond)
- ne obremenjuje V/I naprav
- dražji
- univerzalni (različni protokoli, procesorji...)
- ne vnaša lastne napake
Programski:
- visok nivo spremljanja
- počasni
- velika širina zajema
- vsak dogodek povzroči proženje več inštrukcij na opazovanem procesorju
- frekvenca dogodkov mora biti manjša od frekvence ciljne naprave
- krade procesorsko moč in pomnilni prostor
- ne zazna paralelnih dogodkov
- lahko obremenjuje tudi V/I naprave
- drastično cenejši
- ni univerzalna (prenos med OS, RISC/CISC procesorji)
- z lastnimi napakami lahko spremeni obnašanje ciljnega sistema
Skupno obema:
- zasedenost procesorja
- prekrivanje V/I inštrukcij
Hibridni monitorji
So kombinacija programske in strojne rešitve. Zajem podatkov vrši strojna realizacija, analizo podatkov pa gostitelj (lahko tudi kasneje). Zmanjšanje cene.
Porazdeljeni monitorji
Porazdeljeni računalniški sistemi zahtevajo porazdeljene monitorje.
- paralelno zbiranje in analiziranje podatkov o rač. sistemu na različnih lokacijah (fizičnost je primarna)
- sinhronizacija časa - problem izmenjave podatkov
- neodvisnost - hierarhija monitorjev
- večja kompleksnost monitorjev
Splošna shema porazdeljenega monitorja
- upravljanje
- nadzor
- razlaga
- predstavitev (prikaz analize ciljnim osebnostim)
- analiza (statistična obdelava, kompleksnejše analize)
- zbiranje (grobi pregled in filtriranje podatkov)
- opazovanje (golo beleženje podatkov)
Nivo opazovanja
- pasivno
- neobremenjujoče za gostitelja
- ekvivalentno strojni realizaciji
- proženje ob dogodkih
- npr. prejem paketa, transakcija na disku
- aktivno
- preverjanje razpoložljivosti gostitelja
- npr. pošta samemu sebi (umetno breme)
Nivo zbiranja
- surovi podatki (koristni)
- zmanjšati število podatkov
- npr. štetje dogodkov, izračun povprečja, maksimum
- časovna sinhronizacija
- večina sondirnih točk ima prvi in drugi nivo
Nivo analize
- statistični izračun
- metode umetne inteligence
Nivo prikazovanja
- redundanca (cena)
- proženje prikaza:
- v enakih časovnih intervalih (na zahtevo nivoja prikaza)
- na zahtevo nižjih nivojev (izredni dogodek)
Uporaba porazdeljenih monitorjev
3 nameni:
- bazično vrednotenje zmogljivosti
- s ciljem odkrivanja napak
- za odkrivanje sprememb v sistemu (npr. sledenje konfiguraciji)
Zgled porazdeljenega monitorja
HP Open View
- mrežni monitor (LAN, MAN)
- agenti SNMP (Simple Network Management Protocol)
- agenti pobirajo podatke na prvem in drugem nivoju
- analizo na tretjem in četrtem nivpju opravlja HP OV, ki je programski analizator in prikazatelj
Postopki za pohitritev programske opreme
Vrsta postopkov, ki skrajšajo čas izvedbe in ne spremenijo rezultata izvedbe.
- optimiziramo čas izvajanja
- osnova za optimizacijo
- časovna analiza posameznih delov kode, ki se izvaja
- frekvenca klica posameznega modula
Posegi v prog. opremo s ciljem optimizacije
Postopki so odvisni od procesorjev, na višjem nivoju od operacijskega sistema.
Sestavljen pogoj - vrstni red
Sestavljeni pogoji se evakuirajo od leve proti desni:
- & na prvo poziciji postavi pogoj, ki bo z največjo verjetnostjo neizpolnjen
- | na prvo pozicijo postavi pogoj, ki bo z največjo verjetnostjo izpolnjen
- 5 - 10 % časovno izboljšanje
Urejanje tabel
Ne glede na majhnost strukture mora biti ob iskanju zagotovljeno, da so pogosto iskani elementi vedno na začetku strukture glede na način iskanja.