Järjestelmätason mallit III Luento 8 58153003 Ohjelmistojen suorituskyky 1 KEHITYSPROJEKTIN ALKUVAIHEEN MALLIT 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1
Alkuvaiheen arviot Järjestelmän kehitysprojektin aikaisissa vaiheissa emme voi tehdä mittauksia ja havaintoja järjestelmän kuormituksesta ja suoritustehosta Joudumme siis arvioimaan työkuorman intensiteettiä ja palveluiden kysyntää Työkuorman intensiteetti: järjestelmässä olevien töiden tekemien palvelupyyntöjen määrä tietyllä ajanjaksolla Palveluiden kysyntä: aika, jonka työt vaativat järjestelmän laitteilta 58153003 Ohjelmistojen suorituskyky 3 Alkuvaiheen arviot Ensimmäisiä arvioita varten oletetaan, että järjestelmä on riittävän nopea käsittelemään saapuvat työt niiden tulotahdissa (, työtä / aikayksikkö), joten X = Job flow balance ominaisuus; järjestelmä ei ota vastaan enemmän töitä kuin se voi käsitellä Kuten edellisellä luennolla havaittiin, järjestelmän pullonkaulat rajoittavat suoritustehon johonkin maksimitasoon; oletamme siis aluksi, että voimme rakentaa järjestelmän siten, että haluttu tehotaso saavutetaan ja < 1 / D max 58153003 Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktl 2
Esimerkki Oletamme eräälle järjestelmälle Töiden tulotahti = 0,4 työtä / sek. Työn keskimääräinen palveluaika S = 2 sek. Voidaan laskea suorituskykmittareille arviot (kaavojen johdot sivuutetaan 1 ) X = = 0,4 työtä / sek. U = X S = 0,4 2 = 0,8 Oloaika R = S / (1-U) = 2 / (1-0,8) = 10 sek. Keskim. töiden lukumäärä j:ssä N = X R = 0,4 10 = 4 1 Katso esim http://homes.cs.washington.edu/~lazowska/qsp/, luvut 3, 5 ja 6 58153003 Ohjelmistojen suorituskyky 5 Mistä luvut? Työkuorma-arvio ( ) saadaan Järjestelmän aiottua käyttöä tarkastelemalla; mikä on kunkin työtyypin/käyttötapaukset oletettu frekvenssi (<- järjestelmän vaatimukset) Tarkkailemalla vastaavanlaisia jo käytössä olevia järjestelmiä Palveluiden kysyntä (S) Ohjelmasuoritusmallien avulla voidaan laskea joka resurssille käyntikerrat ja niiden suoritusaikavaatimukset eli kysyntä D i per käyttötapaus/skenaario 58153003 Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktl 3
JONOVERKKOMALLIT, QNM 58153003 Ohjelmistojen suorituskyky 7 Jonojen ja servereiden verkko Edellinen esimerkki käsitteli järjestelmää mustana laatikkona, jolle oli arvioitu työkuorma ja työn keskimäärin saama palveluaika Tai yhtä hyvin voidaan ajatella, että tarkasteltiin yhtä yksittäistä järjestelmän resurssia Kuten aiemmin todettiin, esimerkiksi Littlen lakia voi soveltaa kaikilla järjestelmän tasolla 58153003 Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktl 4
Jonojen ja servereiden verkko Järjestelmät kuitenkin koostuvat yleensä useista resursseista, joiden välillä työt siirtyvät Järjestelmä kuvataan verkkona, jonka solmuina on resursseja (jono + serveri) ja jonka kaaret vastaavat töiden siirtymiä Tällaista verkkoa sanotaan jonoverkkomalliksi (Queueing Network Model) 58153003 Ohjelmistojen suorituskyky 9 Avoin jonoverkkomalli Enter Exit CPU Disk 1 Disk 2 58153003 Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktl 5
Avoin jonoverkko Edellisen dian avoimessa jonoverkossa työt tulevat järjestelmään Enter -solmusta ja siirtyvät CPU:lle Saatuaan palvelua CPU:lta, työ siirtyy jommallekummalle levylaitteelle (Disk n) tai, jos ne eivät tarvitse levyä, poistuvat Exit solmun kautta järjestelmästä Avoimet verkot sopivat mallintamaan transaktiojärjestelmiä, joihin työt tulevat ja sitten poistuvat Pankkiautomaatti, tietokantapalvelin, Google-haku Töiden määrä järjestelmässä vaihtelee ajan kuluessa 58153003 Ohjelmistojen suorituskyky 11 Avoimen jonoverkkomallin ratkaisu Avoimen jonoverkon ratkaisemiseksi eli suorituskykymittareiden arvojen laskemiseksi tarvitaan lähtötietoina Työkuorman intensiteetti mihin tahtiin työt saapuvat järjestelmään? Palveluiden kysyntä keskimääräinen käyntien määrä per laite ja keskimääräinen palveluaika per käynti tai suoraan laitteen kokonaiskysyntä (D i ) Käytetystä työkalusta riippuen 58153003 Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktl 6
Esimerkkiverkon ratkaisu Huom verkkojen ratkaisemiseen tulisi käyttää työkaluja, joissa tarvittavat laskentaalgoritmit on implementoitu Seuraava esimerkki lähinnä havainnollistaa, mitä työkaluilla saa aikaan 58153003 Ohjelmistojen suorituskyky 13 Esimerkkiverkon ratkaisu Syöteparametrit Töiden tulotahti (arrival rate), Käyntien määrä jokaisella laitteella i, V i Keskimääräinen palveluaika laitteella i, S i Parametreille ja S i voidaan käyttää mitä tahansa yksiköitä, kunhan ne ovat yhteensopivat keskenään 58153003 Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktl 7
Ratkaisun perusteet Syötearvoja käytetään seuraavissa kaavoissa suorituskykymittareiden arvojen laskemiseen 1. Järjestelmän suoritusteho X 0 = (job flow bal.) 2. Laitteen i suoritusteho X i = X 0 V i (forced flow) 3. Laitteen i käyttöaste U i = X i S i 4. Työn oloaika laitteella i per käyntikerta R i = S i / (1 - U i ) 5. Laitteella i olevien töiden keskim. lukumäärä N i = X i R i 6. Koko järjestelmässä olevien töiden keskim. lukumäärä N = N i 7. Koko järjestelmän vastausaika R = N / X 0 58153003 Ohjelmistojen suorituskyky 15 Parametrit Verkon ratkaisu Töiden tulotahti = 5 työtä / sek. V i ja S i laite Käyntien määrä V Keskim. palveluaika S CPU 5 0.01 Disk 1 3 0.03 Disk 2 1 0.02 58153003 Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktl 8
Verkon ratkaisu Mittari CPU Disk 1 Disk 2 1. X 25 15 5 2. S 0.01 0.03 0.02 3. U 0.25 0.45 0.10 4. R 0.013 0.055 0.022 5. N 0.325 0.825 0.111 N = 0.325 + 0.825 + 0.110 = 1.26 R = 1.26 / 5 = 0.252 sek. Lasketaan ensiksi laitekohtainen suoritusteho ja käyttöaste käyttäen edellä annettuja kaavoja 2 ja 3 Laitekohtaisten vastausaikojen ja työlukumäärien laskeminen on sitten mahdollista kaavoilla 4 ja 5 Viimeiseksi lasketaan järjestelmäkohtaiset metriikan N ja R kaavoilla 6 ja 7 58153003 Ohjelmistojen suorituskyky 17 Suljettu jonoverkkomalli User CPU Disk 1 Disk 2 58153003 Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktl 9
Suljettu jonoverkkomalli Suljettuun järjestelmään ei tule töitä eikä niitä poistu sieltä Vakiomäärä töitä kiertää järjestelmässä Viivesolmu (User) korvaa Enter- ja Exit-solmut Järjestelmä toimii siten, että käyttäjä (User) muodostaa pyynnön viivesolmussa ja syöttää sen järjestelmään Pyyntö (eli työ) siirtyy nyt verkossa solmusta toiseen, kuten avoimessakin verkossa Kun pyyntö on valmis, se palaa takaisin käyttäjälle, joka muodostaa uuden pyynnön ja syöttää sen järjestelmään, ja prosessi toistuu 58153003 Ohjelmistojen suorituskyky 19 Suljettu jonoverkkomalli Huomaa, että User -solmusta katsoen muu verkko on avoin järjestelmä User solmun suoritusaika mallintaa aikaa, joka kuluu siihen, kun käyttäjä muodostaa pyynnön (esim. täyttää syötekentän), lähettää sen järjestelmään, ottaa vastaan pyynnön tuloksen, tarkistaa tuloksen ja muodostaa seuraavan pyynnön (-> think time ) Suljetut jonoverkot sopivat interaktiivisten ja istuntopohjaisten järjestelmien mallintamiseen 58153003 Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktl 10
Suljetun jonoverkkomallin ratkaisu Suljetun mallin työkuorman intensiteetti muodostuu järjestelmässä olevien käyttäjien (tai samanaikaisten töiden) määrästä ja miettimisajan pituudesta Lisäksi tarvitaan tieto pyyntöjen käynneistä laitteilla ja niiden vaatimista palveluajoista Mallin ratkaisu on monimutkaisempi kuin avoimen järjestelmän, koska suoritusteho riippuu nyt vastausajasta, kuten verkon topologiasta voi päätellä Jos tuloksen muodostaminen kestää kauemmin, kuluu vastaavasti pitempi aika siihen, kun seuraava pyyntö tulee Ratkaisualgoritmit eivät kuulu kurssin sisältöön 58153003 Ohjelmistojen suorituskyky 21 JÄRJESTELMÄMALLIEN PARAMETRIEN JOHTAMINEN 58153003 Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktl 11
Ohjelmasuoritusmalleista järjestelmämalleihin Jotkin työkalut (esim SPE-ED) osaavat automaattisesti johtaa järjestelmätason mallien vaatimat parametrit ohjelmasuoritusmalleista Seuraavassa esitellään yleiskatsaus parametrien johtamiseen 58153003 Ohjelmistojen suorituskyky 23 Järjestelmämallin rakentaminen Järjestelmämalli laaditaan laitoskohtaisesti Aloita järjestelmämallin rakentaminen käyttämällä jonoja ja servereitä edustamaan tärkeitä laitoksen laskentaresursseja ja laitteita, jotka on tunnistettu ohjelma-suoritusmalleissa Seuraavaksi yhdistä serverit verkoksi määrittelemällä servereiden välisten yhteyksien topologia Tässä tarvitaan tietoa sekä suoritusympäristöstä että ohjelmien suorituksen kulusta (skenaarioista) Järjestelmäasiantuntijat voivat neuvoa tässä 58153003 Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktl 12
Järjestelmämallin rakentaminen Seuraavaksi pitää miettiä sopiiko suljettu vai avoin malli paremmin kuvaamaan järjestelmää Avoimet mallit sopivat paremmin transaktioiden tyyppisiä töitä käsitteleviin järjestelmiin, joissa vastausajat eivät vaikuta töiden saapumistahtiin (arrival rate) Suljetut mallit sopivat interaktiivisiin järjestelmiin, jossa vakiomäärä käyttäjiä/töitä kiertää järjestelmässä välillä miettien (think time) ja jossa työn vastausaika vaikuttaa työn kiertonopeuteen (seuraavan pyynnön saapumisaikaan) 58153003 Ohjelmistojen suorituskyky 25 Työkuormat Eri työkalut tukevat erilaisia töiden skedulointiperiaatteita, jotka voivat vaikuttaa siihen, millä kaavoilla suorituskykymetriikoita voidaan laskea Seuraavaksi täytyy määritellä laitoksessa suoritettavien skenaarioiden työkuormien intensiteetit Töiden saapumistahti / käyttäjien määrä ja miettimisaika 58153003 Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktl 13
Työkuormat Työkuormien määrittelyssä tarvittavien lukujen hankkiminen voikin olla vaikeaa Käytetään markkinoinnin laatimia ennusteita Tarkkaillaan samantapaisen käytössä olevan järjestelmän suoritusprofiilia Havainnoidaan (manuaalista) järjestelmää, jonka toteutettava uusi järjestelmä korvaa 58153003 Ohjelmistojen suorituskyky 27 Kysyntä Viimeisessä vaiheessa määritellään palveluaikatarpeet (resurssien kysyntä) Suoritusympäristön spesifikaatioista johdetaan laitteiston tärkeät suoritusparametrit Resurssien käyntikerrat ja palveluajat (kysyntä) saadaan ohjelmasuoritusmalleista 58153003 Ohjelmistojen suorituskyky 28 Helsingin Yliopisto / Tktl 14
Joka skenaariolle omat parametrit Edellä kuvattu prosessi koskee siis yhtä suorituskykyskenaariota Jos skenaarioita on useita, toistetaan laskenta kullekin skenaariolle erikseen niistä johdetuilla parametreilla Työkalut myös ratkaisevat monen skenaarion ns. moniluokkamalleja (multi-class modes) sovittamalla QNM-laskentakaavoja tai simuloimalla useita työkuormia samanaikaisesti Näin voidaan helposti tutkia työkuormien variaatioiden vaikutusta suorituskykyyn 58153003 Ohjelmistojen suorituskyky 29 JÄRJESTELMÄMALLIEN KÄYTTÖ SPE:SSÄ 58153003 Ohjelmistojen suorituskyky 30 Helsingin Yliopisto / Tktl 15
Järjestelmämallit ja SPE Järjestelmämallit tuovat kvantitatiivista tietoa resurssikilpailun vaikutuksista: Tarkempia metriikoita, jotka ottavat resurssikilpailun vaikutuksen huomioon Vastausaikojen piteminen töiden jonottaessa resursseja; resurssien käyttöasteen laskeminen eri skenaarioissa Suorituskykymetriikoiden sensitiivisyys työkuormien rakenteelle Laitteiston ja ohjelmiston skaalautuvuus Uuden ohjelmiston vaikutus toisten järjestelmien suorituskykyyn (samassa laitoksessa) 58153003 Ohjelmistojen suorituskyky 31 Järjestelmämallit ja SPE Pullonkaulojen tunnistaminen Korkeimman kysynnän laite saturoituu ensimmäisenä ja rajoittaa siten koko järjestelmän suoritustehoa Vertailudatan hankkiminen suorituskyvyn parantamiseen tähtäävistä vaihtoehdoista Harkitse työkuorman, laitteiston tai ohjelmiston muuttamista ja näiden kombinaatioita; muuntele työkuorman intensiteettiä ja ohjelmisto- / laitteistokonfiguraatioita muutosten vaikutusten kvantifioimiseksi 58153003 Ohjelmistojen suorituskyky 32 Helsingin Yliopisto / Tktl 16
Malleista Tähän mennessä on käytetty melko yksinkertaisia malleja, jotka on ollut helppo ratkaista eksaktisti ja analyyttisesti (laskentakaavoilla), tosin työkaluja käyttäen Monimutkaisempiakin malleja voidaan määritellä, mutta niiden ratkaisuun tarvitaan simulointia tai likimääräisiä analyyttisiä menetelmiä Simulointi voi antaa paljon lisätietoa (minimit, maksimit) yksinkertaisistakin malleista, joiden analyyttinen ratkaisu tuottaa vain keskiarvoja 58153003 Ohjelmistojen suorituskyky 33 Malleista Monimutkaisempien mallien konstruointi on työlästä ja vie aikaa, joten niistä saatava hyöty kannattaa tarkkaan arvioida Usein yksinkertaisemmat mallit antavat riittävästi tietoa eri arkkitehtuurivaihtoehtojen evaluoimiseksi Syitä laatia yksityiskohtaisempia malleja Mutkikkaat laitteistokonfiguraatiot ja niiden skedulointipolitiikkojen vaikutuksen arviointi Passiivisten resurssien käyttö toiminnan koordinointiin (mutexit, muut säikeiden synkronointimekanismit) Tarve saada lisää metriikoita (minim, maksimi, hajonta, saapuvien töiden jakaumat jne.) 58153003 Ohjelmistojen suorituskyky 34 Helsingin Yliopisto / Tktl 17
MALLINNUSVINKKEJÄ 58153003 Ohjelmistojen suorituskyky 35 Vinkkejä Monien käyttäjien ja työkuormien mallintaminen Järjestelmämallit ottavat jo huomioon monen yhtäaikaisen käyttäjän/työn vaikutuksen Monia työkuormia mallinnetaan kohdistamalla ne samaan laitokseen (facility); työkuormien parametrit saadaan työkuormiin liittyvistä suorituskykyskenaarioista 58153003 Ohjelmistojen suorituskyky 36 Helsingin Yliopisto / Tktl 18
Vinkkejä Keskimääräinen kuorma vs. huippukuorma Työkalut laskevat yleensä keskimääräiset suorituskykyarvot QNM-malleille Pidä siis huoli, että valitset tarkasteluajanjakson asianmukaisesti huippukuormitustilanne (esim tietty vuorokaudenaika) saattaa poiketa huomattavasti työkuormaltaan ja töiden tulotahdiltaan rauhallisemmasta tilanteesta 58153003 Ohjelmistojen suorituskyky 37 Vinkkejä Herkkyys Voit tutkia mallien parametrien muutosten suhteellista vaikutusta suorituskykymittareiden arvoihin Jos pieni muutos jonkin syöteparametrin arvossa aiheuttaa suuren muutoksen jonkin mittarin arvossa, mallissa on herkkyyskohta tälle parametrille Herkkyyden paikallistaminen ja analysointi voi antaa vihjeitä siitä, kuinka järjestelmän suorituskykyä voi parantaa Herkkyyskohdan olemassaolo on myös potentiaalinen riskitekijä 58153003 Ohjelmistojen suorituskyky 38 Helsingin Yliopisto / Tktl 19
Skaalautuvuus Vinkkejä Mallien ratkaisu mahdollisilla tulevaisuuden työkuormilla antaa tietoa siitä, minkä järjestelmän laitteiden suorituskyky voi rajoittaa skaalautuvuutta Jos vastausajat eivät ole tyydyttäviä, täytyy miettiä muutoksia ohjelmistoon tai laitteistoon 58153003 Ohjelmistojen suorituskyky 39 Vinkkejä Pullonkaulojen tunnistaminen Pullonkaulan laki kertoo, että suurimman kysynnän laite/resurssi rajoittaa koko järjestelmän suorituskyvyn tietylle maksimitasolle Mallin avulla voidaan tutkia vaihtoehtoja pullonkaulan poistamiseksi 58153003 Ohjelmistojen suorituskyky 40 Helsingin Yliopisto / Tktl 20