Lisäksi ajattelin heittää kysymyksen ilmaan, että tarvitaanko virtualisointia tässä tapauksessa ollenkaan?
Hyvä pointti. Tulee ihan mieleen alkuajat threadien kanssa. Kaikki jutut kannattaa aina pistää omaan threadiin tai sitten ei. Tosi kätevää kun esim web-serverissä jokainen istunto on omana threadinaan. Voi vaikuttaa hyvältä idealta, mutta ei ole sitä. Paljon tehokkaampaa käyttää paljon vähemmän threadeja ja zekata niillä olisiko jotain tehtävää. Kuin käynnistää esim jokaista sokettia / istuntoa varten omat threadit.
Meillä oli tuossa yksi tuote, jota ajettiin pitkään siten että jokainen asiakas sai oman virtuaalikoneen johon pistettiin ne kamat. Kunnes josain vaiheessa sanoin, että resurssien kulutus on aivan täysin järjetöntä tuossa tapauksessa. Sovellukseen tehtiin perustavanlaatuinen alemmantason remontti. Nyt yksi instanssi ajaa noin 32 threadilla (8 corea) kaikkia asiakkaita. Tehon kulutus putosi yli 10 kertaisesti siihen nähden mitä se oli. Yksi web serveri, yksi sovellus, yksi mysql, thats it. Eikä enään 20 windowssia, 20 web serveriä, 20 sovellusta ja 20 mysql kantaa. Teho ongelmista päästiin kerralla, eikä ison kansan windowsseja päivittely tuota enää edes ongelmia. Kone oli ennen ihan tukossa, mutta nyt tohon mahtuu vielä monta asennusta lisää. Tietysti tuo sovelluksen muutostyö maksoi rahaa, mutta mielestäni oli varsin järkevä ratkaisu. Erityistä haittaa aiheutti mm. se että cachet eivät toimineet jakamattomana järkevällä tavalla. Nyt kun mysql voi pitää sen datan cachessa mitä kulloinkin tarvitaan, eikä aiheuta swappeja toisista instansseista, niin homma toimii paljon paremmin.
Tietysti ehkä kehitysvaiheessa tuo virtualisointi oli ihan ok, koska oli helppo experimentoida jollain nopeasti kasatulla epämääräisellä testi softalla systeemiä aiheuttamatta ongelmia muille käyttäjille. Mutta kun kaikki on kunnossa ja toimii miten pitää, niin ylimääräinen virtualisointi lisää vain ylläpito & laite kustannuksia.
Nyt testit ajetaan toisessa koneessa, jossa on käytössä virtualisointi noille pilotti caseille.