Invloed HyperThreading
Intels Xeon-processors hebben sinds een paar jaar HyperThreading aan boord: een feature die ervoor zorgt dat één core aan twee threads tegelijk kan werken. Vanaf de kant van de software ziet een core met HyperThreading ingeschakeld er (bijna) precies hetzelfde uit als twee losse cores, en in gunstige gevallen kan de feature dan ook redelijke prestatiewinsten opleveren, oplopend tot enkele tientallen procenten. Het werkt natuurlijk lang niet zo goed als twee echte cores, maar ieder beetje is natuurlijk mooi meegenomen. Het gevaar is echter dat het niet altijd winst oplevert, maar in sommige gevallen de prestaties ook negatief kan beïnvloeden. Oorzaken hiervoor moeten onder andere gezocht worden in het cache van de processor: wanneer twee threads met elkaar 'vechten' om ruimte in het cache lijden ze daar allebei onder. Uit onze test bleek dat de normale single-core Xeons geen problemen hadden met HyperThreading: de virtuele extra cores leveren een prestatievoordeel op van gemiddeld 8%.
De machine met dualcore Xeons (2,8GHz Paxvilles) vertoonde echter vreemde kuren: acht virtuele cores was kennelijk iets te veel van het goede en bij een concurrency van 7 of hoger stortte de snelheid volledig in. Zonder HyperThreading bleek dezelfde machine het wel goed vol te kunnen houden, dus de oorzaak moest in die hoek gezocht worden. We hebben deze bevindingen voorgelegd aan Dell en Intel, die beide hebben gezocht naar een verklaring. Uiteindelijk werd de schuld aan de software gegeven: de manier waarop MySQL 4.1 omgaat met meerdere threads zou ver van optimaal zijn, waardoor het pakket onder zware belasting in de problemen komt.

In MySQL 5.0 hebben de ontwikkelaars de schaalbaarheid verbeterd: het is duidelijk te zien dat het voordeel van HyperThreading voor de singlecore Xeon in stand is gehouden, maar ook dat de dualcore Xeon het met de nieuwe versie van de software een stuk beter volhoudt. Bij een concurrency van 40 of hoger is het echter wederom foute boel: met HyperThreading aan zakken de prestaties tot ver onder het niveau van dezelfde configuratie zónder virtuele cores.

De machine met dualcore Xeons (2,8GHz Paxvilles) vertoonde echter vreemde kuren: acht virtuele cores was kennelijk iets te veel van het goede en bij een concurrency van 7 of hoger stortte de snelheid volledig in. Zonder HyperThreading bleek dezelfde machine het wel goed vol te kunnen houden, dus de oorzaak moest in die hoek gezocht worden. We hebben deze bevindingen voorgelegd aan Dell en Intel, die beide hebben gezocht naar een verklaring. Uiteindelijk werd de schuld aan de software gegeven: de manier waarop MySQL 4.1 omgaat met meerdere threads zou ver van optimaal zijn, waardoor het pakket onder zware belasting in de problemen komt.

In MySQL 5.0 hebben de ontwikkelaars de schaalbaarheid verbeterd: het is duidelijk te zien dat het voordeel van HyperThreading voor de singlecore Xeon in stand is gehouden, maar ook dat de dualcore Xeon het met de nieuwe versie van de software een stuk beter volhoudt. Bij een concurrency van 40 of hoger is het echter wederom foute boel: met HyperThreading aan zakken de prestaties tot ver onder het niveau van dezelfde configuratie zónder virtuele cores.

Volgende pagina (Processors: Intel, AMD, single- en dualcore - 6/7)
