Ohjelmiston suorituskyvyn mittaaminen



Samankaltaiset tiedostot
Järjestelmätason mallit III

Ohjelmasuoritusmalli ja sen käyttö

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Suorituskykydatan kerääminen

Työkalujen merkitys mittaamisessa

Kojemeteorologia (53695) Laskuharjoitus 1

Automatisoinnilla tehokkuutta mittaamiseen

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

Ohjelmistojen suorituskyky, Kurssin tavoitteet

TR 10 Liite PANK-HYVÄKSYNTÄ Lisävaatimukset PTM-mittaukselle. C) mspecta

Esimerkki ohjemasuoritusmallien käytöstä

Ohjelmistojen mallintaminen, mallintaminen ja UML

Move! laadun varmistus arvioinnissa. Marjo Rinne, TtT, erikoistutkija UKK instituutti, Tampere

Jatkuvatoiminen monitorointi vs. vuosittainen näytteenotto

Käyttöjärjestelmät: prosessit

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

VALTAKUNNALLISIA TARKASTELUJA

Yleistä. Esimerkki. Yhden palvelimen jono. palvelin. saapuvat asiakkaat. poistuvat asiakkaat. odotushuone, jonotuspaikat

Liikenneteorian tehtävä

Mittalaite ja puhelin on laitettu toimimaan automaattisesti yhdessä, sinun tulee seurata puhelimen antamia ohjeita mittauksen suorittamiseen.

Algoritmit 1. Luento 1 Ti Timo Männikkö

JATKUVATOIMISET MITTAUKSET VEDENLAADUN MALLINNUKSEN APUNA

Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi

PAS-RATKAISUN PALVELUKUVAUS

Mittaamisen maailmasta muutamia asioita. Heli Valkeinen, erikoistutkija, TtT TOIMIA-verkoston koordinaattori

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Tiedonsiirto- ja rajapintastandardit

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen,

T Testitapaukset TC-1

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

811312A Tietorakenteet ja algoritmit I Johdanto

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Sisältö. Työn lähtökohta ja tavoitteet Lyhyt kertaus prosessista Käytetyt menetelmät Työn kulku Tulokset Ongelmat ja jatkokehitys

Mittaaminen projektipäällikön ja prosessinkehittäjän työkaluna

Projekti A: iskunvaimennindynamometri

Harjoitus 7: NCSS - Tilastollinen analyysi

Tietojärjestelmän osat

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Järjestelmäarkkitehtuuri (TK081702)

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Oikeanlaisten virtapihtien valinta Aloita vastaamalla seuraaviin kysymyksiin löytääksesi oikeantyyppiset virtapihdit haluamaasi käyttökohteeseen.

KORJAUSVELAN LASKENTAMALLI KÄYTTÖÖN

Tietorakenteet ja algoritmit - syksy

Harjoitustyön testaus. Juha Taina

Identifiointiprosessi

Maha Eurosystem jarrulaskentaohjelman asennusohje versio

Software product lines

Tuusulan Moottorikerho ry Turku c/o Hannu Lehtinen Kuusamontie 44 Sivu 1(6) Tuusula MITTAUSSUUNNITELMA

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Mittausjärjestelmän kalibrointi ja mittausepävarmuus

Mittausepävarmuuden laskeminen

IR-lämpömittarityypit

Mittaustulosten tilastollinen käsittely

Puun kasvu ja runkomuodon muutokset

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

LÄÄKINTÄLAITTEEN VASTAANOTTOTARKASTUS

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

Firstbeat Hyvinvointianalyysi

Integrointi. Ohjelmistotekniikka kevät 2003

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Kriittiset vaiheet mittausten laadunvarmistuksessa

J. Virtamo Jonoteoria / Prioriteettijonot 1

Juuli - julkaisutietoportaali. Asiantuntijaseminaari, Helsinki Jyrki Ilva (jyrki.ilva@helsinki.fi)

Ohjelmiston toteutussuunnitelma

Tietokanta (database)

Algoritmit 1. Luento 3 Ti Timo Männikkö

Simulointi. Tapahtumapohjainen

Mittaustekniikka (3 op)

DB2 v9.7. Pullonkaulojen metsästys, metodeja ja. esimerkkejä elävästä elämästä

Mitattua tietoa jatkuvatoimisesta vedenlaadun tarkkailusta

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Miten kerätä tietoa toiminnan jatkuvaan kehittämiseen

TIETOA MITTAUKSESTA TYÖPERÄINEN ASTMA

Nimi: Muiden ryhmäläisten nimet:

Menetelmäohjeet. Muuttuvan magneettikentän tutkiminen

Maiju Mykkänen Susanna Sällinen

SEURANTAMITTARIT Mitä tietoja kerätään? Mitä tekijöitä seurataan? Mitkä ovat keskeiset ulkoiset tekijät,

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

JOHTOKYKYMITTAUKSEN AKKREDITOINTI

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

UML- mallinnus: Tilakaavio

Projektisuunnitelma ja johdanto AS Automaatio- ja systeemitekniikan projektityöt Paula Sirén

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Ohjelmoinnin perusteet Y Python

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

erasmartcard-kortinlukijaohjelmiston käyttöohje

Aineistoista. Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Laskuharjoitus 9, tehtävä 6

Onnistunut Vaatimuspohjainen Testaus

MIKKO-projekti ja mittausten automatisointi

Transkriptio:

Ohjelmiston suorituskyvyn mittaaminen Luento 10 58153003 Ohjelmistojen suorituskyky 1 Suorituskyvyn mittaaminen Mittaaminen on SPE:n keskeinen osa Mittauksilla Tuotetaan mallien tarvitsemaa lähtödataa Verifioidaan ja validoidaan malleja Nähdään saavutetaanko suorituskykytavoitteet Seurataan järjestelmän suorituskykyä sen elinkaaren ajan 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktls 1

Suorituskyvyn mittaaminen Ohjelmiston suorituskykymittareiden arvojen suora mittaaminen sen suorituksen aikana ei kuitenkaan ole aivan yksinkertaista Yleistyökaluilla saadaan kyllä selville Yksityiskohtaisia kooditason metriikoita (esim. funktioiden kutsumäärät ja niiden suoritusaikojen suhteelliset osuudet CPU:lla) Järjestelmätason mittauksia kuten CPU:n ja muistin käyttöaste Mutta esimerkiksi suorituskykymalleissa tunnistettujen operaatioiden mittaaminen vaatii yleensä ohjelmistokohtaisia ratkaisuja (esim. koodin instrumentointi) 58153003 Ohjelmistojen suorituskyky 3 Suorituskyvyn mittaaminen Työkalujen lisäksi tarvitaan vielä mittausstrategia, joka määrittelee Mitä mittausdataa tarvitaan Miten dataa kerätään eli miten, milloin ja missä olosuhteissa mittaukset tehdään Millaisia kokeita tarvitaan oikeiden mittausolosuhteiden luomiseksi 58153003 Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktls 2

MITÄ MITATAAN? 58153003 Ohjelmistojen suorituskyky 5 Mihin tarkoituksiin dataa tarvitaan? Mittaukset palvelevat seuraavia tarkoitusperiä 1. Järjestelmätason ymmärryksen lisääminen muiden järjestelmien tai ohjelmiston aiemman version mittaaminen tuottaa suorituskykytietoa samankaltaisista ohjelmistoista kuin kehitteillä juuri oleva ohjelmisto 2. Suorituskykymallien määrittely kokeilujen, prototyyppien tai samankaltaisten järjestelmien mittaaminen tuottaa tietoa työkuorma- ja resurssitarvearvioiden pohjaksi 58153003 Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktls 3

Mihin tarkoituksiin dataa tarvitaan? 3. Mallien päivitykset kehittyvän ohjelmiston mittaustuloksilla voidaan korvata aiemmat arviot mallien ennustetarkkuuden parantamiseksi 4. Mallien verifiointi ja validointi mittaustulosten perusteella nähdään, pitävätkö mallien ennusteet paikkansa ja vastaavatko mallit järjestelmän suoritusta riittävän todenmukaisesti 5. Ohjelmiston suorituskyvyn jatkuva evaluointi mittauksilla tarkkaillaan suorituskykytavoitteiden täyttymistä ja etsitään parannuskohteita ohjelmiston koko elinkaaren ajan 58153003 Ohjelmistojen suorituskyky 7 Mitä pitäisi mitata? Näihin käyttötarkoituksiin tarvitaan neljää eri tyyppiä mittausdataa 1. Työkuorman mittaukset 2. Datan ominaispiirteiden mittaukset 3. Ohjelmiston suorituksen ominaispiirteiden mittaukset 4. Järjestelmäresurssien (laitteiden) käytön mittaukset 58153003 Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktls 4

1. Työkuorman mittaukset Työkuormiin kuuluvien toimintojen pyyntöjen lukumäärät Pyyntöjen tahti Pyyntöjen muodostamat toistuvat hahmot tai kuviot (request patterns) 58153003 Ohjelmistojen suorituskyky 9 2. Ohjelmiston käsittelemän datan ominaispiirteet Datan määrä ja datayksiköiden koot Korvattaessa olemassa olevaa tietojärjestelmää uudella Eri datayksiköihin kohdistuvien pyyntöjen määrä Mitä yksiköitä pyydetään yhdessä 58153003 Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktls 5

3. Ohjelmiston suorituksen ominaispiirteet Suorituspolut mittaa jokaisen merkittävän suorituspolun suorituskertojen lukumäärä Lasketaan silmukoiden toistojen määrät sekä vaihtoehtoisten polkujen valinnan todennäköisyydet Ohjelmistoresurssien käyttö Mittaa jokaiseen eri resurssiin kohdistuvien pyyntöjen määrä sekä pyynnön suoritukseen kulunut keskimääräinen aika (elapsed time) 58153003 Ohjelmistojen suorituskyky 11 3. Ohjelmiston suorituksen ominaispiirteet Prosessointikustannukset Mittaa, kuinka paljon palvelua ohjelmistoresurssit vaativat laiteresursseilta Erityisesti jaetuilta resursseilta 58153003 Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktls 6

4. Järjestelmäresurssien käyttö Mitataan joka skenaariolle: Skenaarion vastausaika Koko skenaarion suoritukseen kulunut aika alusta loppuun (end-to-end elapsed time) sisältäen järjestelmäresurssien (=laitteiden) odotusajat ja palveluajat Skenaariosuoritusteho (scenario throughput) Kuinka usein skenaario suoritetaan aikayksikköä kohden 58153003 Ohjelmistojen suorituskyky 13 4. Järjestelmäresurssien käyttö Keskeisten resurssien käyttö Kaikkien järjestelmän resurssien palveluaika ja odotusaika jokaisen skenaarion eri työkuormille Resurssien käyttöaste Kuinka suuren osuuden tarkkailujakson ajasta resurssi tekee työtä Resurssin suoritusteho Tahti, jolla resurssi saa palvelupyyntöjä valmiiksi Resurssin jonon pituus Palvelua jonottavien töiden lukumäärän keskiarvo 58153003 Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktls 7

Mittaukset ja käyttö SPE:ssä Mittaus Järj. ymmärrys Mallien määrittely Käyttö SPE:ssä Mallien päivitys Mallien V & V Suor.k. evaluointi Työkuormat kyllä Jonk. verran kyllä kyllä Jonk. verran Data kyllä Jonk. verran kyllä kyllä Jonk. verran Suorituspolut Ohjelm. resurssit Pros. kustannus Järj. resurssit (sama kaik.) kyllä kyllä kyllä Jonk. verran kyllä kyllä kyllä kyllä Jonk. verran kyllä kyllä kyllä kyllä kyllä kyllä kyllä 58153003 Ohjelmistojen suorituskyky 15 Mittaukset ja käyttö SPE:ssä Esimerkiksi Ohjelmistoresurssien käytön mittaustulokset Tuottavat SPE-malleissa tarvittavia lähtötietoja Kertovat, vastaako implementaatiosta mitatut resurssitarpeet ohjelmasuoritusmallissa määriteltyjä tarpeita Näin voidaan validoida mallin oikeellisuus suhteessa todelliseen järjestelmään sekä verifioida ohjelmasuoritusmallin ratkaisun tuottama syötedata järjestelmäsuoritusmalleille 58153003 Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktls 8

MITTAUSTEN SUUNNITTELU 58153003 Ohjelmistojen suorituskyky 17 Mittausten suunnittelu Suorituskykymittauksilla on kaksi perusvaatimusta Mittausten pitää olla edustavia (representative) ja toistettavia (reproducible) Edustavien mittaustulosten pitää riittävän tarkasti heijastaa suorituskykyyn vaikuttavia tekijöitä Työkuormaa, ohjelmistoa ja suoritusympäristöä On löydettävä tasapainokohta mittauksen suorittamiseen vaaditun työmäärän ja mittaustulosten yksityiskohtaisuuden välille 58153003 Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktls 9

Mittausten suunnittelu Mittausten toistettavuus tuo luottamusta mittaustuloksiin Toistettavuus edellyttää, että työkuormaa, ohjelmistoa ja suoritusympäristöä voidaan kontrolloida, jolloin mittaus voidaan toistaa ja saada (lähes) samat tulokset joka kerran 58153003 Ohjelmistojen suorituskyky 19 Työkuorma Työkuormien määrittely on suorituskykymittausten suunnittelun hankalin osuus Kuorman parametrien on vastattava ohjelmiston todellista käyttöä ja olosuhteita Yhtäaikaisten käyttäjien lukumäärä vaikuttaa suuresti mittausten suoritukseen Monen käyttäjän järjestelmän mittauksiin ei ole yleensä mahdollista rekrytoida suurta joukkoa oikeita käyttäjä Käytetään työkuorma-ajuria (load driver) luomaan virtuaalisia käyttäjiä ja töitä Ajuri syöttää ennalta mietittyjä käyttöprofiileja noudattaen käyttäjien transaktioita järjestelmään ja mittaa vastausaikoja Järjestelmä ei erota virtuaalikäyttäjien transaktiopyyntöjä oikeista transaktioista 58153003 Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktls 10

Mitattava ohjelmisto Mittauksen kohde voi olla joukko ohjelmia, jokin niiden osajoukko tai synteettinen ohjelma Synteettinen ohjelma matkii oikeiden ohjelmien käyttäytymistä ja niiden resurssien käyttöä tekemättä kuitenkaan varsinaista prosessointia Esimerkiksi ohjelma, joka pyytää tietokannasta joukon tietueita, tekee joihinkin satunnaisia muutoksia, ja pyytä sitten päivittämään muutokset kantaan 58153003 Ohjelmistojen suorituskyky 21 Suoritusympäristö Mittausten suoritusympäristön täytyy oleellisilta piirteiltään vastata ohjelmiston todellista suoritusympäristöä Käyttöjärjestelmä, järjestelmäresurssit eli laitteisto ja tietoliikenneverkot, sekä resurssikilpailu (muut työkuormat) Mittaukset täytyy kuitenkin usein suorittaa eristyksissä muista ohjelmistoista toistettavuuden varmistamiseksi ja mitattavan ohjelmiston resurssitarpeiden tunnistamiseksi oikein Mutta käyttäytymistä resurssikilpailun ja raskaan kuormituksen oloissakin täytyy mitata 58153003 Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktls 11

Vertailutestit (benchmark) Vertailutestit ovat standardoituja testejä määriteltyine syötteineen Testien suoritukselle, mittausmenetelmille ja tulosten raportoinnille on tarkat määräykset Voivat olla yritysten sisäisiä tai teollisuudenalan yhteisesti hyväksymiä ja käyttämiä Käytetään puolueettoman vertailutiedon saamiseksi esimerkiksi järjestelmien suorituskyvystä erilaisilla työkuormilla 58153003 Ohjelmistojen suorituskyky 23 Mittausten suunnittelun haasteet Mittausten onnistumiseen vaikuttavat eniten (käytännön kokemusten mukaan) Mitattavien testitapausten huolellinen suunnittelu Työkuorma, mittauksen kohde, mittausympäristö, priorisoitu testaussuunnitelma työkaluineen ym. Tarpeellisen tulosdatan tunnistaminen Liika mittausdata piilottaa metsän puilta ja voi vääristää jopa itse mittausta; Liian vähäinen kerätty data taas vähentää mittausten tuottamaa hyötyä kustannuksiin nähden Mittaustulosten kokoaminen ja koordinointi On tarkasti katsottava, että eri osista ohjelmistoa ja eri menetelmillä ja työkaluilla saatu mittausdata on yhteismitallista 58153003 Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktls 12

Mittausten suunnittelun haasteet Mittauksissa on syytä tiedostaa ja varautua monenlaisiin ongelmiin Ohjelmisto-työkuorma-laitteisto -kombinaatiot voivat olla erittäin kompleksisia, suorituskykyyn vaikuttaa moni tekijä ja mittausdataa voi olla hyvin paljon Suorituskykytutkimukset ovat työvaltaisia ja aikataulultaan rajoitettuja; työkalujen käytössä voi olla ongelmia Järjestelmäparametrien ja ympäristötekijöiden kontrollointi voi olla vaikeaa; softabugit ja laitehäiriöt estävät mittausten tekemisen Tarve eristää mittauksen kohde voi rajoittaa tehtävien mittausten ja kokeiden määrää 58153003 Ohjelmistojen suorituskyky 25 TYÖKALUT JA MENETELMÄT 58153003 Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktls 13

Peruskäsitteet SPE:n vaatimat mittaukset ovat pääasiassa dynaamisia Ne vaativat ohjelmiston suorittamista laitteistossa sen aikakäyttämisen toteamiseksi Joitakin staattisia mittauksia voidaan tarvita esimerkiksi tietorakenteiden tai viestien koon määrittämiseksi Mittauksia ei yleensä voida tehdä suoraan tarkkailemalla mitattavan ilmiön kestoa kello kädessä, vaan mittaus on epäsuoraa Kirjataan ylös ilmiön alku- ja loppukohtia edustavien tapahtumien aikaleimoja ja lasketaan ilmiön kesto 58153003 Ohjelmistojen suorituskyky 27 Peruskäsitteet Voimme mitata laitteiston tai ohjelmiston tiloihin (state) liittyvää informaatiota tai voimme tarkkailla järjestelmän tapahtumien (event) tapahtumisaikoja Tilalla tarkoitetaan ajanjaksoa, jolloin järjestelmä tekee jotain tiettyä asiaa Siirtymät tilasta toiseen ovat tapahtumia Tiloja seurataan (monitoring) ja tapahtumista pidetään kirjaa (recording) 58153003 Ohjelmistojen suorituskyky 28 Helsingin Yliopisto / Tktls 14

Tilojen seuranta Suorituskykymonitori tarkkailee järjestelmän toimintaa ja kirjaa ylös tietoja mielenkiinnon kohteena olevista tiloista Jotta monitorointi ei häiritsisi järjestelmän toimintaa ja vaikuttaisi vääristävästi mittaustuloksiin, monitori eivät yleensä toimi jatkuvasti vaan periodisesti Monitori aktivoituu säännöllisin väliajoin ja ottaa näytteen (sample) järjestelmän tilasta 58153003 Ohjelmistojen suorituskyky 29 Tilojen seuranta Esimerkki Monitori herää 10 millisekunnin välein ja kirjaa ylös parhaillaan suorituksessa olevan prosessin tunnisteen ja suoritettavan käskyn virtuaaliosoitteen Osoitteen perusteella voidaan myöhemmin paikallistaa suoritettavana ollut ohjelman kohta Näin saadaan kerättyä tietoa niistä ohjelman osista, joita useimmin suoritetaan (hot spots) Monitorit voivat olla ohjelma- tai laitteistoperustaisia tai näitten yhdistelmiä Laitteistoperustaiset monitorit ovat erillisiä komponentteja, joiden kautta voidaan seurata varsinaisen järjestelmän laitteiston toimintaa häiritsemättä sitä 58153003 Ohjelmistojen suorituskyky 30 Helsingin Yliopisto / Tktls 15

Tapahtumien kirjaaminen On päätettävä ensiksi, mitkä tapahtumat ovat mittausten kannalta kiinnostavia Aina tapahtuman sattuessa on kirjattava ylös tapahtuman lisäksi siihen liittyvä suorituskykyinformaatio Esimerkiksi jos olemme kiinnostuneita tietokantapyyntöjen lukumääristä ja kestoista, kirjataan jokainen erillinen pyyntö omana tapahtumanaan, johon liittyy pyynnön tapahtumaaika, sen suorituksen kesto ja haetun datan määrä Eli tapahtuma voi olla ajallisesti suhteellisen pitkäkestoinen, kuten yllä olevassa esimerkissä 58153003 Ohjelmistojen suorituskyky 31 Tapahtumien kirjaaminen Tapahtumia voidaan tarkkailla ja kirjata eri järjestelmätasoilla, kuten tilojakin seurataan Ohjelmatason tapahtumat (program event recording) ovat tietyn sovelluksen tai toiminnon kannalta mielenkiintoisia, kuten tietyn skenaarion suoritukseen liittyvä erityinen tietokantapyyntö ja sen kesto Järjestelmätason tapahtumat (system event recording) taas kirjataan sovelluksista riippumatta, esimerkiksi tietokantapalvelin voi pitää kirjaa erityyppisten sisäisten operaatioiden määristä ja kestoista tietämättä pyyntöjä esittävistä sovelluksista mitään 58153003 Ohjelmistojen suorituskyky 32 Helsingin Yliopisto / Tktls 16

Sisäiset ja ulkoiset tapahtumat Ohjelmiston sisäiset monitorit ja tapahtuman kirjaajat on kytketty suoraan ohjelmiston toimintalogiikkaan suorituskykyskenaarioiden kannalta tarpeellisen tiedon saamiseksi Vaatii yleensä koodin instrumentointia Ulkoiset monitorit ja kirjaajat taas tarkkailevat ohjelman suoritusta ulkopuolelta 58153003 Ohjelmistojen suorituskyky 33 Yksityiskohtaisuuden taso Ohjelmiston suoritusta voidaan tarkastella eri tasoilla Prosessien käynnistyminen ja päättyminen Yksittäisten ohjelmien/skriptien lataus ja suoritus Luokkien lataus, metodien tai yksittäisten koodirivien suorituskerrat Kerätyn mittausdatan määrää pitää myös hallita 1. Kirjataan ylös kaikki saatavissa olevat detaljit 2. Laaditaan detaljidatasta yhteenvetoja mittauksen aikana tallettaen vain yhteenvedot periodisesti 3. Kerätään ja lasketaan dataa tapahtumien välissä ja kirjataan siihen asti kerätty data vasta tapahtuman sattuessa Kerätty data pitää yleensä prosessoida erityisillä työkaluilla käyttökelpoisten raporttien tuottamiseksi 58153003 Ohjelmistojen suorituskyky 34 Helsingin Yliopisto / Tktls 17

Mittauksiin vaikuttavat tekijät Heisenbergin epätarkkuusperiaate pätee myös suorituskykymittauksiin Itse mittausprosessi voi häiritä mittauksen kohteen toimintaa ja siten vaikuttaa mittaustuloksiin Koskee enemmän järjestelmä- kuin ohjelmatason mittauksia, koska järjestelmän kuormitus vaikuttaa olo- eli vastausaikoihin (ohjelman toimintojen palveluajat taas ovat yleensä riippumattomia kuormituksesta) Vaikutus on erityisen selvä, jos järjestelmässä on jo pahoja pullonkauloja Käynnistä mittauksia valikoiden ja kerää dataa harkiten 58153003 Ohjelmistojen suorituskyky 35 Mittauksiin vaikuttavat tekijät Sieppaussuhde (capture ratio) tarkoittaa aikaa, jonka mittaus todellisuudessa kattaa suoraan tai epäsuorasti (päättelyn kautta) Esimerkiksi näytteenottoon perustuva periodinen monitori toimii niin, että se asettaa säännöllisin väliajoin toistuvan keskeytyksen, jonka tapahtuessa monitori aktivoituu ja kirjaa ylös suorituksessa olevan prosessin tunnisteen ja käskyosoittimen arvon Monitoria korkeamman prioriteetin operaatio saattaa kuitenkin olla suorituksessa keskeytyksen tullessa, mikä viivästää monitorin aktivointia Joissain tapauksissa monitori saattaa havaita viivästyksen ja todeta sen keston 58153003 Ohjelmistojen suorituskyky 36 Helsingin Yliopisto / Tktls 18

Mittauksiin vaikuttavat tekijät Prosessointikustannusten (system overhead) kohdentaminen oikeille käyttäjille voi olla joskus vaikeaa Aina ei ole selvää, minkä sovellusohjelman toiminto tai palvelupyyntö aloitti tapahtumaketjun, joka johtaa käteismuistin sisällön vaihtumiseen ja suureen määrään keskusmuistihakuja 58153003 Ohjelmistojen suorituskyky 37 Mittauksiin vaikuttavat tekijät Mittausten oikea ajoitus on tärkeää luotettavien tulosten saamiseksi Tapahtumien ja tilojen mitatun keston täytyy vastata niiden ajoitukseen käytetyn käyttöjärjestelmäkellon erottelukykyä (joka on eri kuin laitetason tahdistukseen käytetyn kellopulssin resoluutio) Käyttöjärjestelmä saattaa tarjota vain esimerkiksi yhden millisekunnin erottelukyvyn (time.now()), jolloin sitä lyhyempiä kestoja ei voi mitata 58153003 Ohjelmistojen suorituskyky 38 Helsingin Yliopisto / Tktls 19

Mittauksiin vaikuttavat tekijät Monitoreiden näytteenottotaajuuden on oltava riittävän korkea mielenkiintoisten tapahtumien havaitsemiseksi mutta ei liian suuri Korkea näytteenottotaajuus tuottaa tarpeettoman paljon dataa analysoitavaksi Näytteenotto voi myös häiritä mittauskohteen toimintaa Esimerkiksi, jos haluat mitata käyttöjärjestelmä-kellon resoluutiota lyhyempikestoisia tapahtumia, toista koesarjaa pitkään laskien koko sarjan keston ja toistojen määrän ja ottamalla sitten keskiarvon Suorita funktio 1000 kertaa, ota kokonaiskesto ylös ja jaa 1000:lla 58153003 Ohjelmistojen suorituskyky 39 Mittauksiin vaikuttavat tekijät Tulosten toistettavuuden varmistamiseksi on yleensä eliminoitava muut työt suoritusympäristöstä mittausten ajaksi Tai muuten tarkasti kontrolloitava suoritusolosuhteita ja toistettava mittauksia erilaisissa kuormitustilanteissa 58153003 Ohjelmistojen suorituskyky 40 Helsingin Yliopisto / Tktls 20

Mittauksiin vaikuttavat tekijät Mittausjaksojen pituuksien ja ajankohtien pitäisi olla edustavia saatujen tulosten kannalta Jos on tarkoitus suorittaa ruuhka-ajan mittauksia (tyypillinen kesto yhden tunnin), mittausjakso ei saa olla liian pitkä (esimerkiksi koko työpäivän mittainen) Keskiarvojen laskeminen liudentaa suorituskykymittareiden tuloksia liikaa T:n ollessa liian suuri 58153003 Ohjelmistojen suorituskyky 41 Mittauksiin vaikuttavat tekijät Keskimääräinen aikakäyttäytyminen Operaatioiden tyypillisen keston määrittämiseksi mittauksia on tehtävä riittävän pitkällä ajanjaksolla Jos jonkin tapahtuman tai tilan kesto mitataan vain muutaman kerran ja keskimääräinen kesto lasketaan näiden lukujen perusteella, sattuma voi vääristää tuloksen Esimerkiksi tietokantahaun tulokseen vaikuttaa merkittävästi se, onko haluttu tulos jo valmiina käteismuistissa, vai suorittaako tietokantamoottori kyselyn levyhakuineneen kaikkineen 58153003 Ohjelmistojen suorituskyky 42 Helsingin Yliopisto / Tktls 21

Mittauksiin vaikuttavat tekijät Työkuormien generoinnissa on syytä käyttää kuormitusajuria (load driver) ja virtuaalikäyttäjiä, jos järjestelmä on interaktiivinen Ajurin (tai kuormitusskriptien) käyttö mahdollistaa simuloitujen työkuormien tilanteenmukaisen varioinnin ja ennen kaikkia mittausten toistettavuuden 58153003 Ohjelmistojen suorituskyky 43 Helsingin Yliopisto / Tktls 22