Virtuaalmasina optimeerimine
19.02.2011 | Gunnar
Kui arenduskeskkond jookseb virtuaalmasina peal, siis selle optimeerimine parema jõudluse nimel ei ole tegevus, mis seisneb virtuaalmasinale ohjeldamatutes kogustes ressurside jagamises. Järgnevalt mõned näpunäited.
Optimeerimise kuldreegel: ära optimeeri asju, mis töötavad niigi väga hästi!
1. Plaani ressursid mõistlikult
Olenevalt sellest, millega virtuaalmasin tegelema peab, tuleb sellele planeerida piisavad emuleeritavad ressursid. Oluline on mõelda just sellele, mis on minimaalselt piisav, mitte sellele, kuidas saaks virtuaalmasinale ressurse maksimaalselt jagada.
Virtuaalmasin peab ressurside mõttes olema tasakaalus, sest liigsed ressursid tähendavad liigset tööd operatsioonisüsteemile, mis virtuaalmasinat jooksutab.
2. Mõõda ja optimeeri
Kui virtuaalmasin osutub omas ülesannetes aeglaseks, tuleb seda ettevaatlikult optimeerima hakata. Tuvasta pudelikael, tee vastavad kohendused ja proovi, kas olukord paranes. Esimesel korral võib see olla pisut võõras ja tüütu tegevus, kuid kui esimesed ringid optimeerimist on üle elatud, läheb kõik edasi lihtsamini juba.
Tüüpiline viga, mis tihti tehakse, on jõudluse probleemide lahendamine mälu andmise teel. Tihti see efekti ei anna või siis annab, kuid mitte just soovitud suunas. Pudelikaelaks võib olla sama hästi ka aeglane kõvaketas või liigvähene protessori ressurs.
Näpunäide. Virtuaalmasina ressurside kasutamist mõõtes satud tihti olukorda, kus näiteks mälu kasutatakse vähe ja ketta I/O on madal. See-eest on laes kolmas oluline ressurs – protsessori tuumad. See tähendab seda, et mälu või kettaruumi lisamine effekti ei anna – juurde on vaja arvutustuumasid.
3. Jooksuta ainult hädavajalikku softi
Virtuaalmasin on sul enamasti vajalik selleks, et tööd teha ja selle töö jaoks ei ole kohe kindlasti oluline see, et kõik töölaua vidinad, mida näiteks Windows 7 lahkesti pakub, vajalikud oleksid. Installeeri virtuaalmasina pealt maha kõik lisavidinad, mida sul kindlasti vaja pole. Igasugused taustapildid ja toredad saundid keera ka kinni.
Teine ressurside kadu on taustas jooksvad teenused, mille hulgast võib samuti leida selliseid, mida töö jaoks tarvis pole. Keera need toõik kinni ja keela nende automaatne käivitamine. Enne loomulikult veendu, et tegemist on päriselt ka teenustega, mida vaja pole.
4. Optimeeri opsüsteemi jõudlust
Järgmiseks asi, mis on keerukam. Opsüsteem võimaldab ka igasugust optimeerimist ja kui olukord ikka hea pole, siis tasub kindlasti käia ka need seaded üle. Kui juba niigi mälu vabastasid piisavas koguses, siis pole näiteks mälufailide kasutamisel mõtet – need võtavad ainult kettal ruumi ja põhjustavad täiendavaid pöördumisi ketta poole. Samuti leiad muid seadeid, mille torkimine võib anda hea effekti.
Selles punktis ära kiirusta. Ole ettevaatlik ja veendu enne igat sammu, et sa tead kindlasti, mida sa teed ja mis on ühe või teise sammu tagajärjed.
Näpunäide. Tõenäoliselt on su virtuaalmasinasse installeeritud vahendid lähtekoodihoidlaga suhtlemiseks ja kõik su töötav kood istub seal. Selle virtuaalmasina peal ei ole sul suure tõenäosusega vaja tuntud failide indekseerimist ja seega võid Windows Search teenuse kinni keerata.
5. Kasuta Remote Desktopi virtuaalmasinaga suhtlemisel
Kuigi virtuaalmasinatega saab sõltuvalt kasutatavast virtualiseerimise tehnoloogiast kaasa ka mõne hea vahendi, mis edastab virtuaalmasina ekraanipilti, ei pruugi need vahendid olla efektiivsed.
Näiteks Virtual PC kasutab ekraanipildi edastamiseks sama tehnoloogiat, mida paljud VNC-lahendused – virtuaalmasinast edastatakse kliendile pilti tiheda pildivoona ja see on oluliselt ressursinõudlikum protokoll kui see, mida kasutab remote desktop.
6. Kõvaketas on kõige keerukam pudelikael
Kõige keerukam pudelikael on alati kõvaketas. Programmid kasutavad just nii palju ketast kui nad kasutavad ja selle vastu ei saa teha suurt midagi. Parim, mis saad teha, on hoida virtuaalmasinaid eraldi kettal või muretseda lihtsalt kiirem kõvaketas. Näiteks annavad päris hea tulemuse SSD kettad.
Kui SSD-d ei juhtu olema, siis võib proovida 5400rpm kettalt liikuda üle 7200rpm või 10K rpm kettale. Tihti annab kiirema ketta peale liikumine märgatava jõudluse kasvu.
Paar näidet
Järgnevalt paar näidet virtuaalmasinatest, mis minul jooksevad. Märgin ära, et kasutan SSD-ketast ja selle I/O on suht käbe.
Visual Studio 2010 arendusmasin:
- Mälu: 2 giga
- Ketast: 30-50 giga
- Tuumasid: 2
SharePoint 2010 arendusmasin:
- Mälu: 4 giga
- Ketast: 30-50 giga
- Tuumasid: 4
Nagu näha, siis Visual Studio 2010 korral olin üle ootuste helge, sest tegelikult on ka 1 giga talle mälu osas piisav. Samas ma tean, et varem või hiljem installeerin ma selle masina peale täiendavat tarkvara juurde, Visual Studio koormus kasvab ja koos sellega kasvab ka nõudlus ressurside järgi.
SharePointi masina juures osutus pudelikaelaks tuumade arv. Kuigi ketta I/O oli suhteliselt intensiivne SharePointi jooksutamise ajal ei kasvanud mälukasutus oluliselt, kuid see-eest oli protsessor suure koormuse all. Tuumade arvu tõstmine kahelt neljale tõstis virtuaalmasina jõudlust oluliselt. Seejuures ei olnud vaja mälu juurde anda.
Kokkuvõtteks
Virtuaalmasina optimeerimine võib algul tunduda lihtne mäng ressursidega, kuid tegemise käigus saab kiiresti selgeks, et tegemist on oluliselt suurema ja keerukama tegemisega kui paar hiireklõpsu virtuaalmasina seadetes. Optimeerida tuleb sammu kaupa ja iga sammu järel tuleb veenduda, kas antud samm andis efekti või ei. Liigne optimeerimine võib virtuaalmasina jõudlust oluliselt halvendada.
