Virtualbox
A Virtualbox csak hirtelen felindulásból került be a tesztbe, de végül majd egy hetet töltöttem vele. 2 virtuális gépre feltelepítettem egy komplett weboldalt, ami kb. 10GB helyet emésztett fel.
A virtuális szerverek 2-2 processzort és 2 GB memóriát kaptak. Az egyik apache, míg a másik mysql szerverként szolgált.
A 8 darab teszter gép fejenként 1GB memóriát és 1 magot kapott. Ráadásnak még egy grafikus felülettel is rendelkező gépet is installáltam a teszterekhez hasonló konfigurációra. Az OS minden esetben ubuntu LTS 12.04 volt, mert ez akadt a kezembe.
Összegezve ez 13 magot és ugyanennyi GB memóriát jelent. Természetesen ez csak elmélet, mert a gyakorlatban kevesebb memóriát igényeltek a virtuális gépek. Alapban, terhelés nélkül két magot ennyire sikerült terhelni:
Mivel egy élő oldalt virtualizáltam, ezért a teszthez fel tudtam használni az access logokat. Az elmúlt 3 hónap forgalma alapján válogattam össze a legforgalmasabb oldalakat, 50 zip állományt, 150 képet... A végeredmény 1000 url lett, amit minden gép 100 esetben töltött le. Minden gép 2 szálat használt és az egyes gépek előre elkészített listája véletlenszerűen össze volt keverve. A futtatást először Windows 7 Professional-on végeztem. Az eredmények kicsit megleptek, ezért végeztem egy futtatást linux (Ubuntu 12.04 LTS) alatt is.
A Windows-os futtatás után azon kezdtem el gondolkozni, hogy mi értelme van a HT-nek, ha ennyivel sikerült lassabban letudni a tesztet, mint HT nélkül.
A linuxos teszt viszont pont az ellenkező eredménnyel zárult. Kicsit kezdtem furcsán nézni az egészet. A két virtualbox szoftver között nem lehet ekkora eltérés, az egész csak a két OS miatt lehet.
A Windows stratégiája az, hogy igyekszik a HT-et nem igénybe venni, ameddig csak lehet. Ez jól látható alább. Egy és két klienses terhelés látható, mindkettő nagyjából 3-3 osztásnyi időt volt a megfigyelt időszakban, közte a nyugalmi terhelés látható. A HT magokhoz tartozó 2., 4., 6. és 8. processzormagon 1 szál esetén nem futott semmi. Amikor növekedett a terhelés, akkor viszont képes volt a kernel az apache-hoz rendelt két virtuális processzort ugyanazon az egy fizikain futtatni. Ekkora terhelésnél ez még nem jár nagy teljesítmény vesztéssel, de 3 kliensnél már igen.
A linux stratégiája sokkal egyszerűbb. Igyekezett "elkenni" a terhelést az összes magon, legyen az fizikai, vagy virtuális. A fölösleges ugrálás viszont más hátránnyal jár, mint a Windows féle megoldás. Nem tudom, hogy mi lenne a tökéletes megoldás, de eszembe jutott az ökölszabály. Ha valamit 80% fölött terhelünk, akkor az nem lesz jó. Az adminisztrációs költségek drasztikusan nőnek és inkább lassulni fog, ahogy a versengő szálak kiéheztetik egymást.
A cikk még nem ért véget, kérlek, lapozz!