1 / 29

About architecture design process

About architecture design process. Basic functionality and composition Roles, creators of data, processing needs, data flows, decisionmaking points Modularity and evolvability, understandability Addition of correct distribution mechanisms Communication model Decision model

hewitt
Download Presentation

About architecture design process

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. About architecture design process

  2. Basic functionality and composition • Roles, creators of data, processing needs, data flows, decisionmaking points • Modularity and evolvability, understandability • Addition of correct distribution mechanisms • Communication model • Decision model • Vertical and horizontal distribution • Performance analysis • Modeling, analysis  indications of the performance • Selection between alternative architectures

  3. Suorituskyky: mittasuureet • Palvelukyky (ability to serve) • vastausaika (response time) • kiertoaika, kääntymisaika (turnaround time) • vasteaika (reaction time) • suoritusteho, läpäisy (throughput) • Käyttöaste (utilization; sisäinen suorituskyky) • komponentin i käyttöaste • komponentin i jononpituus • komponentin i ”läpäisyaika” • Kapasiteetti • järjestelmän kapasiteetti • komponentin i kapasiteetti Suorituskyvystä ei voi puhua määrittelemättä työkuormaa

  4. Vastausaikaperhe Käyttäjä aloittaa pyynnön kirjoittamisen Käyttäjä lähettää pyynnön Pyyntö perillä Pyynnön käsittely alkaa Vastaus alkaa saapua käyttäjälle Koko vastaus on perillä Aika Kiertoajanpuolikas Vasteaika Vastausaika (alaraja) Vastausaika (yläraja)

  5. Käyttöastesuureet • Käyttöastesuureet ovat tutkijan mittoja • Kasvun logiikka • kuorma kasvaa • laitteiden kuormitukset kasvavat (eri tavoin) • työjonot laitteilla kasvavat (ylilineaarisesti!!) • töiden läpimenoajat kasvavat • Tutkijan kysymykset • miten kuorman kasvu vaikuttaa eri laitteisiin • kuormitukseen, läpimenoaikaan, läpäisyyn • Managerin uteliaisuus: kuinka paljon kapasiteettia tarvitaan? • Käyttäjän valinta: onko yhteisten resurssien käytölle vaihtoehtoja?

  6. Muita ”suorituskykysuureita” • Kuinka hyvin järjestelmä pystyy palvelemaan • on saatavilla • suorittaa annetun tehtävän ja oikein

  7. Heterogeenisyys • Kuormamalli: joukko oleellisesti erilaisia töitä • kokonaiskäyttäytyminen (”keskiarvo”?) => työluokkakohtaiset suorituskykyarvot • Epähomogeeninen aikakäyttäytyminen • ”ruuhka-aika”, ”normaalikuorma”, ”hiljainen kausi” => mallinna erikseen HUOMAA: mediaani ”korjaa” jakauman vinouden, mutta se ei korjaa jakauman monihuippuisuutta!

  8. Suorituskykyyn vaikuttavat tekijät • Laitteiston komponenttien kapasiteetit (kuorma & kapasiteetti => millainen kuormitus missäkin?) • Ohjelmiston tehokkuus • ”algoritmi” – ja sen toteutus • ohjelmistoarkkitehtuuri, erityisesti hajautus ja rinnakkaisuus • suorituskyky pullonkaulassa • Työkuorma (workload) • Resurssien hallinta • politiikka (allokointi, skedulointi) • viritys (parametrien asetukset)

  9. Mistä puhutaan, kun puhutaan suorituskyvystä? Kuormamalli Vastausaikamalli Käyttäjämalli Järjestelmämalli Käyttäjä => työkuorma Työkuorma => resurssien kuormitus Resurssien kuormitus => vastausaika Malli: oleellisen täsmällinen kuvaus

  10. Järjestelmämalli Käyttäjämalli Kuormamalli Vastausaikamalli Analyyttinen malli • Muodostetaan järjestelmää kuvaava matemaattinen malli • jonomalli • jonoverkkomalli • määrittelyt: yleensä todennäköisyysjakaumia • Määritetään tai määritellään mallin parametrien arvot • Lasketaan suorituskykysuureiden arvot • Menetelmäpaletti laaja • koulumatematiikka • jonoteoria • tasapainoyhtälönratkaisu (jne.) • Mallin validiteetti? Tulosten validiteetin rajat?

  11. Menetelmän valinta (*) ohjelmistotukea on olemassa (**) aina mahdollista: tulokset ovat täysin virheellisiä

  12. tty Arrival Service request cpu disk Sending exp uniform RR FCFS Transmission Collision ? Receive OK ? Handling_req Mallin rakenne Abstrakti matemaattinen rakenne (esim. laskentaa varten) Yksityiskohtainen toimintakuvaus (esim. simulointia varten)

  13. Yksinkertainen malli => yleiskuva käyttäytymisestä (analyyttinen malli, simulointi) Yksityiskohtainen malli => selityksiä käyttäytymiselle (analyyttinen malli, simulointi) Mallinnusprosessi aloita yksinkertaisella mallilla (ks. Occamin partaveitsi) jos tulokset eivät tyydyttäviä, lisää yksityiskohtaisuutta: oleelliseksi arvioitavia selittäjiä jatka, kunnes tietämyksen taso on riittävä (tai kustannukset kasvavat liian suuriksi) Tarkkuuden lisäyksen hinta: parametrien määrittäminen (saatavuus, tarkkuus?) analyyttisen mallin ratkaistavuus (siirry simulointiin … ) Mallin tarkkuus

  14. Network time Server site time Latency Transmission time Service time Queuing time CPUs CPUs Disks Disks LANs LANs Missä aika kuluu … Latency: protokollan yleishallinto Yksinkertaistus: verkon jonotuksia ei ole huomioitu

  15. W3 S3 S5 W1 S1 W5 CPU W2 S2 W4 S4 Disk odotusaika palveluaika Vastausaika R = Rcpu + Rdk Palvelijan vastausajan synty (1) CPU : palvelutarve Dcpu = S1+S3+S5 jonotusaika Qcpu = W1+W3+W5 läpimenoaika Rcpu= Dcpu+Qcpu DISK : Rdk = Ddk+Qdk

  16. W3 S3 S5 W1 S1 W5 CPU W2 S2 W4 S4 Disk Palvelijan vastausajan synty (2) R =Dcpu + Qcpu + Ddk + Qdk = Dcpu + Ddk + Qcpu + Qdk Kevyt kuorma => R ~ R0 = S Di Kuorma kasvaa => kukin Qi kasvaa (ylilineaarisesti) Raskas kuorma => R ~ S Wi (>> R0 ) Viritys/kasvatus: Di pienenee => vaikutus riippuu laitteen i kuormituksesta

  17. Asiakkaat jonossa Operationaalinen jonomalli: kaikki suureet ovat mitattavissa S = B/C keskimääräinen palveluaika U = B/T käyttöaste X = C/T suoritusteho, läpäisy T mittausaika A saapujien lkm C poistujien lkm B ”busy time” l = A/T ~ X saapumistiheys U = l S KäyttöastelakiU = XS

  18. Esimerkki Verkkosegmentti • läpäisy mittausaikana 1000 pakettia/s • paketin siirtoaika 0.15 ms • mikä on segmentin käyttöaste? • U = XS => U = 1000 x 0.00015 = 0.15 = 15% • Oletus operationaalisissa malleissa • mitattu ajanjakso on ”tyypillinen” • järjestelmä on ”tasapainotilassa” (A~C)

  19. Littlen laki n(t) Little: N = XR T W = kokonaisoleskeluaika järjestelmässä (tumma alue) R = W / C keskimääräinen vastausaika N = W / T keskimääräinen jonopituus (*) X = C / T läpäisy (*) Huom: ”jononpituus” sisältää myös palveltavan

  20. R Littlen laki: ”perustelu” • Asiakas saapuu jonoon • jonon pituuden odotusarvo on N • Asiakkaan ”läpimenoaika” • läpimenoajan odotusarvo on R • tänä aikana jonoon saapuu uusia asiakkaita XR • Asiakas poistuu jonosta • jälkeen jäävän jonon pituuden odotusarvo on N • =>N = XR • Littlen laki pätee myös ”varsinaiseen jonoon” Saapumistiheys X

  21. tty N cpu disk Avoin ja suljettu järjestelmä Avoin järjestelmä • ”(ääretön) populaatio” • asiakkaiden lkm vaihtelee • saapumistiheys = poistumistiheys • kysymys: • vastausajan käyttäytyminen • (käyttöaste?) X Suljettu järjestelmä • kiinteä asiakasjoukko • kysymys: • vastausajan käyttäytyminen • ”vuon” nopeus • (käyttöasteet?)

  22. tty cpu disk R = M/X – Z => Vastausaikalaki (response time law) M päätettä Z miettimisaika R vastausaika X suoritusteho ”kyselyä/aikayksikkö” Little: M = X (Z+R) Esim: M = 12, X = 0.5 vast/s, Z = 20 s => R = 4 s

  23. tty Vdk1 Vcpu dk1 cpu dk2 Vdk2 Pakkovuolaki (forced flow law) • T mittausaika • C0 vastausten lkm • X0 vastaustiheys • Ci töitä laitteella i • Xi läpäisy (laite i) = Ci / T X0 Vtty=1 Työn käyntisuhde (visit ratio) laitteella i: Vi = Ci / C0 Xi/X0 = Ci/C0 = Vi => Xi = Vi X0 X0 ~ vuon nopeus; {Vi} ~ vuon jakautuminen verkkoon

  24. Esimerkki: kyselyjärjestelmä tty • Kysely • Vdk = 20 • Sdk = 25 ms • Oletettu käyttötilanne • aktiivisia käyttäjiä M = 25 • miettimisaika Z =18 s • levyn käyttöaste Udk = 0.5 • Vastausaika R = ? cpu disk R = M/X0 – Z X0 = ? Xi=ViX0 => X0=Xi/Vi Xi=Ui/Si => X0= Ui/(ViSi) X0 = 0.5 / (20*0.025) = 1 R = 25/1 -18 = 7 s Määritelmä: ViSi = Di (demand)

  25. Moniluokkainen työkuorma • Oletus edellä: työt ovat ”tilastollisesti samanlaisia” (kuorman töitä mallinnetaan ”keskiarvotyöllä”). • Moniluokkainen kuormamalli: kuorma muodostuu keskenään erilaisista luokista, kunkin luokan työt ovat sisäisesti ”samanlaisia” • Esimerkkejä • pankkiautomaatti: saldokyselyt / setelinostot • tietoliikenne: kuittaukset / kyselyt / tekstitiedoston siirto / videokuvan siirto • www-selaus: kyselyt / vastaukset

  26. Syitä moniluokkaisuudelle Perussyy: heterogeenisyyden hallinta • Töiden erilaiset resurssinkäyttöprofiilit • Kuorman saapumiskäyttäytymisen erilaisuus: avoin tai suljettu luokka • Erilaisilla työtyypeillä erilaiset suorituskykyvaatimukset (kysely / päivitys / ylläpito) • Erilaisilla työtyypeillä erilaiset kasvuennusteet Heterogeenisyys ajan yli • kukin ”homogeeninen” periodi mallinnetaan erikseen (esimerkiksi vuorokaudenajat: ruuhka / normaali / kevyt )

  27. X0 X’0 Esimerkki: kaksi työluokkaa (1) tty • Kyselyjärjestelmä • päätteitä M = 40 • miettimisaika Z = 15s • vastausaika R = 5s • Levyn käyttö Sdk = 40 ms, Udk = 0.9 kyselyt: Vdk = 10 erätyöt: V’dk= 5 cpu disk Kyselyt Erätyöt • Erätyöt: • X’0 = ? • jos X’0-> 3 niin R -> ? Lähde: Denning, Buzen, The Operational Analysis of … ; ACM CS 10 (3), Sept. 1978

  28. X0 X’0 Esimerkki: kaksi työluokkaa (2) tty • Kyselyjärjestelmä • päätteitä M = 40 • miettimisaika Z = 15s • vastausaika R = 5s • Levyn käyttö Sdk = 40 ms, Udk = 0.9 kyselyt: Vdk = 10 erätyöt: V’dk= 5 cpu disk Levy kyselyjärjestelmä X0 = M/(Z+R) = 40/20 = 2 kys/s kyselyjen läpäisy Xdk = VdkX0 = 20 noutoa/s kokonaisläpäisy Xdk + X’dk = Udk/Sdk = 22.5 noutoa/s erätöiden läpäisy X’dk = 22.5 - 20 = 2.5 noutoa/s Koko järjestelmä: erätöiden läpäisy X’0 = X’dk/V’dk = 0.5 työtä/s

  29. Pelkistetyt välineet antavat toisinaan virheellisen tuloksen • Otettava huomioon erilaisia todennäköisyysjakaumia ja skedulointitapoja • Teoriaa: suorituskykyanalyysin kurssi kurssikirjoijeen • Erilaisia arviointityökaluja saatavilla • HJ-kurssilla ”ad hoc” –arvioita – peruskaavojen taso riittää tuomaan esiin oikeat kysymyskohdat

More Related