Suorituskykydatan kerääminen Luento 9 58153003 Ohjelmistojen suorituskyky 1 Mistä data suorituskykymalleihin? Tähän asti olemme olettaneet, että suorituskykymallien vaatima lähtödata on jo olemassa ja saatavilla Prosessointikustannukset, erilaisen ohjelmistotoimintojen resurssivaatimukset jne. Datan avulla SPE-mallien laatiminen on suhteellisen helppoa, mutta itse lähtödatan hankkiminen on usein prosessin vaikein vaihe 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1
Mistä data? Ensin pitää tietää, mitä dataa tarvitaan, jotta sitä voidaan alkaa hankkimaan eri menetelmillä Kehitysprojektin aikaisissa vaiheissa ei ole mitä mitata Tehdään arvioita Suorituskykyläpikäynti on prosessi, jossa kerätään tarvittavaa tietoa asiantuntijoilta ja sidosryhmiltä Kehitysprojektin myöhemmissä vaiheissa voidaan tehdä suorituskykykokeita ja mitata jo implementoitua ohjelmistoa (tai prototyyppiä) Mittausten ja instrumentoinnin tarve pitää ottaa huomioon implementoinnin alkaessa 58153003 Ohjelmistojen suorituskyky 3 MITÄ TIETOA TARVITAAN? 58153003 Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktl 2
SPE:n vaatima data SPE:ssä tarvitaan viittä eri tyyppiä dataa 1. Suorituskykyskenaariot 2. Suorituskykytavoitteet 3. Ohjelmiston suoritusympäristön määrittely 4. Ohjelmistoresurssivaatimukset 5. Laitteistoresurssivaatimukset 58153003 Ohjelmistojen suorituskyky 5 Suorituskykyskenaariot Suorituskyvyn kannalta tärkeiksi tunnistetut käyttötapaukset ja niiden instanssit eli skenaariot Suoritusaskelet Intensiteetti Skenaario kuvaa jonkin tietyn käyttötapauksen suorituksen kulun Koostuu toimintojen sarjasta, joka määrittelee järjestelmän vuorovaikutuksen ulkoisten toimijoiden kanssa sekä järjestelmän sisäisten objektien välillä 58153003 Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktl 3
Suorituskykyskenaariot Kriittiset käyttötapaukset Järjestelmän toiminnan ja tehtävän kannalta tärkeitä Vaikuttavat järjestelmän responsiivisuuteen käyttäjän näkökulmasta Kaikki kriittistenkään käyttötapausten skenaariot eivät kuitenkaan välttämättä ole suorituskyvyn kannalta yhtä tärkeitä 20 80 sääntö: 20% toiminnallisuudesta käytetään 80% ajasta Nämä toiminnot (20%) ja niiden skenaariot on tunnistettava ja keskityttävä aluksi niihin 58153003 Ohjelmistojen suorituskyky 7 Suorituskykyskenaariot Suorituskykyyn vaikuttavat myös raskaat, paljon resursseja vaativat tehtävät ( heavy hitters ), vaikka niitä suoritettaisiin harvemmin Esimerkiksi järjestelmän toipuminen ja vakaan tilan palauttaminen häiriötilanteen jälkeen vaaditussa ajassa Voivat myös hidastaa muita skenaarioita resurssikilpailun takia Esimerkiksi liiketoimintaraporttien muodostaminen tuotantotietokannoista normaalin transaktiokäsittelyn rinnalla 58153003 Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktl 4
Suorituskykyskenaariot Ohje: valitse yksi tai vain muutama tärkeimmistä suorituskykyskenaarioista projektin alkuvaiheen tutkimuksia varten Lisää muita skenaarioita myöhemmin 58153003 Ohjelmistojen suorituskyky 9 Suorituskykyskenaariot Itse skenaarioiden lisäksi tarvitaan vielä arvio niihin liittyvien työkuormien intensiteetistä Pyyntöjen tulotahti (avoin järj.) Käyttäjien määrä ja miettimisaika (suljettu järj.) Joka skenaariolla voi eri intensiteetti Intensiteetti voi myös vaihdella vuorokaudenajan ja muiden ulkoisten/sisäisen tilanteiden mukaan Tietolähteitä Järjestelmäarkkitehti, markkinoinnin ja käyttäjien edustajat, suorituskykyasiantuntijat 58153003 Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktl 5
Suorituskykytavoitteet Skenaarioiden evaluoimiseksi suorituskykytavoitteet on syytä esittää kvantitatiivisesti (s.o. lukuina) Ilman kvantitatiivisia vaatimuksia on vaikea tietää, mihin pitäisi pyrkiä ja milloin tavoite on saavutettu Kvantitatiivisten vaatimusten hyötyjä Tarjoavat perusteet suunnitteluvaihtoehtojen valinnalle Auttavat varmistamaan yksityiskohtaisten päätösten yhteensopivuuden globaalien tavoitteiden kanssa Parantavat työn tehokkuutta ohjaamalla huomion suorituskyvyn kannalta tärkeisiin toimintoihin Auttavat tarvittavan laitteiston valinnassa 58153003 Ohjelmistojen suorituskyky 11 Suorituskykytavoitteet Yksi lukuarvo ei vielä ole suorituskykytavoite Tavoite on joukko lukuja, jotka kuvaavat tietyn tilanteen mukaista syötettä, sen käsittelyä ja tuotettuja tuloksia Tavoitteeseen liittyy tyypillisesti jokin tietty skenaario työkuormineen ja intensiteetteineen Tavoite määrittelee tavoitearvon jo(i)llekin suorituskykymittar(e)ille tässä tilanteessa - esimerkiksi kesimääräiselle vastausajalle R Eri tilanteille voidaan määritellä eri tavoitearvot (ruuhka-ajat, muu aika) 58153003 Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktl 6
Suorituskykytavoitteet Tavoitearvot määritellään tyypillisesti käyttäjän tai muun ulkoisen vuorovaikutuksen näkökulmasta Käyttäjän kokema vastausaika (sekunteina), kun käyttäjä on vuorovaikutuksessa järjestelmän kanssa Reaaliaikajärjestelmän (esim tuotannon valvonta- tai ohjausjärjestelmän) vasteaika ulkoiseen tapahtumaan tai signaaliin Suoritusteho aikayksikköä kohden prosessoituina transaktioina tai tapahtumina 58153003 Ohjelmistojen suorituskyky 13 Suorituskykytavoitteet Tavoitteet voivat olla myös rajoitteita ohjelmistoresurssien käytölle tai laitteiston käyttöasteelle Esimerkiksi tietty skenaario ei saisi käyttää tiettyä määrää enempää CPU-aikaa tai levyoperaatioita CPU:n käyttöaste ei saa ylittää tiettyä rajaa tai muistia on käytettävissä vain tietty määrä Tällaiset rajoitteet kumpuavat usein aiemmasta kokemuksesta järjestelmien implementoinnista 58153003 Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktl 7
Suorituskykytavoitteet Vastausaikatavoitteet voivat koskea kokonaista käyttäjän tehtävää (end-to-end) eli koko skenaariota tai jotain sen yksittäistä transaktiota (esimerkiksi tiedon haku tietokannasta, tietojen päivitys, käyttäjän autentikointi jne.) Yksittäisiä transaktioita on yleensä helpompi mitata ja mallintaa Kuitenkin skenaarion tarkastelu kokonaisuutena voi paljastaa suorituskyvyn parannusmahdollisuuksia Yksittäisten askeleiden optimoinnin sijaan optimoidaankin koko suorituspolkua askeleita poistamalla ja yhdistelemällä 58153003 Ohjelmistojen suorituskyky 15 Suorituskykytavoitteet Tavoitteiden tyypistä riippumatta, niiden on oltava tarkkoja ja mitattavia Ei näin: Järjestelmän on oltava nopea Vaan: Kokonaisaika tyypillisen oikein muodostetun tilauksen syöttämiselle järjestelmään saa olla korkeintaan kaksi (2) minuuttia, ja järjestelmän pitää tuottaa vastaus käyttäjän jokaiseen erilliseen pyyntöön alle viidessä (5) sekunnissa tilauksen syöttämisen aikana. 58153003 Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktl 8
Tietolähteet Suorituskykytavoitteet Järjestelmäarkkitehti, markkinoinnin ja käyttäjien edustajat, suorituskykyasiantuntijat 58153003 Ohjelmistojen suorituskyky 17 Suoritusympäristö Suoritusympäristön vaikuttavat tekijät Laitteiston ja tietoverkkojen konfiguraatio, jossa ohjelmistoa suoritetaan laitteet ja niiden käsittelynopeus Käyttöjärjestelmä, väliohjelmistot (middleware, frameworks) ja muut laitteiston ja varsinaisen sovelluskoodin välissä toimivat tukiohjelmistot suuren kysynnän APIt ja niiden vaatima suoritusaika laitteistossa Tietokantojen käyttö taulujen koko, indeksointi Muut samassa ympäristössä suoritusajasta kilpailevat ohjelmistot niiden työkuormat ja resurssien kysyntä 58153003 Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktl 9
Suoritusympäristö Suoritusympäristö vaikuttaa kiistatta skenaarioiden suorituskykyyn Web-applikaation vastausaika riippuu pyyntöjä käsittelevien prosessoreiden lukumäärästä ja nopeudesta, sisällön tallennukseen käytettävien levyjen saantiajasta, samanaikaisten palvelupyyntöjen lukumäärästä ja mahdollisista muista samassa laitteistossa suoritusajasta kilpailevista töistä Suoritusympäristön ominaisuudet auttavat määrittelemään mallinnettavat ohjelmistoresurssit ja niiden laitteistoon kohdistaman laiteresurssien tarpeen 58153003 Ohjelmistojen suorituskyky 19 Tietolähteet Suoritusympäristö Järjestelmäarkkitehti, ohjelmistokehittäjät 58153003 Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktl 10
Ohjelmistoresurssivaatimukset Skenaarion askeleissa (esimerkiksi ohjelmasuoritusverkon solmuissa) määritellään niiden vaatimat ohjelmistoresurssit Resurssien tyyppi riippuu suoritusympäristöstä ja ohjelmiston piirteistä 58153003 Ohjelmistojen suorituskyky 21 Ohjelmistoresurssityyppi CPU:n käyttö SQL (tai muu TKJ) Tiedosto-I/O Viestit Tapahtumien kirjaaminen lokiin Väliohjelmistokutsut Prosessien väliset kutsut Kuvaus Määritellään työyksikköinä (work unit), arviona suoritettavien käskyjen määrästä tai CPU-aikana SQL-lauseiden määrä ja tyyppi tietokantaa käytettäessä Loogistentai fyysisten levyoperaatioiden lukumäärä Lähetettyjen viestien määrä tai koko lähiverkkoa tai muuta paikallista verkkoa käytettäessä, ulkoista verkkoa (WAN) tai internet-yhteyttä käytettäessä jne. Kirjaustapahtumien määrä (tiedostoihin tai tietokantoihin) Kutsujen tyyppi ja määrä (ORB, Enterprise Service Bus) Kutsujen lukumäärä, tyyppi ja kohde Etäkutsujen viive Etäpyynnön suoritukseen kuluva (arvioitu) aika kutsujan näkökulmasta (toisessa laitoksessa) 58153003 Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktl 11
Ohjelmistoresurssivaatimukset CPU:n käytön arviointi on yksi vaikeimmista alkuvaiheessa arvioitavista resursseista Millä perusteella voisi arvioida suoritettavien käskyjen määrää, kun ohjelmiston toiminnot on vasta hyvin karkealla tasolla hahmoteltu? 58153003 Ohjelmistojen suorituskyky 23 Ohjelmistoresurssivaatimukset Yksi ratkaisu on käyttää työyksikköjä (work unit) määrittelemään prosessointiaskeleen vaatimaa suhteellista määrää CPU-aikaa Asteikolla 1 5, missä 1 tarkoittaa vähän työtä ja 5 paljon Asteikko on lineaarinen, eli 5 yksikköä työtä tarkoittaa 5 kertaa enemmän kuin 1 yksikkö työtä Mittauksia tai aiempaa kokemusta voi käyttää apuna arvioitaessa työmääriä ja työyksikön kokoa suoritettavina käskyinä Esim: 1 yksikkö = 100 kinstr. 58153003 Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktl 12
Ohjelmistoresurssivaatimukset Aikaisessa vaiheessa malleissa tyypillisesti käytetään kahdesta viiteen ohjelmistoresurssia Myöhemmissä malleissa voidaan lisätä resursseja ja pyyntötyyppejä, kuten prosessien/säikeiden synkronointiin liittyviä resursseja Tietolähteet Ohjelmistokehittäjät yhdessä suorituskykyasiantuntijan kanssa 58153003 Ohjelmistojen suorituskyky 25 Laitteistoresurssivaatimukset Laitteistoresurssivaatimukset kytkevät ohjelmistoresurssit suoritusympäristön keskeisiin laitteisiin määrittelemällä, kuinka paljon palveluita ne vaativat eri laitteilta Tyypillisiä resursseja CPU -suoritusaika per työyksikkö tai konekäsky, ytimien/cpu:iden määrä ja nopeus I/O fyysisen I/O:n määrä sekä laitteiden lukumäärä ja suoritusaika Viestit viestien koko ja verkon kaistanleveys tai tyypillisen viestin välitykseen kuluva aika Prosessointikustannus (CPU,I/O, viestit) per SQL-kysely, viestin luonti ja välitys, lokikirjaukset, väliohjelmistokutsut, etäkutsut jne. 58153003 Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktl 13
Laitteistoresurssivaatimukset Vaatimukset määritellään prosessointikustannustaulukossa Device CPU Disk Delay GINet Quantity 6 3 1 1 Service Unit Sec. Phys. I/O Visits Msgs. WorkUnits 0.01 I/O 0.0005 1 Msgs 0.0005 1 1 Delay 1 Service time 1 0.003s 1s 0.05s 58153003 Ohjelmistojen suorituskyky 27 Laitteistoresurssivaatimukset Tietolähteet Suorituskykyasiantuntija, 58153003 Ohjelmistojen suorituskyky 28 Helsingin Yliopisto / Tktl 14
Tietojen hankinnasta Kehitysprojektin aikaisessa vaiheessa ei kannata huolestua, vaikka kaikista näistä tietoluokista ei saisikaan täsmällistä informaatiota Käytä aluksi arvauksia ja likimääräisiä arvoja sekä arviohaarukan ylä- ja alarajoja Malleja voi sitten täsmentää projektin edetessä uuden informaation valossa 58153003 Ohjelmistojen suorituskyky 29 Tietojen hankinnasta Jos likimääräisiin arvioihin perustuvien mallien ratkaisut ennustavat selviä ongelmia, niihin on heti puututtava joka tapauksessa Näin huomio myös kiinnittyy suorituskyvyn kannalta oleellisiin asioihin heti projektin alusta lähtien Suorituskykyvaatimukset on syytä dokumentoida tai ainakin koota yhteen sitä mukaa, kun niitä kerätään 58153003 Ohjelmistojen suorituskyky 30 Helsingin Yliopisto / Tktl 15
TIEDON HANKINNAN MENETELMÄT 58153003 Ohjelmistojen suorituskyky 31 Tiedon hankinta Suorituskykyläpikäynti (performance walkthrough) Resurssitarpeiden arvioinnin tekniikat 58153003 Ohjelmistojen suorituskyky 32 Helsingin Yliopisto / Tktl 16
SUORITUSKYKYLÄPIKÄYNTI PERFORMANCE WALKTHROUGH 58153003 Ohjelmistojen suorituskyky 33 Läpikäynti (walkthrough) Läpikäynti on epämuodollinen katselmointikokous, jossa osallistujat käyvät kehitystiimin jäsenen johdolla läpi valikoituja yksityiskohtia järjestelmän arkkitehtuurista/suunnittelusta tai implementaatiosta Käytetään yleensä vikojen etsimiseen Suorituskykyläpikäynti on samantapainen tilaisuus, mutta tarkoituksena on kerätä suorituskykymalleissa tarvittavia tietoja Yhdellä henkilöllä on harvoin kaikkea tarvittavaa tietoa, joten on hyvä koota yhteen laajempi joukko asiantuntijoita 58153003 Ohjelmistojen suorituskyky 34 Helsingin Yliopisto / Tktl 17
Roolit Tieto on jakaantunut eri sidosryhmille (stakeholder), joita edustavat esimerkiksi seuraavat roolit Käyttäjien edustaja tietää, miten järjestelmää käytetään, kuinka usein, missä olosuhteissa ja tilanteissa, mitkä ovat käytön suorituskykyvaatimukset jne. Järjestelmäarkkitehti tuntee arkkitehtuurin ja käyttötapaukset Suorituskykyasiantuntija tietää järjestelmän konfiguraatiosta (ja sen mahdollisesti olemassa olevista mittauksista) ja aiteresursseista; hän voi myös tehdä kokeita ja mittauksia datan saamiseksi Samalla osallistujalla voi olla monia rooleja 58153003 Ohjelmistojen suorituskyky 35 Läpikäynnin aiheet järjestyksessä Aihe 1. Läpikäynnin tarkoitus ja suorituskykyriskien tunnistaminen Roolit Kaikki 2. Järjestelmänyleiskuvaus (valinnainen) Järjestelmäarkkitehti 3. Järjestelmävaatimukset ja käyttötapaukset Järjestelmäarkkitehti 4. Suorituskykytekijät(perfomance drivers) Kaikki 5. Valittu suorituskykyskenaario(t) Järjestelmäarkkitehti 6. Työkuormien intensiteetti ja suorituskykytavoitteet Käyttäjät, Järjestelmäarkkitehti, Suorituskykyasiantuntija 7. Suunniteltu konfiguraatio Järjestelmäarkkitehti tai Ohjelmistokehittäjä ja Kapasiteettisuunnittelija 58153003 Ohjelmistojen suorituskyky 36 Helsingin Yliopisto / Tktl 18
Läpikäynnin aiheet järjestyksessä Aihe Roolit 8. Ohjelmistoresurssitemplaatti Suorituskykyasiantuntija 9. Arvio ohjelmistoresurssitarpeista Ohjelmistokehittäjä ja Suorituskykyasiantuntija 10. Laiteresurssitarpeet Suorituskykyasiantuntija 11. (jälkeenpäin) Tulosten läpikäynti ja tarvittaessa uudesta läpikäynnistä sopiminen Suorituskykyasiantuntija Järjestelmän koosta riippuen läpikäynti voi olla syytä jakaa useampaan erilliseen tilaisuuteen Esimerkiksi vaiheen 7 jälkeen on mahdollista keskittyä joksikin aikaa suorituskykymallin rakentamiseen, minkä jälkeen läpikäyntiä voidaan jatkaa uusin silmin 58153003 Ohjelmistojen suorituskyky 37 Milloin läpikäyntejä järjestetään? Alustavat suorituskykyläpikäynnin pitäisi olla osa järjestelmän toteutettavuustutkimusta (feasibility study) Ensimmäinen läpikäynti voidaan järjestää heti kun järjestelmän toiminnoista on karkea yleiskäsitys Halutaan havaita isot ongelmat ennen kuin suunnittelussa ja toteutuksessa on sitouduttu liian pitkälle huonoihin ratkaisuihin, joiden muuttaminen on yhä suuritöisempää (ja kalliimpaa) 58153003 Ohjelmistojen suorituskyky 38 Helsingin Yliopisto / Tktl 19
Jatkuvia läpikäyntejä Järjestelmän suorituskykyriskien vakavuudesta riippuen, suorituskykyläpikäyntejä on syytä jatkaa implementoinnin rinnalla, jotta kehitystiimillä säilyy kokonaiskuva järjestelmän suorituskyvystä Seurataan suorituskykyskenaarioiden evoluutiota ja niiden resurssitarpeiden muutoksia Yritetään välttää lokaalia osaoptimointia kokonaisuuden kustannuksella Käyttäjien edustajien osallistuminen on tärkeää suorituskykytekijöiden ja vaatimusten täsmentämiseksi sekä saavutetun suorituskyvyn validoimiseksi 58153003 Ohjelmistojen suorituskyky 39 Iterointi Mallien konstruointi vaatii yleensä jonkin verran iterointia Tiedon kerääminen läpikäynnin avulla auttaa laatimaan alustavan mallin Mallin konstruointi lisää ymmärrystä kehitettävästä järjestelmästä, mikä luo uusia tietotarpeita, jotka voivat johtaa uuteen (osittaiseen) läpikäyntiin jne. 58153003 Ohjelmistojen suorituskyky 40 Helsingin Yliopisto / Tktl 20
Läpikäynnit Kurssikirjassa on perusteellinen esimerkki erään järjestelmän suorituskykyläpikäynnistä Ei ehditä käsitellä kurssilla Kurssikirjassa on myös paljon käytännön ohjeita läpikäyntien suorittamiseksi Läpikäynten epämuodollisuus, konkreettisuus ja iteratiivinen luonne vaikuttavat hyvinkin yhteensopivalta ketterien projektien kanssa, mutta niiden (samoin kuin koko SPE:n) ennakkosuunnittelua painottava luonne sopinee paremmin riskipitoisiin ja muutenkin enemmän ennakointia vaativiin projekteihin 58153003 Ohjelmistojen suorituskyky 41 RESURSSITARPEIDEN ARVIOINTI 58153003 Ohjelmistojen suorituskyky 42 Helsingin Yliopisto / Tktl 21
Resurssitarpeet Ohjelmiston resurssitarpeiden arviointi on vaikein osuus suorituskykytietojen hankinnasssa Tässä onnistuminen tai epäonnistuminen vaikuttaa suuresti mallien tuottamien ennusteiden tarkkuuteen Vaikeus yleensä helpottuu ajan myötä ja kokemuksen karttuessa Seuraavat tekniikat auttavat estimoinnissa 58153003 Ohjelmistojen suorituskyky 43 Mittaukset Hanki mittaustietoja Mittaa samankaltaisten ohjelmistojen tai ohjelmiston aikaisemman version suorituskykyä Eri sidosryhmien on helpompi uskoa mallien tuottamia ennusteita, jos mitattua dataa on käytetty lähtötietoina Mittaa tärkeimpien komponenttien suorituskykyä heti kun ne on riittävän pitkälle implementoitu tai prototypoitu (sopii erityisesti inkrementaaliseen kehitysprosessiin) Yhdistele mittaustuloksia ja läpikäyntien tuottamaa tietoa malleihin 58153003 Ohjelmistojen suorituskyky 44 Helsingin Yliopisto / Tktl 22
Mittaukset Perehdy muiden järjestelmien vastaavien suorituskykymittauksiin Tutustu ja tutki säännöllisesti samantyyppisistä järjestelmistä tehtyihin suorituskykymittauksiin Saat käsityksen tyypillisistä mittareiden arvoista sekä trendistä poikkeavien mittaustulosten syistä ja seurauksista 58153003 Ohjelmistojen suorituskyky 45 Kysy neuvoa Turvaudu neuvonantajaan (mentor) Kokeneilta henkilöiltä saat parhaat suorituskykyarviot Pyydä apua ja neuvoja ensimmäisiin tekemiisi läpikäynteihin ja suorituskykytutkimuksiin 58153003 Ohjelmistojen suorituskyky 46 Helsingin Yliopisto / Tktl 23
Parhaimman ja huonoimman tapauksen strategia Tee parhaimman ja huonoimman tapauksen arviot Jos mittauksia ei voida tehdä, on pakko pysyä arvioissa Luottamuksen lisäämiseksi määritä eri parametreille arvoalue (haarukka), jonka sisällä todellinen arvo todennäköisimmin on Käytä haarukan ala- ja ylärajoja mallien ratkaisuissa Jos paras tapaus on ongelmaton, siirry pahimman tapauksen analysointiin Jos pahinkin tapaus näyttää ongelmattomalta, yksityiskohtaisempia malleja ei tarvitse laatia 58153003 Ohjelmistojen suorituskyky 47 Mitä resurssitarpeita arvioida? Keskity alkuvaiheen analyyseissä suorituskykyä dominoivien resurssien käyttöön Dominoiva resurssin käyttö vastaa suurimmasta osasta skenaarion suoritukseen kuluneesta ajasta, koska resurssin keskim. palveluaika on suhteellisen suuri tai koska sen kumulatiivinen käyttö aiheuttaa pitkiä jonotusviiveitä Nykyaikaisissa sovelluksissa viiveitä aiheuttavat todennäköisemmin etäobjektien/-palvelujen käyttö ja tietokannan tai levyn käyttö kuin CPU:n käyttö Alkuvaiheessa voi siis CPU:n käytön tarkan arvioinnin sivuuttaa ja käyttää vain karkeita suhteellisia työmääräarvioita (work units) 58153003 Ohjelmistojen suorituskyky 48 Helsingin Yliopisto / Tktl 24
Mitä resurssitarpeita arvioida? Kurssikirja antaa yksityiskohtaisempia neuvoja levy I/O:n ja viestinvälityksen resurssiarvioiden tekemiseen Kannattaa lukea, sivuutetaan luennoilla Huomaa, että ohjelmistoresurssitarpeet (esim tietokanta, viestinvälityspalvelu) pitää vielä projisoida laiteresurssitarpeiksi Analysoi tarjotun palvelun suorituspolun prosessointikustannukset eri laitteilla (CPU, levy, tietoliikenneverkko) Spesialistit auttavat arvioiden laatimisessa, ja tehdyt arviot perusteineen kannattaa kirjoittaa muistiin ja jakaa muillekin kirjaston tai esimerkiksi wikin kautta 58153003 Ohjelmistojen suorituskyky 49 Lopuksi Mallien tuottamat ennusteet ja mallinnuksessa käytetyt lähtötiedot on syytä verifioida ja validoida eli todentaa käytännössä Tähän käytetään systemaattisia suorituskykymittauksia, joita käsitellään seuraavalla luennolla 58153003 Ohjelmistojen suorituskyky 50 Helsingin Yliopisto / Tktl 25