Artikkelit

Palveluväylään lisää tehoa – kuormantasaajan käyttö mahdolliseksi

Suorituskykyä ja toimintavarmuutta lisää

Suomi.fi-palveluväylään liitettävien palveluiden suorituskykyä ja toimintavarmuutta voidaan jatkossa merkittävästi parantaa, kun seuraava palveluväylän versio (versio 6.16.x) julkaistaan syksyllä. Uudessa versiossa on mahdollista käyttää ulkoista kuormantasaajaa tasaamaan liityntäpalvelinten kuormitusta. Tämä tarkoittaa sitä, että liityntäpalvelimia voi olla useita. Tällöin ne kaikki tarjoavat saman palvelun palveluväylään mutta väylän suuntaan ne näkyvät kuitenkin vain yhtenä rajapintana. Ulkoinen kuormantasaaja huolehtii rajapinnassa siitä, että viestiliikenteen kuormitus jaetaan tasaisesti klusterissa olevien eri liityntäpalvelinten kesken. Tällöin palvelukutsuja voidaan käsitellä yhtäaikaisesti huomattavan paljon enemmän verrattuna yhteen palvelukutsuja käsittelevään liityntäpalvelimeen.

Palveluväylän sisäinen kuormantasaus

Aikaisemmin palveluväylässä on jo ollut mahdollista käyttää X-Roadin sisäistä ns. High Availability-toiminnallisuutta (HA), jolloin väylän sanomia välittävät liityntäpalvelimet ovat voineet olla kahdennettuja tai jopa monennettuja. Tällöin yhden liityntäpalvelimen vikaantuessa on ”vara-liityntäpalvelin” otettu käyttöön ja palvelun toiminta on jatkunut lähes keskeytyksettä. HA-toiminnallisuus ei ole kuitenkaan osannut jakaa kuormaa eri liityntäpalvelimien kesken, vaan käytännössä se on vain ohjannut kuorman jollekin liityntäpalvelimelle.

 

Kuva 1. Sisäisen kuormantasauksen periaate. Kuvassa käytetyt lyhenteet: IS = information system (tietojärjestelmä, sovellus), SS = Security Server (liityntäpalvelin).

 

Palveluväylän ulkoinen kuormantasaus

Kuormantasaus tarkoittaa sitä, että käsiteltävä kuorma jaetaan käytössä olevien liityntäpalvelimien kesken, jolloin yksittäinen palvelin ei ylikuormitu. Jos yksittäinen palvelin vikaantuu eikä sitä voida enää käyttää, osaa kuormantasaaja tällöin reitittää liikenteen uudelleen niin, ettei vikaantunutta palvelinta turhaan yritetä käyttää. Näin liikenne ohjautuu muille, toimiville palvelimille.

Kuva 2. Ulkoisen kuormantasauksen periaate.

Palveluväylän tapauksessa merkittävä asia on myös se, että vaikka klusterissa olisi useampia liityntäpalvelimia, tarvitaan palveluväylän varmenteita (autentikointi- ja allekirjoitusvarmenne) vain yhtä liityntäpalvelinta varten. Väylässä on siis virallisesti yksi liityntäpalvelin (master), joka klusterin muut liityntäpalvelimet (noodit, slavet) teeskentelevät olevansa. Klusterissa olevat liityntäpalvelimet käyttävät kaikki samoja varmenteita eikä jokainen liityntäpalvelin tarvitse omia varmenteita, mikä on merkittävä parannus varmenteiden käsittelyssä. Palveluväylän liityntäpalvelin-ohjelmisto osaa replikoida varmenteet ja käyttää niitä klusterissa olevien palvelinten kanssa oikein.

Kuormantasaajan suorituskykymittaukset

Ulkoisen kuormantasaajan käyttämistä palveluväylän tarpeisiin on testattu kevään ja kesän aikana kehitystiimin omissa suorituskyky- ja regressiotesteissä. Lisäksi ulkoinen toimittaja on tehnyt erillisen suorituskykytestauksen omassa palveluväylä-ympäristössään käyttäen omaa ulkoista kuormantasaaja.

Suorituskykytestejä varten FI-TEST -palveluväylä-ympäristöön luotiin alla oleva kuvan mukainen testauskonfiguraatio. Kuormantasausta käytettiin sekä palvelupyyntöjen lähettäjän että palveluntarjoajan päässä palveluväylän ja liityntäpalvelinten välissä. Lisäksi sekä asiakasjärjestelmän että palveluntarjoajan järjestelmien ja liityntäpalvelinten välissä käytettiin ulkoisia kuormantasaajia. Kuormaa pyrittiin tasaamaan mahdollisimman paljon.

Kuva 3. Ulkoisen kuormantasauksen testauskonfiguraatio.

 

Yksittäinen viesti kulkee järjestelmässä niin, että asiakasjärjestelmän sovellus generoi palvelukutsujen SOAP-sanomia kuormantasaajan #1 läpi asiakaspään liityntäpalvelimille (liityntäpalvelimet #1 ja #3), jotka pyytävät sanomiin vastausta palveluntarjoajan liityntäpalvelimelta (liityntäpalvelimet #2 ja #4). Kuormantasaaja #3 jakaa palvelukutsut palveluntarjoajan liityntäpalvelinten #2 ja #4 kesken. Nämä liityntäpalvelimet saavat vastaukset palvelukutsuihin palveluntarjoajan sovellukselta. Tämä sovellus tuottaa vakiovastauksen ja vastaussanomat voidaan määritellä testin konfiguroinnilla. Vastaussanoma kulkee samaa reittiä takaisinpäin, jolloin kuormantasaajat #4 ja #2 jakavat matkan varrella kuormaa.

Testissä mitattiin kuinka kauan koko viestiketjun (palvelukutsu–vastaus) suorittamiseen kuluu aikaa ja montako viestiä järjestelmän läpi kulkee. Lisäksi mitattiin sekä liityntäpalvelimien että asiakasjärjestelmän ja palveluntarjoajan sovelluksen palvelimien CPU-kuormitusta. Näin pystyttiin päättelemään mikä osa järjestelmästä mahdollisesti hidasti eniten viestin välitystä. Testin aikana palvelukutsujen määrää lisättiin niin, että testin aluksi yhtäaikaisia palvelukutsuja oli vain yksi kappale, mutta testin lopussa yhtäaikaisia kutsuja oli 250.

Testin aikana kaikissa liityntäpalvelimissa oli samanlainen alustakokoonpano, joka on käytännössä sama kuin suositeltava minimikokoonpano liityntäpalvelimelle:

  • OS: Red Hat 7
  • Keskusmuisti: 4 Gb
  • 2 CPUs
  • Levytila: 70 Gt

Seuraavissa kuvissa on esitetty sanomien läpimenomäärät ja keskimääräiset vasteajat testeissä käytetyille palvelukutsuille kullakin sanomakoolla. Kuvassa 4 näkyy kuinka monta sanomapakettia on siirretty kullakin sanomakoolla yksittäisen testin aikana. Testin suoritusaika on vakio ja viestejä lähetetään väylän siirrettäväksi niin nopeasti kuin mahdollista.

Kuva 4. Viestien läpimenomäärät kuormantasauksella ja ilman kullakin sanomakoolla mitattuna.

Kuvassa 5 näkyy palvelukutsujen keskimääräiset vasteajat kullakin sanomakoolla testien aikana.

Kuva 5. Keskimääräiset palvelukutsujen vasteajat kullakin sanomakoolla.

 

Tulokset näyttävät, että osassa testejä suorituskyky tuplaantui tai kasvoi jopa tätäkin enemmän. Toisaalta testauksen aikana huomattiin, että testauksessa palveluntarjoajan päässä käytetty vastaanottava sovellus muodostui pullonkaulaksi silloin kun käytettiin isompia sanomakokoja. Vastaanottava sovellus ei pystynyt käsittelemään saapuneita palvelukutsujen sanomia tarpeeksi nopeasti, vaan kutsut jonoutuivat ja niiden käsittely hidastui. Tästä syystä testitulokset ovat näissä testitapauksissa huonompia kuin jos vastaanottava sovellus olisi pystynyt käsittelemään palvelukutsuja yhtä nopeasti kuin liityntäpalvelimet niitä välittivät. Tämä näkyy siinä, että 100K:n kokoisissa ja sitä isommissa sanomissa kuormantasauksen vaikutus suorituskykyyn putoaa ja tasoittuu suurin piirtein samaan lukemaan kuin ilman kuormantasausta. Jälkikäteen arvioiden myös palveluntarjoajan sovellus olisi pitänyt olla kahdennettu (kaksi sovellusta olisi vastannut palvelukutsuihin), jotta palveluväylän siirtokykyä olisi saatu paremmin mitattua. Joka tapauksessa tällä testillä pystyttiin osoittamaan, että palveluväylässä pullonkaulaa sanomien välityksessä ei muodostunut. Jos pullonkaula muodostui, olivat syyt jossain muualla järjestelmässä, esimerkiksi verkkoyhteyksissä tai palvelupuolen sovelluksessa – kuten tässä tapauksessa todettiin.

Yhteenvetona voi sanoa, että palveluväylän suorituskyky osoittautui merkittävästi paremmaksi ulkoista kuormantasaajaa käytettäessä.

Ulkoisen kuormantasaajan kolme tärkeää hyötyä

Kolme suurinta kuormantasaajan tuomaa etua ovat skaalautuvuus, korkea saatavuus ja hallittavuus. Jos esimerkiksi liityntäpalvelimen toimintaan tarvitaan lisää suorituskykyä vaikkapa lisääntyneen käytön takia (palvelukutsuja tulee jatkossa yhä enemmän), voidaan nykyinen liityntäpalvelin kloonata toiseksi tai useammaksi liityntäpalvelimeksi. Kuorma jakaantuu tällöin kahdelle tai useammalle liityntäpalvelimelle. Näin yhtäaikaisten käyttäjien määrää voidaan kasvattaa ja vasteajat pienevät.

Kuormantasaajan avulla järjestelmä toimii aikaisempaa paremmin myös mahdollisissa vikatilanteissa. Kuormantasaaja poistaa vikaantuneen liityntäpalvelimen käytöstä (liikennettä ei enää ohjata sille) ja liikenne ohjautuu muille, toiminnassa oleville liityntäpalvelimille. Järjestelmän toimintavarmuutta voidaan parantaa vielä lisää kahdentamalla (HA toiminnallisuus) myös itse kuormantasaaja niin, että niitä on kaksi kappaletta toimintakunnossa. Tällöin yhden kuormantasaajan vikaantuminen ei lamauta järjestelmän toimintaa.

Hallittavuudella tarkoitetaan sitä, että liityntäpalvelinklusterin toimintaa voidaan hallita kuormantasaajan avulla. Esimerkiksi liityntäpalvelimia huollettaessa tai päivitettäessä voidaan kuormantasaajalle kertoa, että kyseinen liityntäpalvelin ei ole toimintakunnossa, eikä sille saa ohjata toistaiseksi liikennettä. Tällainen tilanne voi tulla vastaan vaikkapa päivitettäessä liityntäpalvelimen ohjelmistoa uuteen versioon, jolloin päivityksen ajaksi kyseinen palvelin otetaan pois klusterista. Palvelin palautetaan kun ohjelmisto on päivitetty.

Milloin kuormantasausta kannattaa käyttää?

Ulkoisen kuormantasaajan käyttöä kannattaa harkita ainakin siitä tapauksessa, jos yhtäaikaisia palvelukutsuja tulee (tai voi tulla) niin paljon, ettei yhden liityntäpalvelimen kapasiteetti riitä palvelemaan kaikkia palvelukutsuja riittävän nopealla vasteajalla. Lisäksi, jos äkillisiä kuormituspiikkejä on odotettavissa, voidaan palvelun toimivuus varmistaa näiden ruuhkahetkien ajalle kuormatasauksella ja lisäämällä liityntäpalvelimia klusteriin. Tarkkoja palvelukutsujen määriä, jolloin kuormantasaajan käyttö on suositeltavaa on hankalaa sanoa. Muuttuvia tekijöitä tässä yhtälössä ovat esimerkiksi palveluntarjoajan liityntäpalvelimen kapasiteetti ja suorituskyky (mm. muisti ja suoritin), sekä palveluväylään tarjottavalle palvelulle ominainen käytös, esimerkiksi miten suuria sanomia sen pitää käsitellään ja miten usein. Ohjeistusta yksittäisen liityntäpalvelimen mitoitukseen löytyy täältä: Liityntäpalvelimen tekniset vaatimukset. Arviona voisi sanoa, että silloin kun yhtäaikaisten käyttäjien määrä nousee useisiin kymmeniin tai satoihin (tai jopa tuhansiin) ja palvelun on pystyttävä käsittelemään satoja tai tuhansia sanomia lyhyessä ajassa, on kuormantasaajan käyttö suositeltavaa.

Mikäli palvelun saatavuus on ehdottaman tärkeää on kuormantasaajan käyttö tällöin perusteltua. Jos esimerkiksi ohjelmistopäivitykset on pystyttävä tekemään ilman katkosta, on kuormantasaaja ehdoton valinta, koska yksittäinen liityntäpalvelin voidaan irrottaa huoltotoimenpiteitä varten klusterista. Muut klusterin liityntäpalvelimet mahdollistavat palvelun toiminnan tällä välin.

Ulkoisen kuormantasaajan käyttämisestä palveluväylässä julkaistaan asennus- ja konfigurointiohjeet. Kannattaa huomioida, että palveluväylä mahdollistaa ulkoisen kuormantasaajan käytön, mutta kuormantasaajan hankinta, konfigurointi ja ylläpito oman palvelun käyttöön on kunkin organisaation vastuulla. Teknisenä yksityiskohtana mainittakoon, että käytettävän kuormantasaajan pitää tukea HTTP-pohjaista statustilan tarkistusta (ns. health check toiminnallisuus klusterin noodeille) sekä TCP-tason kuormantasausta. Ehdottomasti suositellaan myös, että kuormantasaajan toiminta on varmennettu HA toiminnallisuudella, jolloin yksittäisen kuormantasaajan vikaantuminen ei lamauta koko järjestelmän toimintaa.

Yhteenveto

Palveluväylä on suorituskykyinen tapa siirtää tietoa. Jatkossa sinne liitettyjen palveluiden suorituskykyä voidaan skaalata ylöspäin melkeinpä miten paljon vain. Tämä tehdään kuormantasauksen avulla liittämällä klusteriin lisää liityntäpalvelimia. Palveluväylä tuo tiedonsiirtoon tietoturvaa, aikaleimausta, varmenteita ja vakioituja ratkaisuja palveluiden liittämiseksi ja käyttämiseksi väylässä. Palveluväylä tarjoaa siis tietoturvalla varustettua siirtokyvykkyyttä. Ostoskanavan sanoin, ei siinä vielä kaikki: tämä kaikki on saatavilla valmiina paketoituna kokonaisuutena, jossa on mukana monipuoliset ohjeistukset. Ja se on vieläpä käytettävissä ilmaiseksi! Liity mukaan Palveluväylään

Hannu Hakala

Kirjoittaja työskentelee IT-alan palveluyritys Cybercomin palveluksessa ja on Suomi.fi-palveluväylän tuoteomistaja. Hän on innokas digitalisoitumisen puolestapuhuja: ”Mikä onkaan hienompaa, kuin tehdä digitalisaatiota kotimaan hyväksi”.

Suorituskykyinen Suomi.fi-palveluväylä

Suomi.fi-palveluväylä tarjoaa vakioidun tavan tietojen siirtoon organisaatioiden välillä mahdollistaen turvallisten palvelukokonaisuuksien rakentamisen kansalaisille, yrityksille ja viranomaisille. Tämän palveluväylä tarjoaa ja lupaa. Mitä sanan ”siirtoon” taakse kätkeytyy? Minkälaista dataa palveluväylässä voidaan itseasiassa siirtää ja miten suorituskykyinen se on? Yritän kirjoituksessani avata asiaa, koska useissa keskusteluissa useiden eri tahojen suunnalta on kysytty tätä ja toivottu selkeytettävän.

Historiaa

On totta, että X-Roadissa käytettävä SOAP-tiedonsiirtoprotokolla on alun perin suunniteltu pienten sanomien siirtoon. Moni on ihmettelyt, miksi ylipäätään SOAP-tiedonsiirtoprotokollaa käytetään X-Roadin perustekniikkana. Eikö olisi järkevämpää käyttää jotain nykyaikaisempaa protokollaa, vaikkapa REST/JSON-pohjaista tekniikkaa? Lyhyt vastaus on, että kun koko X-Road-järjestelmää aloitettiin suunnittelemaan 90-luvun loppupuolella Virossa, mietittiin, mikä olisi hyvä ja luotettava tapa siirtää dataa silloisissa tietoverkoissa ja käytössä olevilla protokollilla. Siihen aikaan kun varteenotettavia ja jo hyväksi koettuja protokollia ei ollut liiemmälti. Silloin päätettiin valita käyttöön XML-pohjainen XML-RPC-protokolla. XML oli tullut silloin jo laajemmalti käyttöön (vuonna 1996 julkistettiin ensimmäinen luonnosversio XML-spesifikaatiosta ) ja näytti, että siitä tulee valtaprotokolla tiedon siirtoon tietoverkoissa, joten valinta oli luonteva.

Vuonna tehtiin 2002 SOAP RPC/encoded -tuki, SOAP document/litteral wrapped -tuki valmistui vuonna 2010. Viron puolella nykyisen SOAP-protokollan vakiintuminen ja laaja käyttö ovat valideja perusteluja sille, miksi SOAP- protokollaa edelleenkin käytetään X-Roadin pohjana. Suomen puolella ei ole toistaiseksi lähdetty tekemään poikkeavaa linjausta, koska se vaatisi aika ison kehitystyön. Ajatus- ja ideatasolla tätä on jo mietitty.

REST/JSON-sovitin saatavilla

REST/JSON-pohjaisten järjestelmien liittäminen Suomi.fi-palveluväylään on kuitenkin mahdollista niin sanotun Rest Gateway -sovittimen avulla. Komponentti on saatavilla ilmaiseksi avoimena lähdekoodina Github repositoriosta. Komponenttia on testattu ja koestettu paljon ja sitä käytetään jo useissa erilaisissa palveluväyläliitynnöissä kytkemään REST/JSON-pohjainen tietojärjestelmä palveluväylään.

Suorituskyvyn parantaminen syksyn teemana kehitystyössä

Syksyn aikana Suomessa tehdyssä Palveluväylän kehitystyössä on keskitytty suorituskyvyn parantamiseen, jotta palveluväylän siirtokyky tukee paremmin erityisesti Suomessa väylään liittyviä organisaatioita. Suorituskykyä on parannettu mm. optimoimalla tietokantahakujen suorittamista, kehittämällä varmenteiden tarkistuksessa käytettävän OCSP-palvelun (Online Certificate Status Protocol) toimintaa ja parantamalla välimuistin käyttöä. Viimeisimpänä isona parannuksena on julkistettu ohjeistus siitä, miten muistiasetuksia kannattaa säätää omalla palvelinalustalla. Ohjeistus auttaa jokaista palveluväylään liittynyttä organisaatiota parantamaan oman liityntäpalvelimensa suorituskykyä, koska liityntäpalvelimen asennuspaketissa asetettavat vakioasetukset eivät useinkaan sovellu suoraan käyttöön, ainakaan optimaalisella tasolla. (Lisää muistiasetuksien optimoinnista täältä). Ohjeiden lukeminen ja käyttöönotto todellakin kannattaa, koska se auttaa parantamaan liityntäpalvelimen suorituskykyä merkittävästi.

Ystävämme Virossakaan eivät ole lepäilleet laakereillaan, vaan ovat omalta osaltaan tuoneet panoksensa X-Road-väylän suorituskyvyn parantamiseksi. He ovat toteuttaneet mm. uuden SOAP Body parserin, jonka pitäisi tuoda huomattavaa suorituskyvyn parannusta ja muistin käytön optimointia viestien välitykseen. Heiltä saatujen alustavien suorituskykytestien pohjalta puhutaan useiden kymmenien prosenttien parannuksesta varsinkin suurilla (>= 1MB) ja kompleksista rakennetta sisältävillä SOAP-viesteillä. Tämä merkittävä parannus on tulossa seuraavaan julkaistavaan versioon (versio 6.9.0). Tarkempia mittaustuloksia saadaan, kunhan teemme Suomen palveluväylässä omat suorituskykymittauksemme.

Yleinen suorituskyky

Palveluväylän yleisestä suorituskyvystä puhuttaessa voidaan antaa tiettyjä yleislinjauksia siitä, minkälaiseen tiedonsiirtoon palveluväylä on suunniteltu ja missä se on parhaimmillaan. Lopulta väylän siirtokyvykkyys eri järjestelmissä riippuu monesta eri asiasta, kuten: minkälaisia viestejä halutaan siirtää, miten isoja ne ovat, mikä on käytettävän verkon siirtonopeus ja miten paljon yhtäaikaisia käyttäjiä/palvelukutsuja järjestelmässä on. Alla on listattuna muutama ohjenuora, minkälaisiin tiedonsiirtoihin palveluväylä on erityisen soveltuva:

  • Parhaimmillaan siirtokyky on siirrettäessä pieniä synkronisia viestejä
  • Sanomakoolla 100 kt ja alle suorituskyky on paras
  • Yli 500 kt sanomakoolla suorituskyky laskee jonkin verran

Suorituskykymittausten tuloksia

Jotta palveluväylän suorituskyvystä saisi paremman kuvan ja sitä voisi verrata vaikkapa oman järjestelmän tarpeisiin, on alla esitelty suorituskykymittausten tuloksia. Palveluväylän jokainen julkaistava versio suorituskykytestataan kattavasti ja mittaustulokset dokumentoidaan säännönmukaisesti. Saatuja tuloksia analysoidaan ja verrataan esimerkiksi edellisen version mittaustuloksiin, jotta nähdään, miten suorituskyky on muuttunut eri versioiden välillä.

Testit suoritetaan kuvan 1 mukaisella testijärjestelmällä. Kuormageneraattorilla ajetaan pyyntösanomia asiakaspään liityntäpalvelimelle (Security Server 1), joka pyytää sanomiin vastausta palveluntarjoajan liityntäpalvelimelta (Security Server 2). Tämä liityntäpalvelin saa vastaukset testipalvelulta. Testipalvelu tuottaa vakiovastauksen sekä siihen liittyvät liitetiedostot, ja sanomakoot voidaan määritellä testin konfiguroinnilla. Vastaussanoma kulkee samaa reittiä takaisinpäin ja testissä mitataan, miten kauan koko viestiketjun (kyselysanoma – vastaussanoma) suorittamiseen kuluu aikaa.

palveluvayla_blogi_suorituskykytestaus

Kuva 1. Suorituskykymittauksen testijärjestely.

Testit ajetaan niin, että ensin määritetään kyseisessä testiajossa siirrettävä sanomakoko. Tämän jälkeen määritellään, miten yhtäaikaisten käyttäjien määrää lisätään testin aikana. Tyypillinen skenaario on, että testin aluksi käyttäjiä on 1, jonka jälkeen määrää kasvatetaan: käyttäjämäärä nousee askelittain, suurimmillaan yhtäaikaisia käyttäjiä on normaalitapauksessa n. 150-300.

Seuraavissa kuvissa on esitetty kolme eri testimittausta 100 B, 100 K ja 500 K viestipaketeilla uusimmalla liityntäpalvelimen versiolla (versio 6.7.13) suoritettuna ja suositeltavin muistiasetuksin tehtynä. Kumpikin liityntäpalvelin on varustettu samanlaisella alustakokoonpanolla:

  • OS: Red Hat 7
  • Keskusmuisti: 4 Gb
  • 1 CPU (E5-2650 v3, 2.50 GHz)
  • Levytila: 7 Gb

Kuvissa esiintyvä lyhenne TPS tarkoittaa ’Transactions Per Second’, eli montako tapahtumaa sekunnissa tapahtuu ja ’Transactions’ termi tarkoittaa tapahtumien lukumäärää, eli montako viestipakettia on siirretty. Kullekin tietyn kokoiselle viestipaketille on esitetty aina kaksi kuvaa: mittaustulokset vasteajoille ja tapahtumamäärät testin suorituksen aikana.

100B viestipakettien mittaustulokset

palveluvayla_blogi_100b_response_times

Kuva 2. 100B viestipakettien vasteajat.

palveluvayla_blogi_100b_transactions

Kuva 3. 100B viestipakettien tapahtumamäärät.

100K viestipakettien mittaustulokset

palveluvayla_blogi_100k_response_times

Kuva 4. 100K viestipakettien vasteajat.

palveluvayla_blogi_100k_transactions

Kuva 5. 100K viestipakettien tapahtumamäärät.

500K viestipakettien mittaustulokset

palveluvayla_blogi_500k_response_times

Kuva 6. 500K viestipakettien vasteajat.

palveluvayla_blogi_500k_transactions

Kuva 7. 500K viestipakettien tapahtumamäärät.

Mittaustuloksista lyhyesti

Kuvista nähdään, että palveluväylän datan siirtokyky on hyvä tai varsin hyvä, kun viestipakettien koko ei nouse isoksi (<=500 K) ja kun yhtäaikaisten käyttäjien määrä pysyy maltillisena (<=50 yhtäaikaista käyttäjää). Edellä mainittuja arvoja suuremmilla pakettikooilla ja isommilla määrillä yhtäaikaisia käyttäjiä palveluväylän suorituskyky heikkenee. Data siirtyy, mutta jonkin verran huonommalla suorituskyvyllä. Suorituskykyyn on tulossa huomattavaa parannusta version 6.9.0 myötä. Silloin voidaan odottaa merkittävästi parempia mittaustuloksia.

Liitetiedostojen siirrosta ja suorituskyvystä

Kun on tarve siirtää väylän yli jotain muuta kuin SOAP-viestiin sisään menevää XML-dataa tai halutaan siirtää isoja tiedostoja (yleensä >=1 Mb), oikea ratkaisu on käyttää ns. SOAP Attachment -siirtotapaa. Data siirretään silloin siis liitetiedostoina väylän yli. Alla muutamia liitetiedostojen siirtoon ja suorituskykyyn liittyviä seikkoja:

  • Palveluväylän kautta siirrettävien liitetiedostojen siirtoaika muodostuu lineaarisesti tiedoston koon mukaan.
  • Ylärajaa tiedostokoolle ei ole rajoitettu, vain levytila ja käytettävissä oleva aika rajoittavat.
    • Palveluväylän kehitysympäristössä on siirretty testimielessä 30 Gt liitetiedosto ongelmitta.
  • Liitetiedostojen siirtoaika riippuu myös käytetystä laitteistosta, pääasiassa CPU:sta ja levy-IO:n ja verkko-IO:n nopeudesta.
  • Palveluväylällä saadaan useimmissa tilanteissa riittävän hyvä suorituskyky isojenkin tiedostojen siirtoon, kunhan liityntäpalvelimet ovat riittävän tehokkaita.
  • Palveluväylän kautta tehtävä tiedonsiirto on jonkin verran suoraa SOAP-kutsua tai esimerkiksi SFTP-siirtoa hitaampi. Palveluväylän kautta tiedonsiirtoon menee noin 3,3 kertaa enemmän aikaa verrattuna SFTP:n yli tiedostoa siirrettäessä.

Alla olevassa taulukossa on muutamia mittaustuloksia, joita tekemissämme testeissä on saatu.

palveluvayla_blogi_liitetiedostojen_koot

Taulukko 1. Liitetiedostojen mittaustuloksia.

Taulukossa esiintyvät termit:

SOAP direct: suora palvelukutsu tietojärjestelmien välillä (palveluväylän liityntäpalvelimet eivät osallistu viestin välitykseen)

SOAP xroad: testipalvelua käytetään palveluväylän kautta (ns. normaali tapa käyttää palveluväylää)

SFTP: siirretään tiedosto SFTP:llä

568 Mbit/s: laskennallinen siirtoaika verkon maksiminopeudella

Yhteenveto

Palveluväylä on varsin suorituskykyinen tapa siirtää tietoa. Pitää muistaa, että palveluväylä tuo tiedonsiirtoon muun muassa tietoturvaa, aikaleimausta, varmenteita ja vakioituja ratkaisuja palveluiden liittämiseksi ja käyttämiseksi väylässä. Tällöin väistämättä suorituskykyyn tulee pientä alenemaa. Kaikkea kun ei voi saada yhdessä paketissa. Palveluväylä tarjoaa siis siirtokyvykkyyttä tietoturvalla varustettuna. Ja mikä parasta: tämä kaikki on saatavilla valmiina paketoituna kokonaisuutena ja vieläpä käytettävissä ilmaiseksi! Liity mukaan täältä: Liity Palveluväylään

Hannu Hakala

Kirjoittaja työskentelee IT-alan palveluyritys Cybercomin palveluksessa ja on Suomi.fi-palveluväylän tuoteomistaja. Hän on innokas digitalisoitumisen puolestapuhuja: ”Mikä onkaan hienompaa, kuin tehdä digitalisaatiota kotimaan hyväksi”.