Inleiding
For your convenience, an
English translation of this article is available.
Sinds de introductie van de Opteron in april 2003 is het aandeel van AMD in de markt voor x86-servers gegroeid van een schamele drie procent naar ruim een kwart. Dit gebeurde natuurlijk niet zonder goede redenen: sowieso was het K8-ontwerp voor veel toepassingen sneller, maar het bleek ook zuiniger en beter schaalbaar te zijn dan zijn concurrenten. Bovendien liep de Opteron voorop met technieken zoals 64-bit extensies en dualcore, waardoor reviews keer op keer moesten concluderen dat de Xeon achter de feiten aan liep. Dit was natuurlijk pijnlijk voor Intel, maar bleek ook een goede motivatie te zijn om het een en ander drastisch te veranderen. Onder de codenaam 'Woodcrest' heeft het bedrijf hard gewerkt aan een nieuwe generatie serverchips en op 25 juni jongstleden werd het resultaat van die inspanningen officieel geïntroduceerd in de vorm van de Xeon 51xx-serie. In dit artikel zullen we bekijken wat men heeft gedaan in de poging om het tij te keren en beoordelen in hoeverre dat is geslaagd.
Net als in de vorige artikelen in deze serie zullen we gebruikmaken van onze zelf ontwikkelde benchmark gebaseerd op de database van Tweakers.net. Het hoofdonderwerp is ditmaal een dual 2,66GHz Woodcrest-server van Fujitsu-Siemens. Als vergelijkingsmateriaal gebruiken we de eerder besproken Socket F Opteron met DDR2-geheugen, aangezien deze tot zeker halverwege volgend jaar het paradepaardje van AMD zal zijn. We zullen Intels nieuwe Xeon voor de volledigheid echter ook vergelijken met twee andere chips die eerder de revue zijn gepasseerd, te weten de Socket 940 Opteron en de Sun UltraSparc T1.

Intels Xeon 51xx 'Woodcrest'
Intel profileert zich de laatste anderhalf jaar niet meer als leverancier van processors, maar als aanbieder van complete platforms. Naast de nieuwe serverprocessor introduceerde men dan ook een bijpassende chipset - codenaam 'Blackford' - die een einde probeert te maken aan de bandbreedteproblemen waar de vorige generatie Xeons mee worstelde. Dat gebeurt door middel van een dubbele bus en viervoudige geheugenkanalen. Om een indruk te krijgen van welk deel van de prestatiewinst veroorzaakt wordt door de nieuwe processor en welk deel door de chipset testen we ook de Xeon 50xx 'Dempsey', het laatste model gebaseerd op de oude Netburst-filosofie.
Post mortem: Netburst
Intels Netburst-architectuur is bijna zijn hele levensloop onderwerp van controverse geweest. De eerste iteratie - de Pentium 4 'Willamette' - werd op 20 november 2000 geïntroduceerd op snelheden tot en met 1,5GHz. Dit beloofde een grote sprong te worden boven de 1,0GHz van de Pentium III 'Coppermine' en de 1,2GHz van de Athlon 'Thunderbird', maar al snel kwam de wereld er achter dat de kloksnelheid niet meer het hele verhaal vertelde: de prestaties van de nieuwe chip stelden teleur en bovendien was het zowel voor Intel als voor de klant een dure grap. De Willamette-core was meer dan twee keer zo groot als zijn voorganger en kon alleen maar gebruikt worden in combinatie met het schaarse en dure Rambus RDRAM-geheugen. Een vroegtijdige wissel in sockets van 423 naar 478 pinnen hielp ook niet om de populariteit te vergroten.
Iets meer dan een jaar later - op 7 januari 2002 om precies te zijn - verscheen de tweede generatie Netburst met de codenaam 'Northwood'. In deze periode werden de kreukels van Willamette weggestreken, onder andere door de introductie van chipsets met ondersteuning voor DDR-geheugen, HyperThreading, een groter L2-cache en bredere acceptatie van de SSE2-instructies. Intels strategie om voor hoge kloksnelheid te gaan begon zelfs goed te werken: toen de voorsprong in frequentie tegen het einde van het jaar toenam tot meer dan 800MHz werd AMD diep de rode cijfers in gedreven. Eén probleem was er echter nog wel: het stroomverbruik was rap aan het stijgen. Northwood begon op 2,0GHz met een TDP van 54,3 watt, maar tegen de tijd dat de 3,06GHz bereikt werd was dit al opgevoerd tot 81,8 watt. Naar huidige maatstaven lijkt dit niet veel, maar destijds was het een record.

Gelukkig was er een oplossing voorhanden, althans, dat geloofde men destijds. De overstap van 130nm- naar 90nm-productie zou het stroomverbruik weer terug moeten brengen, genoeg om een verdere groeispurt richting 5,0GHz mogelijk te maken. De derde generatie Pentium 4 - codenaam 'Prescott' - was de core die dit had moeten doen, en was daarop al voorbereid door een lange pipeline van 31 stappen. Op dat moment ontplofte de Netburst-motor echter: door een onverwachte hoeveelheid lekkage vanuit de kleinere transistors bleef de beoogde stroombesparing uit. Hoewel dit voor alle chips (dus ook die van concurrenten) tot op zekere hoogte een rol speelde, was de Pentium 4 in het bijzonder kwetsbaar voor dit effect. Hogere kloksnelheid vereist namelijk meer activiteit van de transistors en hogere spanning, wat meer lekkage veroorzaakt. Het effect versterkt zichzelf bovendien op een kwadratische manier: als de chip warmer wordt lekt er nog meer stroom weg.
De gevolgen voor Intel waren groot. Toen de Prescott op 2 februari 2004 werd uitgebracht wist de nieuwe core geen verbetering in prestaties of zuinigheid te brengen. Het verzet van klanten tegen nog warmere processors was de doodsklap: ondanks redelijk succes om het ontwerp gedurende zijn levensloop zuiniger te maken konden de doelstellingen simpelweg niet gehaald worden. Dit gebeurde voor Intel zo ongeveer op het meest ongunstige moment dat maar denkbaar was: AMD had een paar maanden eerder de Athlon 64 geïntroduceerd en daarmee een sterk antwoord op Northwood neergezet, zowel op het gebied van prestaties als dat van zuinigheid. Zonder hogere kloksnelheid om naartoe te vluchten was de Pentium 4 een makkelijke prooi geworden, en dus moest Intel toekijken hoe zijn voorsprong als sneeuw voor de zon wegsmolt.

Intels toemalige CEO op zijn knieën om excuses aan te bieden voor het niet halen van de 4GHz
Achteraf praten is natuurlijk altijd makkelijk, maar het duurde daarna toch nog even voor het bedrijf accepteerde dat het Netburst-idee een doodlopend pad was. Op 8 mei 2004 ging de kogel door de kerk: men kondigde aan dat twee toekomstige generaties van de Pentium 4 (codenamen Tejas en Nehalem) waren geannuleerd, en dat men 'iets anders' ging doen met 'dualcore'. Geruchten waren talrijk, maar de optie om verder te bouwen op het ontwerp van de Pentium M was direct een van de meest populaire theorieën. De mobiele processor werd al een paar jaar onafhankelijk van Netburst ontwikkeld door een team in Haifa, Israël. Ondanks het feit dat hij niet specifiek voor desktops - laat staan servers - gebouwd was, wist hij toch indrukwekkende prestaties neer te zetten. In tegenstelling tot de Amerikaanse teams die met Pentium 4 bezig waren, hadden de Israëliërs bovendien de valkuilen van het alsmaar stijgende verbruik weten te ontwijken.
Al voor het ontsporen van de Pentium 4-ontwikkeling stond er een zuinige 64-bit, dualcore Pentium M op de planning met de codenaam Merom. De ontwikkeling van deze chip is volgens onbevestigde verhalen al in 2002 begonnen. Toch duurde het tot 9 april 2005 voor officieel bevestigd werd dat de Merom twee broertjes had gekregen: Conroe voor desktops en Woodcrest voor servers. Samen werden ze ook wel de NGMA genoemd: Next Generation Micro-Architecture. Weer bijna een jaar later - 9 maart jongstleden - werd de definitieve naam voor de nieuwe architectuur wereldkundig gemaakt: Core. Op de volgende pagina's zullen we bekijken welke verbeteringen deze te bieden heeft.
De Core-architectuur (1)
Voor we bekijken wat Core allemaal aan boord heeft, is het zinvol om eerst te bespreken wat het precies is. Volgens Intel is het een mix van de beste eigenschappen van Pentium 4 en Pentium M, maar er is niet veel technische kennis voor nodig om te zien dat de gelijkenis met laatstgenoemde veel groter is dan die met eerstgenoemde. Feitelijk zijn alleen features (zoals 64-bit extensies) van Netburst overgenomen, maar is er van het ontwerp geen spaan heel gelaten. Of het dan wel een Pentium M genoemd kan worden hangt af van het niveau waarop gekeken wordt. Hij is door hetzelfde team ontworpen en uit de eigenschappen blijkt duidelijk dat de architecten hun ervaring met eerdere projecten niet vergeten zijn. De filosofie is dus onmiskenbaar die van de eerdere mobiele chips, maar wie iets dichterbij kijkt komt echter snel genoeg een aantal ingrijpende nieuwe features tegen, die voldoende zijn om van een volledig nieuw ontwerp te kunnen spreken. De nieuwe features zijn door Intel grofweg verdeeld in vijf categorieën.
Wide Dynamic Execution
Core is gebouwd om tot vier instructies per klokcyclus te kunnen decoderen, uitvoeren en verwerken. Andere x86-chips zoals de Pentium 4, Pentium M en Athlon 64 gaan maximaal tot drie. Hoewel het in de praktijk erg moeilijk is om binnen één thread instructies te vinden die volledig onafhankelijk van elkaar uitgevoerd kunnen worden, is iedere verbetering van het gemiddelde natuurlijk welkom. Om de effectiviteit verder te verhogen doet Core aan 'fusion' van instructies: als twee opdrachten bij elkaar horen zullen ze door de hardware aan elkaar gesmolten worden. Dit verandert niets aan de hoeveelheid werk die uitgevoerd moet worden, maar zorgt er wel voor dat er iets efficiënter gewerkt kan worden, omdat er minder interne boekhouding nodig is.
Het koppelen vindt plaats op twee niveaus: op de interne instructieset van de processor (microfusion) en de externe instructieset (macrofusion). De eerste vorm werd ook al gebruikt door de Pentium M, maar is voor Core verbeterd om meer combinaties mogelijk te maken. Volgens Intel zorgt microfusion ervoor dat de processor intern 10% minder opdrachten hoeft te verwerken. Macrofusion werkt direct op de x86-opdrachten die binnenkomen en elimineert daar overbodige complexiteit, bijvoorbeeld door losse instructies 'compare' en 'jump' samen te voegen tot één nieuwe 'compare and jump'-instructie. Opvallend is dat macrofusion niet wordt gebruikt in de 64-bit-modus, mogelijk omdat er vanuit gegaan wordt dat moderne compilers überhaupt geen overbodige instructies meer genereren.

Smart Memory Access
Een van de meest innovatieve nieuwe features in de Core-architectuur te vinden is Memory Disambiguation. Om de correcte uitvoer van een stuk programma te garanderen moeten alle instructies in de juiste volgorde afgehandeld worden. Of - beter gezegd - het moet lijken alsof alle instructies in de juiste volgorde afgehandeld worden. Er zijn namelijk al jaren processors die 'stiekem' in een andere volgorde kunnen werken om zo betere prestaties te leveren. De eerste x86-chips die dat principe toepasten waren de K5 van AMD en de Intel Pentium Pro. Voor deze zogenaamde OoOE-ontwerpen is het echter van levensbelang om de schijn van sequentiële verwerking hoog te houden. Het is immers op zijn zachts gezegd onwenselijk dat een processor in zijn enthousiasme om instructies uit te voeren gaat werken met data die eigenlijk eerst nog gewijzigd moest worden.
In de praktijk is het bij lange na niet nodig om álle lees- en schrijfacties in de exacte volgorde van het programma uit te voeren. Een truc die Intel eerder heeft toegepast (en AMD ook in de K8L gaat gebruiken) is om leesacties alvast uit te voeren voor ze eigenlijk aan de beurt zijn, zodat de data sneller beschikbaar is. Schrijfacties gooien echter nog steeds roet in het eten: als er ook maar ergens een store-instructie in de pipeline zit waarvan het doelwit onbekend is, kan de processor niet het risico nemen om ondertussen iets te lezen. Programmeurs en compilers vermijden het wegschrijven en vervolgens weer inlezen van dezelfde data zo veel mogelijk (omdat het gewoon niet efficiënt is), maar een processor moet nu eenmaal met álle code juiste resultaten opleveren, ook al is deze niet optimaal. Dit was tot nu toe meer dan voldoende reden om leesacties te blokkeren zolang niet alle voorgaande schrijfacties waren afgehandeld.
De Core-architectuur lost dit probleem op met de zogenaamde Memory Disambiguator. Deze voorspelt het doelwit van nog uit te voeren schrijfacties en laat alle leesopdrachten die buiten de gevarenzone vallen toch voorgaan. Dat betekent dat instructies gemiddeld minder lang op data hoeven te wachten en de chip meer werk in dezelfde tijd kan verrichten. Voorspellingen van de Disambiguator zouden meer dan 90% nauwkeurig zijn, maar een kleine 10% missers betekent nog steeds dat de Core regelmatig met verkeerde data aan de slag gaat. Zodra dit wordt opgemerkt (wat overigens altijd gebeurt voor het resultaat permanent wordt) begint de verwerking gewoon weer opnieuw. Het systeem is dus enigzins te vergelijken met branch prediction, waarbij gegokt wordt naar welke tak van een if
-constructie er gesprongen moet worden. Meestal gaat het goed en wordt er tijd bespaard, maar soms gaat het ook fout en kost het extra moeite om de schade van de verkeerde gok te herstellen. Het is natuurlijk wel de bedoeling dat er netto winst mee gemaakt wordt, dus als de Disambiguator te veel fouten maakt in een bepaalde thread wordt hij automatisch uitgeschakeld.
De Core-architectuur (2)
Advanced Smart Cache
Core heeft een gedeeld L2-cache, wat afhankelijk van de precieze uitvoering 2MB of 4MB groot is. De twee kernen kunnen door elkaar opgevraagde gegevens gebruiken, waardoor de gemiddelde toegangstijd afneemt als ze aan dezelfde taak werken. De capaciteit van het cache wordt dynamisch verdeeld tussen de twee cores, dus als het nodig is kan één thread de volle mep voor zijn rekening nemen. Door het cache te delen wordt ook busbandbreedte bespaard, omdat de onderlinge communicatie via het L2 afgehandeld kan worden. De L1-caches van de twee cores zijn overigens ook met elkaar verbonden, maar Intel heeft op dit moment nog geen duidelijkheid gegeven over de functie van deze connectie.
Een dualcore Core-processor heeft in totaal acht prefetchers aan boord die samen met het ruime cache helpen om de latency te verlagen. Iedere core heeft er op L1-niveau twee voor data en één voor instructies, en nog eens twee worden er door de cores gedeeld in het L2. De reden om meerdere prefetchers voor hetzelfde cache te gebruiken is om verschillende toegangspatronen te kunnen herkennen. In tegenstelling tot oudere ontwerpen controleren de prefetchers van Core of de data die ze klaarzetten ook daadwerkelijk nuttig gebruikt wordt, zodat ze minder onnodige belasting van de bus veroorzaken en ook minder zinvolle gegevens per ongeluk uit het cache duwen. Verder krijgen leesopdrachten die uit de programmacode afkomstig zijn voorrang boven die van de verschillende prefetchers, waardoor het risico op een prestatieverslechtering door overenthousiaste prefetchers minimaal wordt.

Hoewel de latency van Core door het gebrek aan een geïntegreerde geheugencontroller nog steeds hoger is dan die van de K8, werkt de combinatie van het cache en de prefetchers zo goed dat zelfs verschillende latencybenchmarks (die specifiek zijn ontworpen om primitievere prefetchers te omzeilen) voor de gek worden gehouden. Het enige nadeel van de prefetchers is dat ze zo druk bezig kunnen zijn dat ze het stroomverbruik verhogen. Intel heeft daarom een optie ingebouwd om de agressiviteit in te stellen, waarbij de mobiele Merom van huis uit de mildste instellingen meekrijgt en Woodcrest als serverchip de zwaarste.
Intelligent Power Capability
Om Core efficiënter te maken dan zijn voorgangers wordt niet alleen 65nm-productietechniek gebruikt, maar vooral ook slimme ontwerptrucs: zo ongeveer ieder onderdeel van de core kan in- en uitgeschakeld worden. Het oppervlak is opgedeeld in enkele tientallen verschillende gebieden die alleen maar actief zijn op de momenten dat ze ook daadwerkelijk gebruikt worden. Sommige delen, zoals caches, bussen en buffers, kunnen zelfs gedeeltelijk worden uitgeschakeld. Normaalgesproken brengt het uitschakelen van onderdelen een vervelend nadeel met zich mee, namelijk dat het tijd kost om ze weer in te schakelen als ze nodig zijn. Hierdoor gaat de reactietijd omhoog en daar kunnen de prestaties onder lijden. Er is echter een systeem bedacht dat van te voren voorspelt wanneer het nodig is om een bepaald deel van de chip te activeren, zodat deze steeds net op tijd gereed zijn.

Advanced Digital Media Boost
Core is de eerste processor die 128-bits SSE-instructies in één klap kan verwerken. Eerdere ontwerpen moesten deze opsplitsen in twee brokken van 64 bits, wat sowieso minstens één extra kloktik vertraging betekent, maar ook voor de interne boekhouding minder efficiënt is dan gewoon één instructie uitvoeren. Door de brede datapaden voor multimedia kunnen er vier 64-bits flops per kloktik per core worden uitgevoerd, het dubbele van Netburst en K8. Tot slot zijn er onder de noemer SSE4 acht nieuwe multimedia-instructies toegevoegd die enkele specifieke toepassingen aan een prestatiewinst moeten kunnen helpen. Intel besteedt hier zelf echter zo weinig aandacht aan, dat we vermoeden dat het niets spectaculairs is.
Blackford-chipset
Behalve het feit dat de Netburst-filosofie een doodlopend pad bleek te zijn, kampten Intels serverprocessors ook met een ander probleem: een schrijnend tekort aan bandbreedte. De E7520 'Lindenhurst'-chipset - tot voor kort het topmodel voor twee sockets - had maar één 800MHz bus, wat betekende dat er in een machine met dualcores maar 1,6GB/s per core beschikbaar was. Ongeveer twee maanden voor Woodcrest werd aangekondigd verbeterde Intel die situatie aanzienlijk met de introductie van de Blackford-chipset. Met zijn dubbele bus en vier geheugenkanalen leverde zelfs de eerste versie al 4,3GB/s per core. Voor de Woodcrest werd de kraan echter nog iets verder opengedraaid door de busfrequentie op te hogen van 1066MHz naar 1333MHz. Dit betekent dat iedere core vandaag ruim drie keer zoveel bandbreedte tot zijn beschikking heeft als aan het begin van dit jaar het geval was.
| Paxville | Dempsey | Woodcrest | Socket 940 | Socket F |
---|
Busfrequentie | 800MHz | 1066MHz | 1333MHz | - | - |
Aantal bussen | 1 | 2 | 2 | - | - |
Busbandbreedte | 6,4GB/s | 17,1GB/s | 21,3GBs | - | - |
Geheugen | DDR2 | FBD | FBD | DDR | DDR2 |
Aantal kanalen | 2 | 4 | 4 | 4 | 4 |
Frequentie | 400MHz | 533MHz | 667MHz | 400MHz | 667MHz |
Geheugenbandbreedte | 6,4GB/s | 17,1GB/s | 21,3GB/s | 12,8GB/s | 21,3GB/s |
Bandbreedte per core | 1,6GB/s | 4,3GB/s | 5,3GB/s | 3,2GB/s | 5,3GB/s |
In de tabel is te zien dat Woodcrest en Socket F in theorie evenveel geheugenbandbreedte hebben. Toch zullen er in de praktijk verschillen zijn in de effectief beschikbare hoeveelheid. De Opterons hebben een decentrale architectuur (NUMA) wat betekent dat iedere processor twee kanalen voor zichzelf heeft en de rest van het geheugen alleen via zijn buurman kan benaderen. De onderlinge communicatie gebeurt met een HyperTransport-link die in iedere richting 4GB/s kan leveren. Als de chip - in een ongunstig geval - alleen maar data nodig heeft die zich 'aan de andere kant' bevindt is de effectieve bandbreedte per core dus nog maar 2GB/s. Om die reden is het belangrijk dat operating systemen ervoor zorgen dat threads zodanig worden verdeeld dat ze dichtbij hun data draaien, iets wat niet altijd even makkelijk is.
Ook het systeem van Intel kent overigens een valkuil. In systeem met meerdere sockets is het van wezenlijk belang dat de caches van de processors synchroon blijven met elkaar. Het mag immers niet voorkomen dat een core een berekening uitvoert met data uit het cache die ondertussen door een andere core gewijzigd is. Er zijn verschillende manieren om deze zogeheten 'cache coherentie' te bewaken, maar alle vereisen communicatie tussen de cores onderling. Bij AMD verloopt deze communicatie via HyperTransport en is er dus geen nadelig effect voor de (lokale) geheugenbandbreedte. Intel verstuurt deze data echter over de bus, waardoor niet de volle capaciteit gebruikt kan worden voor het geheugen.

De 5000P 'Blackford' chipset
Woodcrest verlicht de last van het coherentieverkeer overigens wel aanzienlijk ten opzichte van Paxville en Dempsey door twee cores één cache te laten delen. Hierdoor is het niet meer noodzakelijk om de bus te belasten voor onderlinge communicatie binnen één socket. Met de komst van quadcore 'Clovertown' - die wordt opgebouwd uit twee dualcores - zullen de twee chips in hetzelfde socket waarschijnlijk wel weer over de bus moeten gaan om elkaar te bereiken, maar de chipset kan dan in ieder geval voorkomen dat de processor in het andere socket daarop moet wachten.
Er zijn twee verschillende versies van Blackford, 5000P en 5000V. Laatstgenoemde is een iets goedkopere versie die beperkt is in zijn maximale geheugencapaciteit en -features. Hij ondersteunt twee kanalen met een maximum van 32GB, in plaats van vier kanalen en 64GB. Het zogenaamde 'memory mirroring' - waarbij data dubbel wordt opgeslagen om fouten op te kunnen merken - wordt wel door 5000P maar niet door 5000V ondersteund. Beide hebben wel 'memory RAID', een feature die eveneens gegevens dupliceert op verschillende plaatsen, maar dan met het doel om ze te kunnen herstellen in het geval dat er een chip of module uitvalt. Tot slot is er nog een derde chipset, de 5000X 'Greencreek'. De specificaties hiervan zijn grotendeels identiek aan die van 5000P, maar hij heeft een PCI Express x16-slot om er een fatsoenlijke videokaart in te kunnen prikken en een voor workstations geoptimaliseerde geheugencontroller. Deze biedt een iets hogere bandbreedte in ruil voor een iets hogere latency.
DDR2 vs. FB-DIMM
De Blackford- en Greencreek-chipsets zijn de eerste die gebruikmaken van een nieuw type geheugenmodule dat is bedacht door een grote groep bedrijven, aangevoerd door Intel en IBM. In tegenstelling tot een normale DIMM gebuikt een zogeheten FB-DIMM geen parallelle bus om data over te sturen, maar een seriële p2p-verbinding. Eén van de voornaamste redenen hiervoor is dat het moeilijk is gebleken om een parallelle bus op te schalen naar hoge snelheden en grote aantallen modules. Met DDR2 kunnen er bijvoorbeeld nog vier repen per kanaal geplaatst worden op 400MHz en 533MHz, maar niet meer dan twee per kanaal op 667MHz en 800MHz. Voorspeld wordt dat volgend jaar met DDR3 het punt bereikt zal worden waarop nog maar één reep per kanaal geplaatst kan worden. Vooral voor servers is dat geen prettige situatie, omdat de maximale capaciteit erdoor beperkt wordt en er duurdere modules nodig zijn om een bepaald aantal gigabytes te halen. FB-DIMM ondersteunt een comfortabele acht modules per kanaal en maakt dus korte metten met dit probleem.
Een tweede voordeel van deze techniek is dat de controller niet meer rechtstreeks met de geheugenchips praat, maar alleen nog met de bufferchip (AMB - Advanced Memory Buffer). Dit betekent dat de geheugencontroller geen weet meer hoeft hebben van het soort chips dat aan de andere kant van de buffer gebruikt wordt. Op dit moment gebruikt al het beschikbare FBD-geheugen DDR2-chips, maar in de toekomst kan dat pijnloos vervangen worden voor een ander soort, zoals bijvoorbeeld DDR3 of iets exotischers als XDR. Hiervoor zijn dus niet langer nieuwe moederborden of sockets nodig.
Een derde motivatie om over te stappen is dat FB-DIMM op het moederbord maar 69 sporen per kanaal gebruikt. Voor een gewoon DDR2-kanaal zijn 240 sporen nodig, die tot frustratie van ontwerpers van moederborden ook nog eens (bijna) precies even lang moeten zijn. Wie zijn computer openmaakt en het stuk tussen processor en de geheugenbanken bekijkt zal vaak zien dat bepaalde banen rare kronkels maken, bedoeld om het signaal te vertragen. Bij FB-DIMM compenseert de chipset voor verschillen in lengte, en gecombineerd met het kleine aantal sporen betekent dat in de praktijk dat er twee tot drie keer zoveel kanalen aangelegd kunnen worden met gelijke of minder complexiteit.

Links: één kanaal DDR2, exclusief stroom | Rechts: twee kanalen FB-DIMM, inclusief stroom
Het laatste punt wat men heeft aangepakt is de betrouwbaarheid: in plaats van alleen ECC-foutcorrectie toe te passen op de data gebeurt dat nu ook op adressen en opdrachten. Verder kan een transactie in het geval er een fout optreedt automatisch opnieuw geprobeerd worden, zonder direct paniek te veroorzaken bij de processor of het besturingssysteem. Daarnaast wordt hotswapping ondersteund en kunnen datapaden die onbetrouwbaar blijken te zijn uitgeschakeld worden, waardoor de bandbreedte afneemt maar het systeem wel in de lucht blijft.
Niet alles aan FB-DIMM is positief: een duidelijk nadeel van de techniek is bijvoorbeeld de hogere latency. Er komt natuurlijk sowieso een buffer als extra stap tussen de processor en het geheugen te zitten, maar het ergste is dat de controller alleen maar een rechtstreekse verbinding heeft met de eerste reep op het kanaal. De rest van de modules is alleen via-via bereikbaar, waarbij voor iedere stap gerekend moet worden op een vertraging van 3 tot 5 nanoseconden (2 à 3 cycles). Tegen de tijd dat de achtste reep op een kanaal bereikt wordt is er vanuit de processor gezien dus al een kleine eeuwigheid voorbij gegaan. De NUMA-architectuur van de Opteron heeft een zelfde soort probleem als er data moet worden opgevraagd uit een module die is gekoppeld aan het andere socket: in dat geval moet er 30 nanoseconde (ongeveer 20 cycles voor DDR2-667) bij de toegangstijd worden opgeteld.
Voor de Xeon DP gaan de meeste fabrikanten overigens meer in de breedte dan in de diepte. De populairste configuratie voor Blackford-servers is vier kanalen met ieder twee of drie repen, dus het extreme geval van acht per kanaal is in de praktijk nog niet verschenen. Onder zware belasting wordt het nadelige effect van de hogere latency per transactie ook weer gecompenseerd door het feit dat er meerdere acties simultaan uitgevoerd kunnen worden. Zo kan er tegelijkertijd gelezen en geschreven worden en kunnen er per kloktik opdrachten naar drie verschillende repen per kanaal verstuurd worden. Hierdoor kan de gemiddelde latency onder zware belasting weer lager worden dan die van DDR2, maar dat zal lang niet voor alle toepassingen het geval zijn.

Een ander nadeel van de buffer is dat deze het aardig druk kan krijgen: met een effectieve transmissiesnelheid van 3,2GHz (PC2-4200F) of 4,0GHz (PC2-5300F) in twee verschillende richtingen zal het voor weinig mensen nog een verrassing zijn dat het stroomverbruik van de reep er aanzienlijk door stijgt. Uit onze metingen blijkt er voor iedere extra (533MHz) module ongeveer 7,6 watt uit het stopcontact wordt getrokken, ongeacht het niveau van belasting. De 1GB DDR2-667-modules van onze Socket F Opteron hadden daarentegen idle 1,9 watt en onder belasting 2,4 watt nodig, waardoor we kunnen stellen dat iedere FB-DIMM ruim 5 watt aan het totale verbruik van de server toevoegt, wat voor een totaal van acht repen toch een dikke 40 watt is.
Verwacht wordt wel dat naar mate men meer ervaring krijgt met het ontwerp en de productie van de buffers het stroomverbruik ervan omlaag zal gaan, maar aan de andere kant zal de frequentie ook omhoog moeten om snellere geheugensmaken te ondersteunen, waardoor het altijd een strijd zal blijven. De geheugencontroller lijkt in ieder geval niet meer zo heel veel stroom te gebruiken nu de bufferchips een hoop functies overnemen. Het maximum verbruik van de 5000P-chipset met vier kanalen wordt op 30 watt gespecificieerd, maar ieder actief kanaal voegt slechts 1,75 watt toe, waardoor het erop lijkt dat een groot deel van de verbruik van de northbridge in andere functies zit.
Testplatform: Woodcrest en Dempsey
Om Woodcrest en Dempsey aan de tand te kunnen voelen mochten we van Fujitsu-Siemens een Primergy RX300 S3 lenen, een 19"/2U rackmount server die volgens de marketing van het bedrijf geschikt is voor 'veeleisende taken op het gebied van ERP- en e-commerce'. Het moederbord is gebaseerd op de 5000P-chipset en is voorzien van twee LGA771-sockets voor Dempsey of Woodcrest, acht geheugenbanken, één keer PCI Express x8, twee keer PCI Express x4 en twee keer 133MHz PCI-X. Standaard treffen we verder een achtpoorts SAS-controller aan die ondersteuning biedt voor RAID-levels 0 en 1. Optioneel kan deze worden uitgebreid met 256MB cache en ondersteuning voor de RAID-levels 5, 10 en 50. Tot het basisgereedschap behoren verder een IDE-connector voor een eventuele dvd/cd-drive en dual gigabit ethernet. In de behuizing is ruimte gemaakt voor twee 600 watt voedingen, zes harde schijven, acht koelers, een optische drive en een diskettestation. Besturingssystemen die worden ondersteund zijn Windows Server, VMware ESX Server, Suse Enterprise Server en RedHat Enterprise Linux. Uitgebreide specificaties zijn hier te downloaden.




Net als de machines van Sun die we eerder onder de loep namen kan de Fujitsu-machine op afstand beheerd worden met behulp van een ingebouwde webapplicatie die RemoteView heet. Hiermee kan uitgebreide informatie over de hardware worden bekeken, en kunnen er op verschillende manieren waarschuwingen worden verstuurd als er iets mis dreigt te gaan.

Klik op de screenshot voor een grotere versies. Meer plaatjes zijn
hier te vinden.
Bij onze machine kregen we vier Xeon-processors, twee van het type 5080 en twee van het type 5150. Hoewel de modelnummers niet zo gek ver uit elkaar liggen is het verschil in specificaties toch bijna als dag en nacht: de eerste is het topmodel uit de oude stal en de tweede het op een na snelste product uit de nieuwe serie. De Woodcrests bleken overigens samples te zijn van de B1-stepping in plaats van de commercieel beschikbare revisie B2, maar het is niet te verwachten dat deze merkbaar beter of slechter is.
Xeon | 5080 | 5150 |
---|
Codenaam | Dempsey | Woodcrest |
Architectuur | Netburst | Core |
Transistors | 374 miljoen | 291 miljoen |
Die-size | 161mm² | 143mm² |
Stepping | C1 | B1 |
![]() |
---|
|
Kloksnelheid | 3,73GHz | 2,66GHz |
Bus | 1066MHz | 1333MHz |
L2-cache | 2x2MB | 4MB |
TDP | 130W | 65W |
![]() |
---|
Prijs | $851 | $690 |
Voor beide processors is hetzelfde geheugen gebruikt: volledig gebufferd DDR2-533 met een CAS-latency van vier tikken (PC2-4200F CL4). We gebruikten in totaal acht repen - zes keer 1GB en twee keer 512MB - voor een totale capaciteit van 7GB.
Testplatform: Socket F en overigen
De resultaten van de Opteron met DDR2 die in deze review gebruikt worden zijn dezelfde als al eerder in een artikel werden gepubliceerd. Ze zijn verkregen met een MSI K9SD Master-A8R en twee dualcore Socket F Opterons-processors op 2,4GHz. De plank gebruikt een chipset van Serverworks en ondersteunt één keer PCI Express x8, één keer 133MHz PCI-X en één keer gewoon PCI. Een vierde slot kan door de klant zelf gekozen worden: afhankelijk van de gebruikte riserkaart verandert het in een extra PCI Express x8-aansluiting of een HTX-aansluiting (HyperTransport).
Aan boord vinden we twee keer gigabit ethernet en acht keer SATA (vier van de Serverworks-chipset met ondersteuning voor RAID 0 en 1, en vier van een Adaptec AIC-8130 die ingesteld kan worden op RAID 0, 1 en 10). Een geïntegreerde ATi Radeon Mobility zorgt voor de videobeelden. Het bord valt echter vooral op door zijn ruime aantal geheugenslots, zestien stuks in totaal. Vanwege stabiliteitsproblemen met onze - pre-productie - hardware lukte het helaas niet om meer dan vier repen aan de praat te krijgen. Uiteindelijk is er dus getest met slechts 4GB RAM, minder dan de rest van de systemen tot hun beschikking hadden. Uit de weinige resultaten die we wel met de Socket F-opstelling met 8GB konden krijgen kunnen we concluderen dat het prestatieverlies veroorzaakt door de lagere geheugencapaciteit rond de twee procent ligt, iets om rekening mee te houden tijdens het bekijken van de grafieken.



Naast de Socket F-plank zullen we in dit artikel ook resultaten van twee andere bekende gezichten tegenkomen, namelijk de Sun X4200 en T2000 uit onze UltraSparc T1 vs. Opteron review. Voor de volledigheid zetten we hier nog even alle specificaties op een rijtje:
Merk | Intel | Intel | AMD | AMD | Sun |
---|
Processor | Xeon | Xeon | Opteron | Opteron | UltraSparc |
Model | 5080 | 5150 | 2216 | 280 | T1 |
Codenaam | Dempsey | Woodcrest | Santa Rosa | Italy | Niagara |
Architectuur | Netburst | Core | K8 | K8 | Sparc |
![]() |
---|
Kloksnelheid | 3,73GHz | 2,66GHz | 2,4GHz | 2,4GHz | 1,0GHz |
Socket type | 771 (J) | 771 (J) | 1207 (F) | 940 | 1933 |
Bus | 1066MHz | 1333MHz | - | - | - |
L2-cache | 2x2MB | 4MB | 2x1MB | 2x1MB | 3MB |
TDP | 130W | 65W | 95W | 95W | 79W |
Prijs | $851 | $690 | $698 | $851 | - |
![]() |
---|
Servermerk | Fujitsu | Fujitsu | MSI | Sun | Sun |
Servertype | RX300 S3 | RX300 S3 | K9SD Master | Fire X4200 | Fire T2000 |
Hoogte | 2U | 2U | - | 2U | 2U |
Aantal sockets | 2 | 2 | 2 | 2 | 1 |
Aantal cores | 4 | 4 | 4 | 4 | 8 |
![]() |
---|
Geheugentype | FBD | FBD | DDR2 | DDR | DDR2 |
Kanalen | 4 | 4 | 4 | 4 | 4 |
Frequentie | 533MHz | 533MHz | 667MHz | 400MHz | 533MHz |
CAS (cycles) | 4 | 4 | 5 | 3 | 4 |
CAS (nanoseconden) | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 |
Capaciteit | 7GB | 7GB | 4GB | 8GB | 16GB |
![]() |
---|
Besturingssysteem | Linux 2.6 | Linux 2.6 | Linux 2.6 | Linux 2.6 | Solaris 10 |
![]() |
---|
Opslagcontroller | Areca | Areca | Areca | Areca | LSI |
Type | ARC-1120 | ARC-1120 | ARC-1120 | ARC-1120 | SAS1064 |
Cache | 128MB | 128MB | 128MB | 128MB | - |
Interface | PCI-X | PCI-X | PCI-X | PCI-X | PCI-X |
Schijven | Raptor 73GB | Raptor 73GB | Raptor 73GB | Raptor 73GB | SAS 73GB |
Aantal disks | 2 | 2 | 2 | 2 | 2 |
RAID | JBOD | JBOD | JBOD | JBOD | JBOD |
Benchmarkbeschrijving
Het doel van onze benchmark is het simuleren van de belasting die Tweakers.net (exclusief forum) onder normale omstandigheden veroorzaakt op de database. De productieversie - degene die net heeft geholpen tijdens het bakken van deze pagina - draait een MySQL 4.0-installatie met bijna tweehonderd tabellen, die sterk variëren in grootte (van enkele kilobytes tot enkele gigabytes) en mate van activiteit. De database draait op een toegewijd systeem en krijgt zijn opdrachten toegeworpen vanuit een loadbalanced cluster van webservers. Deze scheiding van data en (web)applicatie is een klassiek 'two-tier' patroon.
De webservers zijn voorzien van PHP 4.4 en maken gebruik van de standaard MySQL-bibliotheken. Afhankelijk van welke pagina er door een bezoeker wordt opgevraagd zal deze verschillende queries op de database afschieten, waarvan de complexiteit sterk uiteenloopt. Sommige opdrachten werken op een enkele tabel, andere op vier of meer. De WHERE
-clausules zijn doorgaans echter vrij kort; in de meeste gevallen wordt er alleen gefilterd op een bepaalde key (zoals het nummer van een nieuwsbericht of product). In enkele gevallen wordt er ook nog gesorteerd of gepagineerd.
In de benchmark is doelbewust het reguliere onderhoudswerk weggelaten, enerzijds om de tijdsduur van de test te beperken en anderzijds om het aantal schrijfoperaties (UPDATE
, DELETE
en INSERT
) te minimaliseren, zodat het opslagsysteem geen belangrijke invloed heeft op de prestaties. Het actieve deel van de database is enkele gigabytes groot, waardoor systemen met 4GB tot 8GB de volledige werkset in het geheugen kunnen houden, en er zelfs met 2GB nog weinig schijfactiviteit is. De nadruk komt hierdoor echt te liggen op de processors en het geheugen. Een ander verschil met de productieomgeving is dat er tijdens de test hele series van requests in één batch worden uitgevoerd, terwijl er normaal voor iedere pagina een nieuwe verbinding met de database gelegd zou worden. Door deze stap weg te snijden kunnen we de database zwaarder en beter gecontroleerd belasten.

De testdatabase is een back-up van de productiedatabase die ongewijzigd is ingeladen in MySQL 4.1.20 en 5.0.20a. Eveneens is hij geïmporteerd in een cvs-versie van PostgreSQL 8.2, die voor zover wij hebben kunnen ondervinden volledig stabiel is. Voor laatstgenoemde zijn enkele indices verplaatst om betere prestaties te krijgen en waren kleine wijzigingen van datatypes nodig. De testopstelling bestaat - naast de server die op dat moment onder vuur wordt genomen - uit drie machines. Twee webservers van Appro (dual Xeon 2,4GHz met 1GB geheugen) om de requests te genereren en een derde machine om de resultaten weg te schrijven. Alles is aan elkaar geknoopt met gigabit ethernet.
Een 'bezoeker' bestaat in onze test uit een serie van pageviews die worden afgehandeld door Apache 2.2 en PHP 4.4. Gemiddeld bestaat een serie requests uit ongeveer 115 stuks; de variatie zit hem in het feit dat er met een bepaalde kans een reactie wordt gegeven of prijs wordt ingevoerd. Om precies te zijn vraagt iedere 'bezoeker' de volgende pagina's op, waarbij tenzij anders vermeld willekeurig wordt gekozen:
Aantal | Omschrijving |
---|
34 | Standaard frontpage |
1 | Dynamische frontpage (abonneefunctie) |
18 | Meest recente nieuwsberichten |
7 | Willekeurige nieuwsberichten |
2 | Reviews |
13 | Categorie-overzichten Pricewatch |
14 | Prijsoverzichten Pricewatch |
2 | Advertenties (V&A) |
2 | Productsurveys |
6 | Meuktracker-updates |
14 | XML-feeds |
![]() |
---|
5% kans | Nieuwe prijs invoeren |
2,5% kans | Reactie posten bij het meest recente bericht |
Hoewel dit patroon niet helemaal natuurgetrouw is, denken we dat het wel een acceptabele benadering van de realiteit is, en in ieder geval één die zwaar en gevarieerd genoeg is om de database te laten zweten. De requests worden volledig willekeurig door elkaar gehusseld om een onvoorspelbaar patroon te krijgen en vervolgens afgevuurd. Er wordt zo min mogelijk gedaan met de antwoorden die ontvangen worden, om te voorkomen dat de webservers een bottleneck gaan vormen. Het uiteindelijke resultaat is het aantal pageviews dat in precies tien minuten tijd uitgevoerd wordt (gemeten door Apache-bench). Hoewel niet iedere pagina hetzelfde is, worden er zelfs tijdens de allertraagste runs nog ruim tienduizend opgevraagd, waardoor we ons statistisch gezien behoorlijk veilig kunnen voelen over de vergelijkbaarheid van de resultaten.
Tijdens een complete sessie worden runs uitgevoerd met een wisselend aantal gelijktijdige bezoekers, oplopend van één tot honderd stuks. Iedere webserver simuleert daarbij de helft van de bezoekers. Het startschot wordt steeds gegeven vanaf de databasemachine zelf, om zo precies de begin- en eindtijd te kunnen registeren. Het wordt overwogen om dit in de toekomst vanaf een apart controlesysteem te gaan doen, maar naar verwachting heeft dat nauwelijks invloed op de resultaten. Iedere sessie wordt afgetrapt door een (niet meetellende) opwarmronde met 25 gelijktijdige bezoekers om het geheugen en caches alvast te vullen. De eerste run wordt hierdoor niet onnodig benadeeld. Na iedere run wordt de database weer opgeschoond door de nieuw ingevoerde reacties en prijzen weer te verwijderen, en in het geval van PostgreSQL een 'vacuum'-commando te geven. Daarna krijgt de machine dertig seconden rust om zich voor te bereiden op de volgende aanval.
Invloed HyperThreading
HyperThreading is altijd al een enigszins omstreden feature geweest, omdat het theoretische voordeel ervan alleen bereikt kan worden door een aantal praktische nadelen te ontwijken, waar niet iedere applicatie even goed in slaagt. In ons eerste artikel moesten we concluderen dat MySQL en virtuele cores geen goede combinatie was, maar de precieze technische reden daarvan was niet duidelijk. Omdat Blackford toch een drastische herziening van het platform is en Dempsey - hoewel nog steeds gebaseerd op Netburst - wel veel sneller is, hebben we voor dit artikel nogmaals onderzocht of HyperThreading nuttig kan zijn voor onze situatie.
De resultaten zijn dit keer niet consequent. Voor MySQL lijkt de feature in eerste instantie wel winst op te leveren: zolang er één of twee cores worden gebruikt zijn de prestaties gemiddeld meer dan 10% beter, geen onaardig resultaat. Er ontstaan echter problemen als er met vier cores gewerkt wordt: versie 4.1.20 verliest dan gemiddeld 7% en 5.0.20a gaat zelfs meer dan 20% trager draaien als HyperThreading aan staat.


PostgreSQL is een heel ander verhaal. Het pakket had in ons eerdere artikel over de Sun UltraSparc T1 al bewezen beter op te schalen dan MySQL, maar nu blijkt ook dat het geen enkel probleem heeft met HyperThreading. Gemiddeld over belastingen van 25 gelijktijdige bezoekers en meer presteert het ruim 8% beter als de feature wordt ingeschakeld.

Normaalgesproken houden we tijdens het testen het liefst zo veel mogelijk instellingen gelijk, maar de uiteenlopende resultaten van HyperThreading waren te groot om te negeren. Om die reden hebben we ervoor gekozen om in de rest van dit artikel de MySQL-benchmarks zonder HyperThreading te tonen en PostgreSQL-benchmarks met HyperThreading. We gaan er van uit dat een competente serverbeheerder voor zichzelf zou testen of het inschakelen zinvol is voor zijn applicatie(s), en kiezen voor onze benchmarks dus ook de beste optie.
Opteron vs. Dempsey
Het eerste waar we naar willen kijken is hoe Xeon Dempsey het doet tegenover de Opteron. Hierdoor kunnen we namelijk een goed beeld krijgen van hoe de oude Netburst-architectuur zich gewapend met een goede chipset houdt tegenover de concurrentie. Dat blijkt nog steeds niet zo heel goed te zijn: de 2,4GHz Opteron is onder zware belasting gemiddeld 12% sneller dan de 3,73GHz Demspey in MySQL 4.1.20. In MySQL 5.0.20a is het verschil iets kleiner, maar 9% is natuurlijk nog steeds een onmiskenbare overwinning voor AMD. Toch is de voorsprong van de Opteron lang niet meer zo groot als in het begin van dit jaar, toen de oude Xeon 'Paxville' in combinatie met de Lindenhurst-chipset de enige concurrent was. De bijna drievoudige bandbreedte van Blackford doet dus zelfs zonder Woodcrest een hoop goed: het levert nog niet direct een overwinning op, maar men hoeft zich in ieder geval een stuk minder te schamen.


In PostgreSQL zet Dempsey een ruime overwinning tegenover de Opteron. De reden hiervoor lijkt - buiten de ruim 1,3GHz hogere klok van de Xeon - voornamelijk een goede benutting van HyperThreading te zijn: met ieder één core ingeschakeld liggen de prestaties van de twee nog dicht bij elkaar, maar tijdens de stappen naar twee en vier cores wint de Xeon duidelijk meer terrein dan de Opteron. Uiteindelijk is het Intel-systeem onder zware belasting maar liefst 22% procent sneller dan het AMD-systeem.

Al met al zet Dempsey een redelijk resultaat neer, maar het moet in acht worden genomen dat het hier gaat om een vergelijking tussen de snelste Dempsey en een subtop Opteron, waarbij de AMD-chip met 4GB extra geheugen ook nog iets beter had kunnen scoren. Intels nieuwe chipset maakt een einde aan de beschamende achterstand die we aan het begin van dit jaar moesten constateren, maar in combinatie met de Netburst-Xeon kunnen we ook nog niet van een (overtuigende) voorsprong spreken.
Woodcrest vs. Dempsey
Blackford heeft een solide basis gelegd in combinatie met Demspey, dus nu het is tijd om te kijken wat Woodcrest nog als extra te bieden heeft. Dat blijkt niet kinderachtig te zijn: onder zware belasting doet hij het gemiddeld 39% beter in MySQL 4.1.20 en 42% beter in MySQL 5.0.20a. Het is simpelweg geen eerlijke strijd meer: twee Woodcrest-cores op 2,66GHz verslaan vier Dempsey-cores op 3,73GHz met een vinger in hun neus. Wel zijn we enigszins teleurgesteld in het schaalgedrag van de nieuwe architectuur, want de stap van twee naar vier cores levert niet meer dan 15% betere prestaties op. Hoewel MySQL in het algemeen niet zo goed op wil schalen zit Woodcrest relatief gezien nog steeds aan de lage kant. Mogelijk kan dit worden opgelost door sneller geheugen te gebruiken: voor Woodcrest zijn namelijk dezelfde 533MHz-repen gebruikt als voor Dempsey, terwijl 667MHz-repen een kwart meer bandbreedte zouden bieden en - wellicht belangrijker - synchroon zouden lopen met de 1333MHz bus.


In PostgreSQL zette Dempsey al goede cijfers neer, en Woodcrest weet deze niet ver meer te overtreffen. Toch is het resultaat niet slecht, want ondanks het feit dat Woodcrest geen HyperThreading heeft (iets waar de Dempsey wel 8% voordeel uit haalt) scoort hij gemiddeld nog steeds 11% hoger. Bovendien heeft de nieuwe Xeon nog iets meer speelruimte: onze 2,66GHz-versie van Woodcrest is niet het topmodel, terwijl de 3,73GHz Dempsey wel (prijs)lijstaanvoerder is van de Netburst-partij. Ook hier zou sneller geheugen wellicht nog betere cijfers op kunnen leveren.
Woodcrest vs. Opteron
Samenvatting resultaten (prestaties)
De samenvatting van de testresultaten is gebaseerd op de gemiddelden van cijfers verkregen onder zware belastingen (van 25 tot en met 100 gelijktijdige gebruikers). De reden om de lichtere belastingen weg te laten is om ieder systeem de kans te geven om zijn maximale potentiëel te bereiken en de verschillen dus beter zichtbaar te maken dan wanneer ook de 'opstartfase' zou worden meegenomen. De getallen zijn niet langer pageviews per seconde zoals in de grafieken op voorgaande pagina's, maar het totaal wat tijdens een volledige run van tien minuten is gehaald.
 |
 | Gemiddelde prestaties MySQL 4.1.20 - concurrency 25+ |  |
 |
 | Woodcrest |   201337 |  |
 |
 | Opteron (DDR) |   179714 |  |
 |
 | Opteron (DDR2) |   162609 |  |
 |
 | Dempsey |   145327 |  |
 |
 | Dempsey-HT |   135615 |  |
 |
 | UltraSparc T1 |   92125 |  |
 |
 |
 | Gemiddelde prestaties MySQL 5.0.20a - concurrency 25+ |  |
 |
 | Woodcrest |   217675 |  |
 |
 | Opteron (DDR) |   178866 |  |
 |
 | Opteron (DDR2) |   167101 |  |
 |
 | Dempsey |   153747 |  |
 |
 | Dempsey-HT |   121594 |  |
 |
 | UltraSparc T1 |   53997 |  |
 |
 |
 | Gemiddelde prestaties PostgreSQL 8.2-dev - concurrency 25+ |  |
 |
 | Woodcrest |   295083 |  |
 |
 | Dempsey-HT |   264699 |  |
 |
 | Dempsey |   241023 |  |
 |
 | Opteron (DDR) |   219639 |  |
 |
 | Opteron (DDR2) |   216108 |  |
 |
 | UltraSparc T1 |   177907 |  |
 |
In de volgende tabellen worden de relatieve prestaties van Woodcrest, Dempsey en Socket F weergegeven. Deze zijn gebaseerd op dezelfde cijfers als de tabellen hierboven en moeten gezien worden als een procentuele benadering van de prestaties van één processor ten opzichte van de rest. Het getal 1,39 hieronder in de eerste tabel betekent bijvoorbeeld dat Woodcrest 1,39 keer de prestaties biedt van Dempsey in MySQL 4.1.20, ofwel dat hij 39% sneller is.
Woodcrest | MySQL 4.1.20 | MySQL 5.0.20a | PostgreSQL 8.2-dev | Gemiddeld |
---|
Dempsey | 1,39 | 1,42 | 1,11 | 1,31 |
Opteron (DDR) | 1,12 | 1,22 | 1,34 | 1,23 |
Opteron (DDR2) | 1,24 | 1,30 | 1,37 | 1,30 |
UltraSparc T1 | 2,19 | 4,03 | 1,66 | 2,63 |
Dempsey | MySQL 4.1.20 | MySQL 5.0.20a | PostgreSQL 8.2-dev | Gemiddeld |
---|
Woodcrest | 0,72 | 0,71 | 0,90 | 0,78 |
Opteron (DDR) | 0,81 | 0,86 | 1,21 | 0,96 |
Opteron (DDR2) | 0,89 | 0,92 | 1,22 | 1,01 |
UltraSparc T1 | 1,58 | 2,85 | 1,49 | 1,97 |
Socket F | MySQL 4.1.20 | MySQL 5.0.20a | PostgreSQL 8.2-dev | Gemiddeld |
---|
Woodcrest | 0,81 | 0,77 | 0,73 | 0,77 |
Dempsey | 1,12 | 1,09 | 0,82 | 1,01 |
Opteron (DDR) | 0,9 | 0,93 | 0,98 | 0,94 |
UltraSparc T1 | 1,77 | 3,09 | 1,21 | 2,02 |
Als bonus kijken we nog even naar de gemiddelde prestaties per database. PostgreSQL zet - voornamelijk dankzij zijn betere schaalgedrag - ruim 50% hogere scores neer dan MySQL. De piekprestaties van de twee pakketten liggen dichter bij elkaar dan onderstaande grafiek suggereert, maar omdat de prestaties van MySQL na het hoogtepunt afzakken terwijl die van PostgreSQL ongeveer op hetzelfde niveau blijven wordt het verschil met 25+ gelijktijdige bezoekers een stuk groter. Om het gemiddelde te berekenen zijn alleen de hoogste scores van Dempsey meegenomen, voor MySQL 4.1 en 5.0 dus zònder en voor PostgreSQL mèt HyperThreading.
 |
 | Gemiddelde prestaties per database |  |
 |
 | PostgreSQL 8.2-dev |   234687 |  |
 |
 | MySQL 4.1.20 |   156222 |  |
 |
 | MySQL 5.0.20a |   154277 |  |
 |
Samenvatting resultaten (schaalgedrag)
Stroomverbruik, prijzen en conclusie
Tot dusver hebben we vooral gekeken naar de prestaties, maar een veelgehoorde kreet dezer dagen is 'prestaties per watt'. We hebben metingen verricht op vier complete servers tijdens het draaien van de benchmark om te bepalen hoeveel vermogen ze onder belasting uit het stopcontact trokken. Het gaat daarbij dus niet om het absolute maximum, maar om het verbruik tijdens een realistisch zware belasting. Omdat we voor de Socket F Opteron alleen een los moederbord tot onze beschikking hebben (in plaats van een complete server zoals voor de rest van de processors) is die niet meegenomen in de vergelijking. De Socket 940-versie zou echter een aardig beeld moeten geven van hoe AMD-servers het in het algemeen doen. Waarschijnlijk zal de Socket F-versie door het gebruik van DDR2-geheugen minder stroom nodig hebben, maar dat wordt ook weer deels opgeheven door het feit dat hij iets minder goed presteert. De prestaties per watt zijn verkregen door naar het gemiddelde aantal pageviews per tien minuten onder de zware belastingen (van 25 tot 100 gebruikers) te kijken en dat te delen door het gemeten aantal watts.
 |
 | Opgenomen vermogen onder belasting |  |
 |
 | Primergy RX300 S3 (Dempsey) |   447 |  |
 |
 | Fire X4200 (Opteron (DDR)) |   341 |  |
 |
 | Primergy RX300 S3 (Woodcrest) |   294 |  |
 |
 | Fire T2000 (UltraSparc T1) |   232 |  |
 |
Prestaties/watt | MySQL 4.1.20 | MySQL 5.0.20a | PostgreSQL 8.2-dev |
---|
Woodcrest | 685 | 740 | 1004 |
Opteron (DDR) | 527 | 524 | 644 |
Dempsey | 325 | 344 | 592 |
UltraSparc T1 | 397 | 233 | 766 |
 |
 | Gemiddelde prestaties |  |
 |
 | Woodcrest |   238032 |  |
 |
 | Opteron (DDR) |   192740 |  |
 |
 | Dempsey |   187924 |  |
 |
 | Opteron (DDR2) |   181939 |  |
 |
 | UltraSparc T1 |   108010 |  |
 |
 |
 | Gemiddelde prestaties per watt |  |
 |
 | Woodcrest |   810 |  |
 |
 | Opteron (DDR) |   565 |  |
 |
 | UltraSparc T1 |   465 |  |
 |
 | Dempsey |   420 |  |
 |
Gemiddeld biedt de nieuwe Xeon duidelijk de beste prestaties per watt, bijna 93% meer dan de op Netburst gebaseerde Dempsey, 43% meer dan de AMD Opteron en 74% meer dan de Sun UltraSparc T1. Hoewel deze cijfers niet representatief zijn voor alle verschillende servers en applicaties, kunnen we toch wel concluderen dat Woodcrest een erg zuinige chip is, die op systeemniveau nauwelijks last lijkt te ondervinden van zijn externe geheugencontroller en warmere FB-DIMM-repen. De gemiddelde prestatiewinst van 23% tot 31% boven zowel zijn concurrenten als voorganger maakt het geheel alleen maar extra indrukwekkend. Een andere factor die een rol speelt zijn de prijzen van de processors. Hoewel deze op het totaalbedrag van een complete server maar een klein onderdeel zijn, kunnen we door naar de prijslijst te kijken op zijn minst een idee krijgen van de positionering:
Socket F Opteron | Woodcrest | Dempsey |
---|
| | | | | | 3,0GHz (95W) | $177 |
---|
| | 1,66GHz (65W) | $209 | | |
1,8GHz (95W) | $255 | 1,86GHz (65W) | $256 | | |
1,8GHz (68W) | $316 | 2,0GHz (65W) | $316 | 3,2GHz (130W) | $316 |
2,0GHz (95W) | $377 | | | 3,2GHz (95W) | $369 |
2,0GHz (68W) | $450 | 2,33GHz (65W) | $455 | | |
2,2GHz (95W) | $523 | | | | |
2,2GHz (68W) | $611 | | | | |
2,4GHz (95W) | $698 | 2,66GHz (65W) | $690 | | |
2,4GHz (68W) | $768 | | | | |
2,6GHz (95W) | $873 | 3,0GHz (80W) | $851 | 3,73GHz (130W) | $851 |
2,8GHz (120W) | $1165 | | | | |
Ook hier ziet het er niet goed uit voor AMD. Voor iedere Opteron is er wel een gelijk of lager geprijsde Woodcrest te krijgen die sneller en/of zuiniger is. In deze test hebben we niet de topmodellen vergeleken, maar het is niet zo dat het ene merk meer speelruimte heeft dan het andere. Als we bijvoorbeeld één tree hoger gaan op de prijsladder wordt het verschil in kloksnelheid 400MHz in plaats van 266MHz. De 'special edition' Opteron op 2,8GHz komt dichter in de buurt van het topmodel Woodcrest, maar die is ook meteen 314 dollar duurder en komt als bonus met een hoger stroomverbruik.
Behalve de prijs van de processor is natuurlijk ook die van het geheugen belangrijk. Omdat er een extra component (de bufferchip) nodig is, ligt het voor de hand dat een FB-DIMM duurder is dan een gewone DIMM op dezelfde frequentie. De keuze voor een Woodcrest brengt dus een 'verborgen' extra kostenpost met zich mee. Het is echter moeilijk om precies te pijlen hoe groot het verschil is. In de pricewatch is een 1GB registered DDR2-667 te vinden vanaf 100 euro, terwijl voor een equivalente FB-DIMM bijna 160 euro neergeteld moet worden. Zelfbouwers die veel geheugen voor weinig geld willen hebben zullen de Opteron voorlopig dus nog steeds een interessante optie blijven vinden. Wie zaken doet met een van de grote fabrikanten loopt echter tegen een ander beeld aan. De bekende merken rekenen namelijk toch al woekerprijzen voor geheugen, of het nou DDR(2) of FB-DIMM is maakt daarbij niet zo veel uit. Bij IBM - de enige grote fabrikant die op het moment van publicatie DDR2-667 én FB-DIMM verkoopt - is de gebufferde smaak zelfs iets goedkoper. Ook Dell heeft een goede deal voor FB-DIMM in verhouding tot de DDR2-667-repen van IBM en Sun.
Prijzen voor 1GB geheugen |
---|
Fabrikant | Registered DIMM | FB-DIMM (667MHz) | Verschil |
---|
Dell | $190 (DDR2-400) | $228,50 | 20,3%  |
IBM | $255 (DDR2-667) | $249 | 2,4%  |
HP | $254,50 (DDR400) | $274,50 | 7,9%  |
Apple | $315 (DDR2-533) | $350 | 11,1%  |
Sun | $247,50 (DDR2-667) | - | - |
Intel kan dankzij de introductie van Blackford en Woodcrest voorlopig weer even opgelucht ademhalen. Eindelijk is er voor servers met één of twee sockets een meer dan degelijke concurrent voor de Opteron, die het zowel op het gebied van prestaties, zuinigheid en prijs beter doet. Het geluk van AMD is dat Intels nieuwe architectuur voorlopig nog niet geschikt is voor vier sockets - het segment waarin de Opteron het diepst is binnengedrongen - want voor de rest lijken ze compleet verrast te zijn. Het feit dat er niet direct een antwoord is wil echter ook niet zeggen dat de strijd nu gestreden is. Beide bedrijven zijn bijvoorbeeld al volop bezig met de ontwikkeling van hun quadcores. Intel wil zijn 'Clovertown' binnen enkele maanden introduceren en AMD komt halverwege volgend jaar met een processor met vier cores.
Ook werkt AMD onder de codenaam K8L aan een verbeterde versie van de K8. Deze heeft voor zover bekend niet zo veel ingrijpende nieuwe features in zich als de Core-architectuur, maar neemt wel een aantal belangrijke punten over, waaronder de 128 bits brede multimedia-eenheden. Volgens de laatste geruchten zal het K8L-ontwerp echter pas begin 2008 op de markt verschijnen. De eerste quadcore serverchip zou dus nog gewoon gebaseerd zijn op de huidige K8.
We hopen er snel achter te komen of de Core-architectuur sterk genoeg is om de komende jaren aan kop te blijven. Woodcrest lijkt ijzersterk, maar het mindere schaalgedrag baart zorgen voor de overstap naar quadcores en vier sockets. Zelfs als dat zonder kleerscheuren lukt, kan AMD nog een konijn uit zijn hoge hoed toveren met K8L. De toekomst is dus nog niet in steen gebijteld, maar voorlopig hebben we onze keuze wel kunnen maken: voor de nieuwe forumdatabase is onder andere naar aanleiding van deze benchmarks een dual 3GHz Woodcrest-server besteld.
Dankwoord
Tweakers.net wil Fujitsu-Siemens (Woodcrest en Dempsey), MSI (Socket F-moederbord), Adata (DDR2-geheugen), Sun (Socket 940 Opteron en UltraSparc T1), AMD en Intel graag bedanken voor hun medewerking aan dit artikel. Ook dank aan Mick de Neeve voor de Engelse vertaling en wederom dank aan ACM en moto-moi voor het uitvoeren van de benchmarks en het geven van waardevolle informatie bij de interpretatie en beschrijving daarvan.
Eerdere artikelen in deze serie
30-7-2006: AMD Socket F
27-7-2006: Sun UltraSparc T1 vs. AMD Opteron
19-4-2006: Xeon vs. Opteron, single- en dualcore