Ohjelmistojen suorituskyky, Kurssin tavoitteet

Samankaltaiset tiedostot
Järjestelmätason mallit III

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Ohjelmasuoritusmalli ja sen käyttö

Suorituskykydatan kerääminen

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

Poweria analytiikkaan

REALTIME CUSTOMER INSIGHT Wellnator Oy

811312A Tietorakenteet ja algoritmit I Johdanto

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

QPR Software Yritysesittely

Miten johdan huolto- ja korjaamotoimintaa laadukkaasti? Autokauppa Finlandiatalo

Teollinen Internet. Tatu Lund

Lean-implementaation tiekartta VSSHP:ssä Heikki Laurila Lean projektijohtaja VSSHP, Kehittämispalvelut

Totuus IdM-projekteista

Ohjelmiston suorituskyvyn mittaaminen

Rajattomat tietoverkot ja niiden rooli pilvipalveluissa. Jukka Nurmi Teknologiajohtaja Cisco Finland

Agenda. Johdanto Säätäjiä. Mittaaminen. P-, I-,D-, PI-, PD-, ja PID-säätäjä Säätäjän valinta ja virittäminen

Testaaminen ohjelmiston kehitysprosessin aikana

Suorituskykypatterneja

Uudistuva kansainvälinen ohjelmistoyhtiö. Yritysesittely

AITOA ENERGIATEHOKKUUTTA RAKENTAMISEEN

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

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

Westin Lisätty luku 6, käyttötapauskuvaukset.

Esimerkki ohjemasuoritusmallien käytöstä

Vain testaamalla voit voittaa! Markku Selin Kehitysjohtaja

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

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

SYSTEEMIJOHTAMINEN! Sami Lilja! itsmf Finland 2014! Oct ! Kalastajatorppa, Helsinki! Reaktor 2014

Tietohallinnon arvo liiketoiminnalle

Yleiskuvaus - LVpalvelukerroksen. laadulliset vaatimukset Jari Kokko & Vesa Mettovaara LUVAT JA VALVONTA -KÄRKIHANKE

Ammattimaisen käyttäjän vaaratilanneilmoitus Minna Kymäläinen/ Valvira

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Logistiikan optimointi- ja ohjausjärjestelmä TCS-Opti

Tuotteistaminen, kannattavuus ja tuottavuus museoissa. Kimmo Levä, FM, MBA Museonjohtaja Mobilia

Vasteaika. Vasteaikaa koskeva ohje ei ole juuri muuttunut Robert B. Millerin vuonna 1968 pitämästä esityksestä:

Prosessien hallinta. Lean-näkökulma laboratorion prosessien kehittämiseen ja hallintaan

Tiera Sähköinen arkistointi. Palvelun käytettävyys ja sanktiot. Sopimus Tiera Sähköinen arkistointi-palvelusta

PAIKKATIETOJEN KÄYTTÖ HSY:N VESIHUOLLON OPERATIIVISESSA JA STRATEGISESSA TOIMINNASSA

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Lean johtaminen ja työkalut. Työpaja

Laatukäsikirja - mikä se on ja miten sellainen laaditaan?

Järjestöjen kehittäminen ja laatu. Hanna Hauta-aho, Sociala Setlementti Louhela & Keusote

Algoritmit 1. Luento 1 Ti Timo Männikkö

Matematiikan tukikurssi

Ulkoistustoimittajan valvontapalvelu. Ville Mannonen / DataCenter Finland

KRYSP-rajapintojen suorituskykytestaukset. Jari Torvinen

VAIKUTTAVUUSANALYYSI

HARJOITUS- PAKETTI E

Projektin aikataulutus

TAPAHTUMIEN SEURANTA KEHITYSEHDOTUSTEN KIRJAUS POIKKEAMIEN HALLINTA

HP OpenView ratkaisut toiminnan jatkuvuuden turvaajina

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

Johdantoluento. Ohjelmien ylläpito

KURKISTUS ÄLYKKÄÄN MARKKINOINNIN MAAILMAAN. Kuinka tiedolla johdettu markkinointi nähdään Suomessa?

HELIA 1 (15) Outi Virkki Tiedonhallinta

Roadshow Peurunka

Liiketoimintatarpeista toimivaksi järjestelmäksi Jari Kekkonen Chief Consulting Officer Ixonos Oyj

Menetelmäraportti - Konfiguraationhallinta

ISO 9001:2015 JÄRJESTELMÄ- JA PROSESSIAUDITOIN- NIN KYSYMYKSIÄ

Palvelutuotannon tuottavuuden mittaaminen ja kehittäminen. Antti Lönnqvist Tampereen teknillinen yliopisto

Sähkömarkkinoiden murros - Kysynnän jousto osana älykästä sähköverkkoa

Suorituskyvyn pullonkaulojen löytäminen ja optimointi v 1.0. Ilkka Myllylä

Suomen ensimmäinen laaduntunnustus päihdekuntoutuslaitokselle. Marjut Lampinen toiminnanjohtaja Ventuskartano ry

Yritys nimeltä Redicom

IT-palvelupisteen palvelutason mittaaminen

Benchmarking raportoinnista tukea terveydenhuollon johtamiseen

HANKINTATOIMEN NYKYTILA JA TULEVAISUUDEN HAASTEET

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

YHTIÖKOKOUS, QPR Software

ASIAKASTYYTYVÄISYYSKYSELYN 2012 TULOKSET

Ympäristöystävällinen IT

Yksilöllistä tukea työntekijän terveyteen ja hyvinvointiin juuri silloin, kun sitä tarvitaan! building a healthy future

Hnenogäsdpdinoinnin päätehtävät

Uudistuva kansainvälinen ohjelmistoyhtiö. Yhtiökokous Jari Jaakkola, toimitusjohtaja

Pilvipalvelut Palvelutasosopimus

ECOMATION. environment in mind ECOMATION - TUOTTEITA JA RATKAISUJA NYKYAIKAISILLE KULLANKAIVAJILLE. Recycling Technologies

Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely)

YHTIÖKOKOUS, Jari Jaakkola, Toimitusjohtaja QPR1V: (Nasdaq Helsinki)

ICT Palvelut Juhani Suhonen

Hallittu siirtymä Business Planningista FPM:ään, sekä uuden ohjelmiston mahdollisuudet.

Optimoinnin mahdollisuudet tilaus- ja toimitusketjujen hallinnassa. Helsinki, Olli Bräysy

PALVELUOHJAUS. Palveluohjaustyöryhmä

Teollinen Internet, IoT valimoissa ja konepajoissa

Kuinka mittaan mediatiedotteen vaikuttavuuden? Sanelma Helkearo M-Brain

SQL SERVER 2012 PARALLEL DATA WAREHOUSE APPLIANCE

Bimodaalisuus IT Palvelunhallinnassa Case UPM

Tosi elävä virtuaalimalli Mika Karaila Tutkimuspäällikkö Valmet Automation

Kohti uusiutuvaa ja hajautettua energiantuotantoa

Sijainnin merkitys Itellassa GIS. Jakelun kehittämisen ajankohtaispäivä

Vaikuttaako kokonaiskysyntä tuottavuuteen?

Tulokset. Pikatilastot Kysely 'Finn Heat Oy asiakastyytyväisyyskysely 2013' Kysely

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Robottisiivouksen kehittämisen moniasiakasprojekti case Porvoo. Marianne Seppänen Palvelupäällikkö, Liikelaitos Porvoon Tilapalvelut

Ketteryys kokeilemalla. Leo Malila Kehittämispäällikkö, Kela

PAS-RATKAISUN PALVELUKUVAUS

Diplomityöseminaari

IBM Cloud Adoption and Deployment Services

ASIAKAS PROSESSIN KESKIÖSSÄ

Modul-Fleet KALUSTONHALLINNAN OPTIMOINTIIN. I can help! Ordered 3 items. Can t serve last client. Running late!

Transkriptio:

Ohjelmistojen suorituskyky, Kurssin tavoitteet Luento 1 58153003 Ohjelmistojen suorituskyky 1 SUORITUSKYKY 58153003 Ohjelmistojen suorituskyky 2 Helsingin Yliopisto / Tktl 1

Suorituskyky 58153003 Ohjelmistojen suorituskyky 3 Määritelmä Tällä kurssilla ohjelmistojärjestelmän suorituskyvyllä tarkoitetaan ohjelmiston käyttäytymisen ajallista täsmällisyyttä suhteessa asetettuihin tavoitteisiin Performance is the degree to which a software system or component meets its objectives for timeliness (Smith & Williams) 58153003 Ohjelmistojen suorituskyky 4 Helsingin Yliopisto / Tktl 2

Suorituskyvyn mittarit Kaksi keskeistä mittaria R X Vastausaika (engl. response time) aika, jossa ohjelmistojärjestelmän on tuotettava vastaus käyttäjän pyyntöön 1 (yksikkö esim. sekuntia) Suoritusteho (engl. throughput) ohjelmistojärjestelmän täyttämien pyyntöjen määrä tietyllä ajanjaksolla (yksikkö esim. pyyntöjä / tunti) 1 esimerkiksi: vakuutushakemuksen syöttö, uutissivuston aloitussivun näyttäminen, SQL-kyselyn suoritus tietokantapalvelimessa, pyörintänopeusanturin lähettämän reaaliaikaisen mittaustapahtuman vastaanotto auton ajonvakautusjärjestelmässä jne. 58153003 Ohjelmistojen suorituskyky 5 Suorituskyvyn mittarit Vastausaika R ~ ohjelmiston toiminnan ajallinen täsmällisyys käyttäjän näkökulmasta Huomio kohdistuu yksittäisiin pyyntöihin (esim. ohjelmiston eri käyttötapauksiin) Suoritusteho X ~ ohjelmiston toiminnan ajallinen täsmällisyys järjestelmänäkökulmasta Huomio kohdistuu joukkoon monenlaisia pyyntöjä ja yhtäaikaisia käyttäjiä 58153003 Ohjelmistojen suorituskyky 6 Helsingin Yliopisto / Tktl 3

Suorituskyvyn mittarit Suorituskyvyn parantamisessa voidaan keskittyä vastausaikojen lyhentämiseen tai suoritustehon nostamiseen, mutta yleensä toisen suorituskyvyn elementin parantaminen vaikuttaa positiivisesti myös toiseen Mittareiden saamat arvot ovatkin kääntäen riippuvaisia toisistaan (useimmissa tilanteissa) 58153003 Ohjelmistojen suorituskyky 7 Suorituskyvyn mittarit Yksittäisten palvelupyyntöjen vastausaikojen lyhentäminen esimerkiksi niitten suorituspolkuja optimoimalla ja oikomalla (arkkitehtuurin tai koodin optimointi) kasvattaa suoritustehoa muitten olosuhteiden (esim. laitteiston) pysyessä samoina Ohjelmisto voi täyttää aiempaa enemmän palvelupyyntöjä samassa ajassa Tai sama suoritusteho voidaan saavuttaa hitaammalla laitteistolla 58153003 Ohjelmistojen suorituskyky 8 Helsingin Yliopisto / Tktl 4

Suorituskyvyn mittarit Suoritustehon kasvattaminen järjestelmätasolla esimerkiksi laitteiston toimintaa nopeuttamalla (tehokkaampi CPU, enemmän keskusmuistia) lyhentää yleensä vastausaikoja Ohjelmisto vastaa aiempaa nopeammin käyttäjien palvelupyyntöihin Toisaalta rinnakkaisten palvelinyksiköiden lisääminen ei välttämättä nopeuta yksittäisten pyyntöjen käsittelyä, mutta se kasvattaa koko järjestelmän palvelukapasiteettia ja siis käsiteltyjen pyyntöjen kokonaismäärää aikayksikköä kohden 58153003 Ohjelmistojen suorituskyky 9 Rajaus Muut ohjelmistojen ajonaikaista käyttäytymistä määrittävät piirteet rajataan tarkastelun ulkopuolelle Esimerkiksi RAM-muistin tai tietokantakursoreiden käyttö tai sähkön kulutus Suorituskykyyn kuuluvat siis ne ohjelmiston toiminnan piirteet, joita voidaan (periaatteessa) mitata ajanottokello kädessä ohjelmiston toimintaa seuraten 58153003 Ohjelmistojen suorituskyky 10 Helsingin Yliopisto / Tktl 5

Suorituskyvyn ulottuvuudet Responsiviisuus (responsiveness) Ohjelmiston kyky ylipäätään täyttää sille asetetut palvelupyyntöjen vastausaikoja sekä suoritustehoa koskevat vaatimukset Esim. loppukäyttäjän tietyn käyttötapauksen suorittamiseen kuluva aika tai järjestelmän tietyn ajanjakson aikana suorittamien transaktioiden määrä Loppukäyttäjien ohjelmistoissa on muistettava paitsi objektiiviset myös subjektiiviset tavoitteet toimintojen järjestäminen niin, että niiden käyttö ei tunnu käyttäjästä liian hitaalta -> tärkeimmät asiat ja tiedot heti näkyviin, muut ladataan taustalla 58153003 Ohjelmistojen suorituskyky 11 Suorituskyvyn ulottuvuudet Skaalautuvuus (scalability) Ohjelmiston kyky täyttää vastausaikoja ja suoritustehoa koskevat vaatimukset pyyntöjen määrän eli sen toimintojen kysynnän (demand) kasvaessa Seuraava käyrä kuvaa ohjelmistoille tyypillistä vastausajan (y-akseli) suhdetta järjestelmän kuormitukseen (demand, load), joka on ilmaistu palvelupyyntöinä / aika (x-akseli) 58153003 Ohjelmistojen suorituskyky 12 Helsingin Yliopisto / Tktl 6

Skaalautuvuus 25 R(X) 20 R = vastausaika 15 10 R(X) 5 kynnys 0 Kuormitus (palvelupyyntöjä / sek) maksimi polvi 58153003 Ohjelmistojen suorituskyky 13 Skaalautuvuus Järjestelmän kuormituksen (pyyntöä / sek.) kasvaessa vastausajat pysyvät hyvällä tasolla, kunnes järjestelmässä tietyllä ajan hetkellä käsiteltävinä olevien palvelupyyntöjen määrä ylittää tietyn kynnystason Tämän kynnyksen ylityttyä vastausajat alkavat nousta hyvin nopeasti Käyrään syntyy polvi (knee) ja se alkaa nousta jyrkästi Järjestelmä on saturoitunut, ja se on saavuttanut maksimitehonsa, jolla se vielä pystyy jotenkuten tyydyttävästi palvelemaan käyttäjiään, ennen kuin vastausajat kasvavat liian pitkiksi 58153003 Ohjelmistojen suorituskyky 14 Helsingin Yliopisto / Tktl 7

Skaalautuvuus Järjestelmän saturoituminen johtuu yleensä jostakin pullonkaulasta (bottleneck) Jokin kriittinen resurssi (sovellusprosessi, levypalvelin) ruuhkautuu ja siihen kohdistuvien palvelua odottavien pyyntöjen jono alkaa kasvaa hallitsemattomasti Järjestelmä alkaa resuta (thrashing) käytettävissä oleva suoritusaika kuluu pääasiassa jonojen hallintaan ja yhä lisääntyvien poikkeustilanteiden käsittelyyn Pullonkaulat pitää tunnistaa, ja ne pitää poistaa tai kiertää halutun suoritustehon tavoitetason saavuttamiseksi Ohjelmisto- tai laitteistomuutoksin 58153003 Ohjelmistojen suorituskyky 15 Suorituskyky! Suorituskykyinen ohjelmisto On responsiivinen -> täyttää vastausajoille ja suoritusteholle asetetut tavoitteet (normaaleissa toimintaolosuhteissa) Skaalautuu -> täyttää vastausajoille ja suoritusteholle asetetut minimitavoitteet ennalta määritellyissä huippukuormitustilanteissa for use case ABC the system will respond to a valid user entry within 5 seconds for a median load of 250 active users and 2000 logged in users 95% of the time; or within 10 seconds for a peak load of 500 active users and 4000 logged in users 90% of the time. 1 1 http://en.wikipedia.org/wiki/performance_engineering#elaboration 58153003 Ohjelmistojen suorituskyky 16 Helsingin Yliopisto / Tktl 8

Suorituskykyongelmia? Jos jonkin tietyn pyynnön vastausaika on liian suuri mutta muut vastausajat ovat kunnossa, kannattaa aluksi keskittyä tämän tietyn pyynnön suorituspolun analysointiin ja optimointiin Jos taas kaikki vastausajat ovat liian suuria, on kyseessä todennäköisesti yleisempi ongelma, ja kannattaa keskittyä järjestelmätason analyysiin Laitteiston yleinen suoritusteho Jonkin laiteresurssin tai paljon käytetyn ohjelmistotoiminnon aiheuttama yksittäinen pullonkaula 58153003 Ohjelmistojen suorituskyky 17 Miksi suorituskyky on tärkeää? Ohjelmiston suorituskyky vaikuttaa merkittävästi Käyttäjäkokemukseen ohjelmistot ovat yhä suuremmassa roolissa arkipäivän järjestelmissä ja laitteissa Tuottavuuteen Työntekijöiden ajan käyttö luovaan ja arvoa tuottavaan tekemiseen eikä tahmaavan sovelluksen odotteluun Enemmän palvelua samoilla tai vähemmäillä resursseilla -> investointien ja käyttökulujen kurissa pysyminen toiminnan volyymin kasvaessa 58153003 Ohjelmistojen suorituskyky 18 Helsingin Yliopisto / Tktl 9

Miksi suorituskyky on tärkeää? Riittävä suorituskyky on luonnollisesti elintärkeää monien kriittisten järjestelmien toiminnalle Järjestelmän häiriöt aiheuttaisivat riskin ihmisten terveydelle ja omaisuudelle Tuotantolaitteiden ohjaus ja valvonta, ajoneuvojen ajonvakautusjärjestelmät jne. Toiminnan ajallinen täsmällisyys (anturien arvot luettava ja uudet ohjausarvot laskettava tietyn aikaikkunan sisällä), ylikuormitustilanteiden hallittu hoitaminen 58153003 Ohjelmistojen suorituskyky 19 Mitä huonosta suorituskyvystä voi seurata? Vahinkoa Asiakassuhteelle -> tahmaavalle applikaatiolle tai webpalvelulle löytyy yleensä paljon vaihtoehtoja Liiketoiminnalle -> huono työn tuottavuus, tuotannon puutteellinen skaalautuvuus kysynnän kasvaessa, tuloja nopeammin kasvavat kulut, menetetty liikevaihto Tuloille -> asiakaskato, korvausvaatimukset ja riidat, maineen menetys ja huono julkisuus Kehitysprojektille -> epäonnistuminen tai paha myöhästyminen, jos suorituskykyvaatimuksia ei saavuteta 58153003 Ohjelmistojen suorituskyky 20 Helsingin Yliopisto / Tktl 10

58153003 Ohjelmistojen suorituskyky 21 58153003 Ohjelmistojen suorituskyky 22 Helsingin Yliopisto / Tktl 11

Suorituskykyisten ohjelmistojen kehittäminen 1 Suorituskykyiset eli responsiiviset ja skaalautuvat ohjelmistot eivät yleensä ole sattuman satoa vaan tietoisten päätösten ja kovan työn tulosta Oppi ja kokemus on usein kantapään eli ongelmien sekä yrityksen ja erehdyksen kautta hankittu Ei-triviaalien ohjelmistojen suorituskyvyn saaminen halutulle tasolle vaatii työtä koko ohjelmiston kehityskaaren ajan Suorituskykytavoitteett ja niihin liittyvät riskit on syytä ottaa huomioon alusta lähtien 1 engl. (software) performance engineering 58153003 Ohjelmistojen suorituskyky 23 Tärkeimpiä aktiviteettejä Asiakkaan suorituskykytarpeiden ymmärtäminen ja analysointi Asiakas ei välttämättä osaa antaa täsmällisiä vaateita Arkkitehtuuri-, teknologia- ja implementaatiovaihtoehtojen analysointi suorituskykytarpeiden ja riskien kannalta Suorituskyvyn mittaamisen ja seurannan suunnittelu ja toteutus kehitysaikaista ja tuotantokäyttöä varten Suorituskykyongelmien selvittely ja muutosehdotusten vaikutusten arviointi ohjelmiston tuotantokäytön aikana 58153003 Ohjelmistojen suorituskyky 24 Helsingin Yliopisto / Tktl 12

KURSSIN TAVOITTEET 58153003 Ohjelmistojen suorituskyky 25 Päätavoitteina on oppia Mitä erilaisia asioita ja aktiviteetteja liittyy suorituskykyriskien hallintaan ohjelmistokehityksessä Miten jo suhteellisen yksinkertaisilla malleilla voidaan analysoida suorituskykyvaatimuksia ja arvioida erilaisten arkkitehtuuri- ja implementointivaihtoehtojen vaikutusta suorituskykyyn Yleisiä suunnitteluperiaatteita ja ratkaisumalleja (patterneja) suorituskykyisten ohjelmistojen suunnittelun ja toteutukseen 58153003 Ohjelmistojen suorituskyky 26 Helsingin Yliopisto / Tktl 13

Kurssin sisällön otsikkotason jäsentely 58153003 Ohjelmistojen suorituskyky 27 Helsingin Yliopisto / Tktl 14