Suomi.fi-palveluväylä –
Suurten liitetiedostojen siirtäminen palveluväylässä

 
Print Friendly, PDF & Email

1 Johdanto

Suurten tietomäärien siirto palveluväylää pitkin suositellaan tehtäväksi liitetiedostojen kautta. Palveluväylä tukee versiosta 6.9.x asti kahta liitetiedostojen siirtotapaa:

  • SOAP with Attachments
  • MTOM with XOP

Tämä dokumentti pyrkii selventämään palveluväylän suurten liitetiedostojen tiedonsiirtoon ja sen tehokkuuteen vaikuttavia tekijöitä. Esitellyt havainnot koskevat palveluväylän perustapausta, jossa asiakasjärjestelmä lähettää liitetiedostot ensin omalle liityntäpalvelimelleen, josta ne lähetetään vastaanottavalle liityntäpalvelimelle ja sieltä edelleen vastaanottavalle asiakasjärjestelmälle. Dokumentissa on esitetty suorituskykymittauslukemia, jotka on saatu osana pilvipalveluita hyödyntäen suoritettua testausta. Viitteellisiä mittauslukemia on esitetty havainnollistamaan palveluväylän liitetiedostojen siirron suorituskykyprofiilia.

1.1 SOAP with Attachments (SwA)

Tämä on palveluväylän alkuperäinen liitetiedostojen siirtotapa ja se on ollut tuettuna myös aikaisemmissa versioissa. Lisätietoa siirtotavasta SOAP Messages with Attachments -dokumentaatiosta.

SOAP with Attachments tai lyhyemmin SwA-siirto tulee palveluväylässä tehdä lähettäen jokainen liitetiedosto omana multipart-osionaan. Palveluväylä ei tue useiden liitetiedostojen lähettämistä yhden multipart-osion sisällä. SwA on liitetiedostojen siirron testauksen yhteydessä tehtyjen suorituskykymittausten pääasiallinen siirtotapa.

1.2 Message Transmission Optimization Mechanism with XOP (MTOM)

Versiosta 6.9.x alkaen palveluväylä tukee myös SOAP Message Transmission Optimization Mechanism -siirtotapaa.  Lisätietoa siirtotavasta Message Transmission Optimization Mechanism -dokumentaatiosta.

MTOM ei liityntäpalvelinten näkökulmasta eroa merkittävästi SwA-siirtotavasta, eikä tehdyissä testimittauksissa siirtotapojen välillä havaittu merkittävää suorituskykyeroa. SwA:lla tehtyjen tarkempien suorituskykymittausten havainnot pätevät siis myös MTOM-siirtotapaan.

1.3 Liitetiedostojen siirron testauslaitteisto

Liitetiedosten siirtoa testattiin pääosin AWS-ympäristössä käyttäen liityntäpalvelimina AWS:n m4.large EC2-instansseja:

  • CPU: 2.4 GHz Intel Xeon® E5-2676 v3 (Haswell) prosessori, 2 vCPU
  • Muisti: 8 Gt
  • Levy: 120G classic / magnetic levy

AWS:n ulkopuolella testauskäytössä oli suorituskyvyltään vastaavan tason liityntäpalvelimia.

2 Suurten liitetiedostojen siirtonopeus palveluväylää käyttäen

Palveluväylän siirtonopeutta (SwA) on testattu käyttäen eri liitetiedostokokoja välillä 1Mt – 30Gt. Kymmenien gigatavujen liitetiedostojen siirto ei ole väylän tyypillistä sanomaliikennettä, mutta väylän kautta tapahtuvien siirtojen keston on huomattu myös tällöin säilyvän lineaarisena tiedostokokoon nähden. Käytännössä tämä näkyy siten, että palveluväylän kautta siirtoon kuluva aika kasvaa tiedostokokoa kasvatettaessa tasaisesti. Niinpä palveluväylän kautta siirrettävälle liitetiedostolle ei ole varsinaista kokorajaa, vaan ainoina konkreettisina siirtoon vaikuttavina rajoina toimivat käytettävissä oleva aika ja levytila.

Testeissä liitetiedoston siirtämistä palveluväylän kautta on verrattu ensisijaisesti suoraan SOAP-siirtoon asiakasjärjestelmien välillä. Näiden siirtotapojen suurimpana erona kokonaiskestoa ajatellen on liityntäpalvelimilla tapahtuva viestiliikenteen prosessointi. Muun muassa liikenteen salauksen ja varmennuksen suorittaminen aiheuttaa viestin läpimenolle viestin koon mukana kasvavaa prosessointiviivettä. Mikäli liityntäpalvelinten suorituskyky on suunniteltu ympäristöönsä nähden oikein, niiden prosessointiviive kasvaa tasaisesti liitetiedostojen koon kasvaessa. Liityntäpalvelimien riittävällä resursoinnilla prosessoinnin aiheuttaman viiveen vaikutus voidaan pitää kurissa, jolloin suurtenkin liitetiedostojen siirtäminen palveluväylän kautta onnistuu verrattaen tehokkaasti. Mittauksissa suurten liitetiedostojen siirto palveluväylän kautta oli eri liitetiedostokokojen ja testikonfiguraatioiden yli normaalitilanteessa keskimäärin noin 25% suoraa SOAP-siirtoa hitaampaa. Mikäli liityntäpalvelinten viestiliikenteen prosessointi hidastui riittämättömän resursoinnin vuoksi, prosessointiviiveen merkitys kokonaissiirtoajassa kasvoi ja suorituskykyero nousi selkeästi keskimääräistä suuremmaksi.

2.1 Liityntäpalvelinten resursoinnin vaikutukset liitetiedostojen siirtämiseen

Kuvan mukaisessa konfiguraatiossa lähettävä liityntäpalvelin striimaa asiakasjärjestelmältä saamansa pyynnön ja mukana tulevat liitetiedostot vastaanottavalle liityntäpalvelimelle, joka tallentaa vastaanottamansa datavirran levypohjaiseen välimuistiin. Levyvälimuisti tallentaa kaikki viestin mukana tulevat liitteet yhteen väliaikaistiedostoon, joka poistetaan, kun tiedoston sisältö on lähetetty eteenpäin vastaanottavalle asiakasjärjestelmälle.

2.1.1 Liityntäpalvelimen keskusmuisti

Liitetiedostojen siirron testaamiseen käytettiin 8 Gt:n muistilla varustettuja palvelimia, joilla muistin ei havaittu muodostavan merkittävää suorituskykyrajoitetta viestinkäsittelylle. Palveluväylän liityntäpalvelinten teknisissä suosituksissa kehotetaan mitoittamaan liityntäpalvelimen muistiasetukset kuormituksen mukaan. Erityisen vaativissa siirto-olosuhteissa muistin lisäämistä kannattaakin harkita, mutta mittausten perusteella se ei ole tärkeimpien suurten liitetiedostojen siirtonopeuteen vaikuttavien tekijöiden joukossa.

2.1.2 Levytilan ja levyn nopeuden merkitys

Levypohjaisen välimuistin myötä vastaanottavan liityntäpalvelimen vapaana oleva levytila muodostaa kriittisen vaatimuksen liitetiedostojen siirron onnistumiselle. Mikäli yksittäisen viestin mukana lähetettävät liitetiedostot ovat niin suuria, ettei levyvälimuistin niistä luoma väliaikaistiedosto mahdu palvelimen levylle, liitetiedostojen lähettäminen epäonnistuu vastaanottovaiheessa.

Vastaanottavan liityntäpalvelimen käyttämä levypohjainen välimuisti voi myös vaikuttaa liitetiedostojen kokonaisiirtonopeuteen. Niinpä liityntäpalvelinten käyttämän levymuistin nopeus tulee ottaa huomioon tiedonsiirron kapasiteettia suunniteltaessa.

Esimerkiksi siirrettäessä 1Gt:n liitetiedosto 52Mb/s verkkoa pitkin saatiin eroavilla levynnopeuksilla seuraavat tulokset:

Levyn keskimääräinen lukunopeus
Siirtoaika, suora SOAP (s)
Siirtoaika, Palveluväylä (s)

Palveluväylä suoraa SOAP-siirtoa hitaampi ~

16 Mt/s 164 207 26%
72 Mt/s 172 191 11%

Valitsemalla liityntäpalvelimille nopeampi levy saatiin noin 15 prosenttiyksikön suorituskykyparannus jo 1Gt:n liitetiedostokoolla. Keskimäärin muutos paransi palveluväylän siirtonopeutta kaikkien testattujen tiedostokokojen yli noin 17 prosenttiyksikköä.

2.1.3 Suoritinkapasiteetin merkitys

Palveluväylän kautta tapahtuva tiedonsiirto vaatii suoraan SOAP-siirtoon verrattuna lisäprosessointia liityntäpalvelimilla. Dataa pyritään käsittelemään heti, kun sitä vastaanotetaan verkkoyhteyden välityksellä. Tämä tarkoittaa sitä, että liityntäpalvelimien kuormitus suuria liitetiedostoja siirrettäessä kasvaa verkon siirtonopeuden kasvaessa. Tällöin liityntäpalvelimen suoritinkapasiteetti voi nousta yhdeksi tärkeimmistä lopullista asiakasjärjestelmien välistä tiedonsiirtonopeutta rajoittavista tekijöistä.

Testeissä havaittiin, että suuria liitetiedostoja nopeilla verkkoyhteyksillä siirrettäessä liityntäpalvelimien prosessorikuorma kasvoi voimakkaasti. Testin ääritilanteessa suoritinkapasiteetti rajoitti siirtoa niin, että prosessointiviiveen osuus kokonaissiirtoajasta kasvoi rajusti ja tiedonsiirto palveluväylää pitkin oli selkeästi suoraa SOAP-siirtoa hitaampaa.

Siirrettäessä 1Gt:n liitetiedostoa saatiin seuraavat tulokset:

Keskimääräinen CPU-kuorma
Verkon nopeus
Siirtoaika, suora SOAP (s)
Siirtoaika, Palveluväylä (s)
Palveluväylä suoraa SOAP-siirtoa hitaampi ~
0,15 175,6 Mb/s 43,6 55,4 27%
1 568 Mb/s 16,6 71 328%

Tuloksista nähdään, että nopeamman verkon aiheuttama suurempi kuorma on johtanut liityntäpalvelimen tiedonsiirron voimakkaaseen rajoittumiseen suoritinkapasiteetin suhteen. Tällöin tiedonsiirron tehokkuus tipahtaa selkeästi, paitsi suoraan SOAP-siirtoon, myös hitaamman verkkoyhteyden kanssa palveluväylän yli tehtyyn siirtoon verrattuna. Mittausten perusteella siirto-olosuhteisiin riittämätön suoritinkapasiteetti nouseekin merkittävimmäksi liitetiedostojen siirron suorituskykyrajoitteeksi palveluväylässä.

3 Yhteenveto

Yllä esitettyjen havaintojen pohjalta palveluväylään liitettyjen liityntäpalvelinten resursointi käyttöolosuhteisiin sopivaksi nousee ratkaisevaksi tekijäksi suurten tietomäärien tehokkaassa siirtämisessä. Nopea verkko ja suuria liitetiedostoja vaativat palvelut asettavat korkeat vaatimukset myös liityntäpalvelimen prosessointi- ja levynopeudelle. Liitetiedostojen koko ei kuitenkaan itsessään rajaa palveluväylän käyttöä, sillä mitään palveluväylästä riippuvaa ylärajaa tiedostokoolle ei ole. Levyvälimuistista johtuen lähetettävien liitetiedostojen tulee kuitenkin mahtua kokonaisuudessaan vastaanottavan liityntäpalvelimen levylle.

Palveluväylän kautta tehtävä liitetiedostojen siirto sisältää suoraan siirtoon nähden prosessointiviiveen, joka vaikuttaa pitkälti siihen, miten suorituskykyistä siirto palveluväylää pitkin on suoraan siirtoon verrattuna. Etenkin liityntäpalvelimen suoritinkapasiteetti vaikuttaa siirtoviiveen muodostumiseen voimakkaasti. Kun vastaanottavan liityntäpalvelimen hidas levymuisti voi johtaa palveluväylän siirron suorituskyvyn verrattaen maltilliseen heikkenemiseen, saattaa liityntäpalvelimen prosessointikapasiteetin riittämättömyys puolestaan nostaa prosessointiviiveen selkeästi varsinaista siirtoviivettä suuremmaksi tekijäksi kokonaissiirtoaikaa ajatellen. Tällöin palveluväylän kautta tehtävän liitetiedostosiirron tehokkuus suoraan siirtoon verrattuna romahtaa. Siirto-olosuhteisiin riittävällä suoritinkapasiteetilla prosessointiviive jää kuitenkin itse siirtoviivettä pienemmäksi, jolloin palveluväylän suorituskyky säilyy hyvänä.

Print Friendly, PDF & Email

VersioMitä tehty / muutettuPvm/
henkilö
1.0Dokumentti julkaistu.04.04.17 / HH

Yksilöintitunnus: 12345